PlanMill API Documentation version 1.5
Introduction to PlanMill API 1.5
PlanMill REST API 1.5 enables developers to access some of the core functionality of PlanMill CRM, project management, and ERP products.
Getting started with PlanMill API 1.5
Please read https://github.com/planmill/api/wiki/Getting-started
The API endpoint can be found in your PlanMill instance behind a URL like shown here:
https://{server}/{customer_instance}/api/{api_version}
Where 'server' and 'customer_instance' are replaced by the server address and customer instance name. For example, if your instance name is "abc" and it is hosted on online.planmill.com, the API version 1.5 endpoint would be:
https://online.planmill.com/abc/api/1.5
Recent changes
See https://help.planmill.com/help/release-notes
Other information
Read more in our wiki https://github.com/planmill/api/wiki
Check open issues or report a new https://github.com/planmill/api/issues
Clone us in Github https://github.com/planmill/api.git
Refer https://github.com/planmill/api/wiki/WebHooks for how to register hooks.
When posting datetime-fields, time must be according to local time in default timezone of the instance.
/absences
Collection of available absences in PlanMill. See absences/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Get a list of absences. See absences/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Add a new absence to PlanMill. See absences/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /absences
Get a list of absences. See absences/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- interval?: (string)
Interval type, e.g. start, finish, created, or modified. It is required in combination with intervalstart or intervalfinish
- intervalstart?: (string)
Start date of the interval in UTC format, intervalfinish required
Example:
2019-03-01T00:00:00.000+0200
- intervalfinish?: (string)
Finish date of the interval in UTC format, intervalstart required
Example:
2019-03-01T00:00:00.000+0200
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (string)
Sorts the results using string that is a JSON attribute
HTTP status code 200
Body
Media type: application/json
Type: array of absence
Items: absence
- absenceType: (integer)
Type of an absence
- description: (union of string or nil)
Description of an absence
- finish: (datetime)
Finish date of an absence
- person: (integer)
Absentee and user of a system
- start: (datetime)
Start date of an absence
- vacationYear: (union of integer or nil)
Vacation year of the user
- accepterPerson: (union of integer or nil)
Superior of user who accepts an absence
- interruptionDate: (union of string or nil)
Interruption date of an absence
- vacationLength: (integer)
Length of an absence represented in minutes
- project: (integer)
Id of absence parent in the task hierarchy
- id: (integer)
Internal ID of an absence
- status: (union of integer or nil)
Status of an absence
- substitutePerson: (union of integer or nil)
Superior of user who accepts an absence when actual superior of user is not available
- created: (datetime)
Creation date of an absence
- modified: (datetime)
Modification date of an absence
Example:
[
{
"accepterPerson": 2850572,
"interruptionDate": null,
"created": "2015-09-07T11:16:40.807+0300",
"start": "2016-04-07T11:17:00.000+0300",
"project": 2850582,
"description": "sick leave",
"vacationYear": null,
"vacationLength": 450,
"person": 2850572,
"absenceType": 1010,
"modified": "2015-09-07T11:16:40.807+0300",
"finish": "2016-04-07T11:17:00.000+0300",
"id": 2850600,
"substitutePerson": null,
"status": 20
},
{
"accepterPerson": 604564,
"interruptionDate": null,
"created": "2012-02-03T13:52:47.503+0200",
"start": "2012-03-26T00:00:00.000+0300",
"project": 2691515,
"description": "unpaid holiday",
"vacationYear": null,
"vacationLength": 450,
"person": 2557769,
"absenceType": 1060,
"modified": "2012-02-03T13:53:11.337+0200",
"finish": "2012-03-26T00:00:00.000+0300",
"id": 2803661,
"substitutePerson": null,
"status": 10
},
{
"accepterPerson": 2557769,
"interruptionDate": null,
"created": "2012-02-03T12:39:48.830+0200",
"start": "2012-03-16T00:00:00.000+0200",
"project": 2691515,
"description": "annual holiday",
"vacationYear": 2012,
"vacationLength": 3150,
"person": 604564,
"absenceType": 1000,
"modified": "2012-02-03T12:39:48.830+0200",
"finish": "2012-03-26T00:00:00.000+0200",
"id": 2803656,
"substitutePerson": null,
"status": 10
},
{
"accepterPerson": 2801981,
"interruptionDate": "2014-01-09T00:00:00.000+0200",
"created": "2014-01-09T14:15:00.290+0200",
"start": "2013-09-24T00:00:00.000+0300",
"project": 2691515,
"description": "sick leave by medical certificate",
"vacationYear": null,
"vacationLength": 32400,
"person": 2801981,
"absenceType": 1025,
"modified": "2014-01-09T14:17:18.343+0200",
"finish": "2014-01-09T00:00:00.000+0200",
"id": 2832618,
"substitutePerson": null,
"status": 40
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /absences
Add a new absence to PlanMill. See absences/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8)
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: object
Properties- absenceType: required(integer)
Type of an absence
- finish: required(datetime)
Finish date of an absence
- person: required(integer)
Absentee and user of a system
- start: required(datetime)
Start date of an absence
- description: (union of string or nil)
Description of an absence
- vacationYear: (union of integer or nil)
Vacation year of the user
- accepterPerson: (union of integer or nil)
Superior of user who accepts an absence
- interruptionDate: (union of string or nil)
Interruption date of an absence
- vacationLength: (integer)
Length of an absence represented in minutes
- project: (integer)
Id of absence parent in the task hierarchy
- status: required(union of integer or nil)
Status of an absence
- substitutePerson: (union of integer or nil)
Superior of user who accepts an absence when actual superior of user is not available
- created: (datetime)
Creation date of an absence
- modified: (datetime)
Modification date of an absence
Example:
{
"accepterPerson": 356,
"interruptionDate": null,
"start": "2021-09-07T00:00:00.000+0300",
"project": 459,
"description": "child care leave",
"vacationYear": null,
"vacationLength": 450,
"person": 356,
"absenceType": 1130,
"finish": "2021-09-08T00:00:00.000+0300",
"substitutePerson": null,
"status": 0
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for absences. Includes resource's fields names and type and related filters
View details of a single meta.
get /absences/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"filters": [
{
"name": "freetextsearch",
"caption": ""
},
{
"name": "viewtemplate",
"caption": "View by",
"values": {
"All absences": "30",
"Absences to handle": "10",
"My absences": "0",
"My subordinates' absences": "20"
}
},
{
"name": "period",
"caption": "Period",
"values": {
"All": "0",
"Last 180 days": "16",
"This week": "30",
"This and next FY": "7",
"Last 14 days": "26",
"This and next month": "24",
"This and next week": "34",
"Next 30 days": "17",
"Next 180 days": "21",
"This FY": "5",
"Next FY": "6",
"This and last month": "25",
"This FQ": "1",
"Last month": "11",
"Last 30 days": "12",
"Last FY": "8",
"Today and tomorrow": "44",
"This and last week": "32",
"This and next FQ": "3",
"Last FQ": "4",
"Last 120 days": "15",
"This and last FY": "23",
"Last week": "31",
"This month": "9",
"Next 120 days": "20",
"Yesterday": "41",
"Last 60 days": "13",
"Next week": "33",
"Next 60 days": "18",
"Tomorrow": "43",
"Today": "40",
"Today and yesterday": "42",
"Next FQ": "2",
"Next month": "10",
"This & last FQ": "22",
"Last 90 days": "14",
"Next 90 days": "19"
}
},
{
"name": "person",
"caption": "Person",
"values": {
"All": "-1",
"Jim, Harris": "2752646",
"Sara, Johnson": "580283",
"Mike, Hike": "2828584"
}
},
{
"name": "accepterPerson",
"caption": "Acceptor",
"values": {
"All": "-1",
"Jim, Harris": "2752646",
"Sara, Johnson": "580283",
"Mike, Hike": "2828584"
}
},
{
"name": "absenceType",
"caption": "Absence type",
"values": {
"All": "-1",
"Military refresher": "1110",
"Paid holiday": "1070",
"Balance leave": "1090",
"Sick leave by medical certificate": "1025",
"Study leave (unpaid)": "1140",
"Annual holiday": "1000",
"Maternal leave (paid)": "1030",
"Overtime leave": "1080",
"Bonus holiday pay": "1100",
"Military leave": "1050",
"Sick leave": "1010",
"Paternal leave (paid)": "1180",
"Saved leave": "1165",
"Child care leave": "1130",
"Unpaid holiday": "1060",
"Other annual vacation": "1160"
}
},
{
"name": "status",
"caption": "Status",
"values": {
"All": "-1",
"Interrupted": "50",
"Preliminary": "0",
"Interruption accepted": "60",
"Ready for acceptance": "10",
"Completed": "40",
"Ongoing": "30",
"Rejected": "70",
"Cancelled": "80",
"Accepted": "20"
}
},
{
"name": "team",
"caption": "Primary team",
"values": {
"All": "-1",
"Sales Team": "481244",
"Consulting Team": "490066",
"R & D Team": "480530",
"Executive Team": "563642"
}
},
{
"name": "interval",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"values": {
"Modified": "modfied",
"Start": "start",
"Ongoing": "ongoing",
"Finish": "finish",
"Accepted": "accepted",
"Created": "created"
}
}
],
"fields": {
"accepterPerson": {
"format": "text",
"caption": "Task.ResponsibleId"
},
"interruptionDate": {
"format": "shortdate",
"caption": "Interruption date"
},
"created": {
"format": "mediumdate",
"caption": "Created"
},
"modfied": {
"format": "mediumdate",
"caption": "Modified"
},
"start": {
"format": "mediumdateday",
"caption": "Start"
},
"project": {
"format": null,
"caption": ""
},
"description": {
"format": null,
"caption": ""
},
"vacationYear": {
"format": "text",
"caption": "Vacation year"
},
"vacationLength": {
"format": "day",
"caption": "Length"
},
"person": {
"format": "text",
"caption": "Assignment.PersonId"
},
"absenceType": {
"format": "Enumeration values.Task.Offduty",
"caption": "Absence type"
},
"finish": {
"format": "mediumdateday",
"caption": "Finish"
},
"id": {
"format": "text",
"caption": "Task.Id"
},
"substitutePerson": {
"format": "text",
"caption": "Substitute.Id"
},
"status": {
"format": "Enumeration values.Employee directory.Absences.Status",
"caption": "Status"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single absence in PlanMill.
View details of a single absence. See absences/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Update an existing resource absence to PlanMill. See absences/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Remove a absence from PlanMill.
get /absences/{absence_id}
View details of a single absence. See absences/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- absence_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- absenceType: (integer)
Type of an absence
- description: (union of string or nil)
Description of an absence
- finish: (datetime)
Finish date of an absence
- person: (integer)
Absentee and user of a system
- start: (datetime)
Start date of an absence
- vacationYear: (union of integer or nil)
Vacation year of the user
- accepterPerson: (union of integer or nil)
Superior of user who accepts an absence
- interruptionDate: (union of string or nil)
Interruption date of an absence
- vacationLength: (integer)
Length of an absence represented in minutes
- project: (integer)
Id of absence parent in the task hierarchy
- id: (integer)
Internal ID of an absence
- status: (union of integer or nil)
Status of an absence
Example:
{
"accepterPerson": 2850921,
"interruptionDate": null,
"start": "2015-09-07T00:00:00.000+0300",
"project": 2850931,
"description": "child care leave",
"vacationYear": null,
"vacationLength": 450,
"person": 2850921,
"absenceType": 1130,
"finish": "2015-09-07T00:00:00.000+0300",
"id": 2850933,
"status": 40
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /absences/{absence_id}
Update an existing resource absence to PlanMill. See absences/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- absence_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: object
Properties- absenceType: (integer)
Type of an absence
- description: (union of string or nil)
Description of an absence
- finish: (datetime)
Finish date of an absence
- person: (integer)
Absentee and user of a system
- start: (datetime)
Start date of an absence
- vacationYear: (union of integer or nil)
Vacation year of the user
- accepterPerson: (union of integer or nil)
Superior of user who accepts an absence
- interruptionDate: (union of string or nil)
Interruption date of an absence
- vacationLength: (integer)
Length of an absence represented in minutes
- project: (integer)
Id of absence parent in the task hierarchy
- status: (union of integer or nil)
Status of an absence
- substitutePerson: (union of integer or nil)
Superior of user who accepts an absence when actual superior of user is not available
- created: (datetime)
Creation date of an absence
- modified: (datetime)
Modification date of an absence
Example:
{
"accepterPerson": 356,
"interruptionDate": null,
"start": "2021-09-07T00:00:00.000+0300",
"project": 459,
"description": "child care leave",
"vacationYear": null,
"vacationLength": 450,
"person": 356,
"absenceType": 1130,
"finish": "2021-09-08T00:00:00.000+0300",
"substitutePerson": null,
"status": 0
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /absences/{absence_id}
Remove a absence from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- absence_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for the updatable fields of the absence
View details of a single meta.
get /absences/{absence_id}/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- absence_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"accepterPerson": {
"caption": "Acceptor",
"format": "int"
},
"interruptionDate": {
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"caption": "Interruption date",
"format": "string",
"maxlength": "10",
"values": null
},
"start": {
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"caption": "Start",
"format": "string",
"values": null
},
"project": {
"caption": "Project",
"values": {
"Absences 2011": "2691515"
},
"format": "int"
},
"description": {
"caption": "",
"format": "string",
"values": null
},
"vacationYear": {
"caption": "Vacation year",
"values": {
"-": ""
},
"format": "int"
},
"vacationLength": {
"caption": "",
"values": null
},
"person": {
"caption": "Person",
"values": {
},
"format": "int"
},
"absenceType": {
"caption": "Absence type",
"values": {
"Military refresher": "1110",
"Maternal leave (unpaid)": "1190",
"Sick leave due to child": "1020",
"Paid holiday": "1070",
"Balance leave": "1090",
"Sick leave by medical certificate": "1025",
"Paternal leave (unpaid)": "1040",
"-": "",
"Study leave (unpaid)": "1140",
"Annual holiday": "1000",
"Maternal leave (paid)": "1030",
"Layoff": "1120",
"Overtime leave": "1080",
"Bonus holiday pay": "1100",
"Military leave": "1050",
"Saved leave": "1165",
"Sick leave": "1010",
"Paternal leave (paid)": "1180",
"Child care leave": "1130",
"Unpaid holiday": "1060",
"Other annual vacation": "1160"
},
"format": "int",
"enumeration": "Enumeration values.Task.Absence offduty"
},
"finish": {
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"caption": "Finish",
"format": "string",
"values": null
},
"id": {
"caption": "",
"format": "int",
"values": null
},
"substitutePerson": {
"description": "Substitute for acceptance handling during my absence",
"caption": "Substitute",
"values": {
"Jim, Harris": "2752646",
"Sara, Johnson": "580283",
"Mike, Hike": "2828584"
},
"format": "int"
},
"status": {
"caption": "Status"
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/accounts
Collection of available accounts in PlanMill. See accounts/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Get a list of accounts. See accounts/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Add a new account to PlanMill or update existing (if id is given). See accounts/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /accounts
Get a list of accounts. See accounts/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort: (string)
Sorts the results using string that is a JSON attribute
- interval: (string)
Interval type, e.g. start, finish, created, or modified. It is required in combination with intervalstart or intervalfinish
- intervalstart: (string)
Start date of the interval in UTC format, intervalfinish required
Example:
2021-08-05T00:00:00.000+0200
- intervalfinish: (string)
Finish date of the interval in UTC format, intervalstart required
Example:
2021-08-05T00:00:00.000+0200
HTTP status code 200
Body
Media type: application/json
Type: array of account
Items: account
- name: (string)
Name of Account
- passive: (integer)
Active or passive state of account (Default value 0 - Inactive)
- owner: (integer)
Responsible id of an account (Default value - Creator of an account)
- type: (union of integer or nil)
Type of an account (Default value 8 - Prospect)
- vatId: (union of string or nil)
VAT id of an account
- businessId: (union of string or nil)
Business id of an account
- termsOfPayment: (union of integer or nil)
Terms of payment of an invoice (Default value 14 - 14 days)
- eInvoicingAddress: (union of string or nil)
eInvoicing address
- phone: (union of string or nil)
Phone number of an account
- website: (union of string or nil)
Website of an account
- email: (union of email or emptystring or nil)
Email address of an account
- industry: (union of integer or nil)
- serviceLevel: (union of integer or nil)
Service level provided to real company linked to an account
- customerSatisfaction: (union of integer or nil)
- description: (union of string or nil)
Description of an account
- invoiceChannel: (union of integer or nil)
Methods of delivery of invoices
- invoiceVat: (union of number or nil)
VAT on an invoice of an account (Default value 24 - 24%)
- invoiceNetOperator: (union of string or nil)
- handlingFee: (union of number or nil)
Handling fee of an account
- invoiceEmail: (union of email or emptystring or nil)
Invoice delivery email
- supplierAccount: (union of integer or nil)
Supplier id of an account
- reverseCharge: (union of integer or nil)
- twitter: (union of string or nil)
Twitter name of an account
- facebook: (union of string or nil)
Facebook name of an account
- blog: (union of string or nil)
Blog address of an account
- combineInvoices: (union of integer or nil)
- rfReferenceNumber: (union of integer or nil)
- lineOfBusiness: (union of integer or nil)
- staff: (union of integer or nil)
- turnover: (union of integer or nil)
- billingAddress: (union of string or nil)
Invoice billing address of an account
- billingCity: (union of string or nil)
Invoice billing city of an account
- billingCountry: (union of integer or nil)
Invoice billing country of an account
- billingPostalCode: (union of string or nil)
Invoice billing postal code of an account
- billingState: (union of string or nil)
- parentAccount: (union of integer or nil)
Parent id of an account
- shippingAddress: (union of string or nil)
Invoice shipping address of an account
- shippingCity: (union of string or nil)
Invoice shipping city of an account
- shippingCountry: (union of integer or nil)
Invoice shipping country of an account
- shippingPostalCode: (union of string or nil)
Invoice shipping postal code of an account
- shippingState: (union of string or nil)
- invoiceAppendix: (union of integer or nil)
- invoiceTemplate: (union of string or nil)
- autoReplyRequestMails: (union of integer or nil)
Auto-reply request mails
- id: (integer)
Internal ID of an account
- operationalId: (union of integer or nil)
Operational ID of an account
- parentAccountName: (union of string or nil)
- activeContacts: (integer)
- created: (datetime)
- createdBy: (union of string or integer or nil)
- modified: (datetime)
- modifiedBy: (union of string or integer or nil)
- ownerName: (union of string or integer or nil)
- revenueThisYear: (union of number or nil)
- revenueLastYear: (union of number or nil)
- supplierAccountName: (union of string or nil)
Account name of supplier
Example:
[
{
"lineOfBusiness": null,
"shippingCity": "Helsinki",
"handlingFee": 0.0,
"businessId": "12345",
"vatId": "456789",
"invoiceVat": 23.0,
"revenueLastYear": 0.0,
"industry": -1,
"invoiceEmail": "",
"shippingPostalCode": "",
"type": 8,
"blog": "",
"parentAccountName": null,
"twitter": "",
"ownerName": "LastName, FirstName",
"shippingCountry": 0,
"eInvoicingAddress": "",
"invoiceChannel": 22,
"rfReferenceNumber": 0,
"billingCountry": 73,
"modified": "2012-07-30T17:26:02.207+0300",
"supplierAccountName": null,
"modifiedBy": "LastName, FirstName",
"activeContacts": 5,
"id": 2805224,
"email": "email@planmill.com",
"owner": 2796580,
"website": "",
"supplierAccount": null,
"created": "2012-03-06T10:38:06.467+0200",
"facebook": "",
"revenueThisYear": 0.0,
"serviceLevel": 0,
"passive": 0,
"invoiceNetOperator": "NDEAFIHH",
"combineInvoices": 0,
"phone": "",
"createdBy": "LastName, FirstName",
"billingPostalCode": "0500",
"name": "Inventory Department",
"shippingAddress": "Hämeentie 19",
"billingAddress": "Hämeentie 19",
"termsOfPayment": 14,
"billingCity": "Helsinki"
},
{
"lineOfBusiness": null,
"shippingCity": "Espoo",
"handlingFee": null,
"businessId": "7777777",
"vatId": null,
"invoiceVat": null,
"revenueLastYear": 0.0,
"industry": -1,
"invoiceEmail": null,
"shippingPostalCode": "12323",
"type": -1,
"blog": null,
"parentAccountName": null,
"twitter": null,
"ownerName": "User, auth.person",
"shippingCountry": -1,
"eInvoicingAddress": null,
"invoiceChannel": null,
"rfReferenceNumber": -1,
"billingCountry": -1,
"modified": "2015-06-04T17:06:19.947+0300",
"supplierAccountName": null,
"modifiedBy": null,
"activeContacts": 0,
"id": 2841694,
"email": null,
"owner": 2841653,
"website": null,
"supplierAccount": null,
"created": "2015-06-04T17:06:19.947+0300",
"facebook": null,
"revenueThisYear": 0.0,
"serviceLevel": -1,
"passive": -1,
"invoiceNetOperator": null,
"combineInvoices": 0,
"phone": "12323",
"createdBy": "User, auth.person",
"billingPostalCode": "1343",
"name": "Finance Department",
"shippingAddress": "",
"billingAddress": "",
"termsOfPayment": -1,
"billingCity": ""
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /accounts
Add a new account to PlanMill or update existing (if id is given). See accounts/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8)
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: object
Properties- name: required(string)
Name of Account
- passive: (integer)
Active or passive state of account (Default value 0 - Inactive)
- owner: (integer)
Responsible id of an account (Default value - Creator of an account)
- type: (union of integer or nil)
Type of an account (Default value 8 - Prospect)
- vatId: (union of string or nil)
VAT id of an account
- businessId: (union of string or nil)
Business id of an account
- termsOfPayment: (union of integer or nil)
Terms of payment of an invoice (Default value 14 - 14 days)
- eInvoicingAddress: (union of string or nil)
eInvoicing address
- phone: (union of string or nil)
Phone number of an account
- website: (union of string or nil)
Website of an account
- email: (union of email or emptystring or nil)
Email address of an account
- industry: (union of integer or nil)
- serviceLevel: (union of integer or nil)
Service level provided to real company linked to an account
- customerSatisfaction: (union of integer or nil)
- description: (union of string or nil)
Description of an account
- invoiceChannel: (union of integer or nil)
Methods of delivery of invoices
- invoiceVat: (union of number or nil)
VAT on an invoice of an account (Default value 24 - 24%)
- invoiceNetOperator: (union of string or nil)
- handlingFee: (union of number or nil)
Handling fee of an account
- invoiceEmail: (union of email or emptystring or nil)
Invoice delivery email
- supplierAccount: (union of integer or nil)
Supplier id of an account
- reverseCharge: (union of integer or nil)
- twitter: (union of string or nil)
Twitter name of an account
- facebook: (union of string or nil)
Facebook name of an account
- blog: (union of string or nil)
Blog address of an account
- combineInvoices: (union of integer or nil)
- rfReferenceNumber: (union of integer or nil)
- lineOfBusiness: (union of integer or nil)
- staff: (union of integer or nil)
- turnover: (union of integer or nil)
- billingAddress: (union of string or nil)
Invoice billing address of an account
- billingCity: (union of string or nil)
Invoice billing city of an account
- billingCountry: (union of integer or nil)
Invoice billing country of an account
- billingPostalCode: (union of string or nil)
Invoice billing postal code of an account
- billingState: (union of string or nil)
- parentAccount: (union of integer or nil)
Parent id of an account
- shippingAddress: (union of string or nil)
Invoice shipping address of an account
- shippingCity: (union of string or nil)
Invoice shipping city of an account
- shippingCountry: (union of integer or nil)
Invoice shipping country of an account
- shippingPostalCode: (union of string or nil)
Invoice shipping postal code of an account
- shippingState: (union of string or nil)
- invoiceAppendix: (union of integer or nil)
- invoiceTemplate: (union of string or nil)
- autoReplyRequestMails: (union of integer or nil)
Auto-reply request mails
- billingReference: (union of string or integer or nil)
- shippingReference: (union of string or nil)
- operationalId: (union of integer or nil)
Operational ID of an account
Example:
{
"lineOfBusiness": null,
"shippingCity": "Helsinki",
"businessId": "2862228-2",
"vatId": "2862228-2",
"invoiceEmail": "invoice_email@planmill.com",
"shippingPostalCode": "13233",
"type": 100,
"blog": "http://www.blog.com",
"twitter": "http://www.twitter.com",
"shippingCountry": 73,
"invoiceChannel": 22,
"rfReferenceNumber": 0,
"billingCountry": 73,
"supplierAccount": 353,
"billingState": "",
"serviceLevel": 0,
"autoReplyRequestMails": 1,
"combineInvoices": 0,
"reverseCharge": 10,
"phone": "+358-46-334605",
"name": "Test Account",
"billingReference": "Finance Department",
"shippingState": "",
"termsOfPayment": 0,
"handlingFee": 10,
"invoiceVat": 24,
"description": "<p>test description</p>",
"industry": 100000,
"parentAccount": null,
"parentAccountName": null,
"shippingReference": "HR department",
"turnover": 100000,
"email": "email@planmill.com",
"owner": 4891,
"website": "http://www.planmill.com",
"facebook": "http://www.facebook.com",
"staff": null,
"passive": 0,
"invoiceNetOperator": "NDEAFIHH",
"billingPostalCode": "00500",
"shippingAddress": "Siltasaarenkatu 18",
"billingAddress": "Hämeentie 19",
"billingCity": "Helsinki"
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for accounts. Includes resource's fields names and type and related filters
View details of a single meta.
get /accounts/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"filters": [
{
"name": "searchkey",
"caption": ""
},
{
"name": "viewby",
"caption": "View by",
"values": {
"All recently created accounts - last 7 days": "10",
"My active accounts": "0",
"My recently modified accounts - last 7 days": "5",
"All active accounts": "6",
"My active accounts - prospects": "2",
"My recently created accounts - last 7 days": "4",
"My inactive accounts": "3",
"All active accounts - prospects": "8",
"My active accounts - customers": "1",
"All active accounts - customers": "7",
"All inactive accounts": "9",
"All recently modified accounts - last 7 days": "11"
}
},
{
"name": "Account.ResponsibleId",
"caption": "Owner",
"values": {
"All": "-1",
"Admin, Test": "2833",
"EmployeeLastName, EmployeeFirstName": "2824"
}
},
{
"name": "type",
"caption": "Type",
"values": {
"All": "-1",
"Competitor": "2",
"My company - other": "110",
"Customer": "3",
"Reseller": "9",
"Vendor": "11",
"-": "0",
"Analyst": "1",
"My company": "100",
"Subcontractor": "12",
"Prospect": "8",
"Investor": "5",
"Partner": "6",
"Press": "7"
}
},
{
"name": "industry",
"caption": "Industry",
"values": {
"All": "-1",
"6202 IT Consulting": "6202",
"62 Software&IT serv": "62",
"6201 Programming": "6201"
}
},
{
"name": "billingCountry",
"caption": "Country",
"values": {
"All": "-1",
"Korea, Democratic People?s Republic of (North Korea)": "112",
"Romania": "174",
"Falkland Islands (Malvinas)": "70",
"Hungary": "94",
"United States": "220",
"Christmas Island": "259",
"-": "0",
"Mauritius": "135",
"Switzerland": "200",
"Canada": "39",
"Austria": "15",
"El Salvador": "65",
"Monaco": "140",
"Norway": "160",
"Luxembourg": "123",
"Finland": "73",
"Denmark": "58",
"Netherlands Antilles": "150",
"France": "74",
"Germany": "80",
"Estonia": "68"
}
},
{
"name": "viewbylineofbusiness",
"caption": "Official line of business",
"values": {
"All": "-1",
"72 Scientific research and development": "72000",
"09 Mining support service activities": "9000",
"14 Manufacture of wearing apparel": "14000",
"94 Activities of membership organisations": "94000",
"69 Legal and accounting activities": "69000",
"84 Public administration and defence": "84000",
" manufacture of articles of straw and plaiting materials": " manufacture of articles of straw and plaiting materials",
" materials recovery": " materials recovery",
"97 Activities of households as employers of domestic personnel": "97000",
"55 Accommodation": "55000",
"71 Architectural and engineering activities": "71000",
"19 Manufacture of coke and refined petroleum products": "19000",
"45 Wholesale and retail trade and repair of motor vehicles and motorcycles": "45000",
"62 Computer programming, consultancy and related activities": "62000",
"81 Services to buildings and landscape activities": "81000",
"99 Activities of extraterritorial organisations and bodies": "99000",
"53 Postal and courier activities": "53000",
"18 Printing and reproduction of recorded media": "18000",
"43 Specialised construction activities": "43000",
"50 Water transport": "50000",
"65 Insurance, reinsurance and pension funding, except compulsory social security": "65000",
"16 Manufacture of wood and of products of wood and cork, except furniture": "16000",
"27 Manufacture of electrical equipment": "27000",
"39 Remediation activities and other waste management services": "39000",
"77 Rental and leasing activities": "77000",
"78 Employment activities": "78000",
"87 Residential care activities": "87000",
"75 Veterinary activities": "75000",
"80 Security and investigation activities": "80000",
"29 Manufacture of motor vehicles, trailers and semi-trailers": "29000",
"33 Repair and installation of machinery and equipment": "33000",
" compulsory social security": " compulsory social security",
"85 Education": "85000",
"06 Extraction of crude petroleum and natural gas": "6000",
"{28 Manufacture of machinery and equipment n.e.c.}": "28000",
"11 Manufacture of beverages": "11000",
"08 Other mining and quarrying": "8000",
"21 Manufacture of basic pharmaceutical products and pharmaceutical preparations": "21000",
"13 Manufacture of textiles": "13000",
"96 Other personal service activities": "96000",
"35 Electricity, gas, steam and air conditioning supply": "35000",
"79 Travel agency, tour operator and other reservation service and related activities": "79000",
"52 Warehousing and support activities for transportation": "52000",
"73 Advertising and market research": "73000",
"60 Programming and broadcasting activities": "60000",
"95 Repair of computers and personal and household goods": "95000",
"30 Manufacture of other transport equipment": "30000",
"61 Telecommunications": "61000",
"26 Manufacture of computer, electronic and optical products": "26000",
"03 Fishing and aquaculture": "3000",
"63 Information service activities": "63000",
"59 Motion picture, video and television programme production, sound recording and music publishing activities": "59000",
"07 Mining of metal ores": "7000",
"24 Manufacture of basic metals": "24000",
"82 Office administrative, office support and other business support activities": "82000",
"23 Manufacture of other non-metallic mineral products": "23000",
"66 Activities auxiliary to financial services and insurance activities": "66000",
" technical testing and analysis": " technical testing and analysis",
"64 Financial service activities, except insurance and pension funding": "64000",
"15 Manufacture of leather and related products": "15000",
"17 Manufacture of paper and paper products": "17000",
"25 Manufacture of fabricated metal products, except machinery and equipment": "25000",
"46 Wholesale trade, except of motor vehicles and motorcycles": "46000",
"37 Sewerage": "37000",
"41 Construction of buildings": "41000",
"91 Libraries, archives, museums and other cultural activities": "91000",
"01 Crop and animal production, hunting and related service activities": "1000",
"00 Industry unknown": "0",
"32 Other manufacturing": "32000",
" management consultancy activities": " management consultancy activities",
"86 Human health activities": "86000",
"31 Manufacture of furniture": "31000",
"42 Civil engineering": "42000",
"12 Manufacture of tobacco products": "12000",
"47 Retail trade, except of motor vehicles and motorcycles": "47000",
"92 Gambling and betting activities": "92000",
"02 Forestry and logging": "2000",
"10 Manufacture of food products": "10000",
"20 Manufacture of chemicals and chemical products": "20000",
"58 Publishing activities": "58000",
"98 Undifferentiated goods- and services-producing activities of private households for own use": "98000",
"22 Manufacture of rubber and plastic products": "22000",
"70 Activities of head offices": "70000",
"56 Food and beverage service activities": "56000",
"05 Mining of coal and lignite": "5000",
"36 Water collection, treatment and supply": "36000",
"88 Social work activities without accommodation": "88000",
"49 Land transport and transport via pipelines": "49000",
"51 Air transport": "51000",
"93 Sports activities and amusement and recreation activities": "93000",
"68 Real estate activities": "68000",
"38 Waste collection, treatment and disposal activities": "38000",
"90 Creative, arts and entertainment activities": "90000",
"74 Other professional, scientific and technical activities": "74000"
}
},
{
"name": "billingCity",
"caption": "City",
"values": {
"28100": "28100",
"28130": "28130",
"28200": "28200",
"28400": "28400",
"28450": "28450",
"28600": "28600",
"29600": "29600",
"33950": "33950",
"432432": "432432",
"": "",
"Oulunsalo": "Oulunsalo",
"El�keturvakeskus": "El�keturvakeskus",
"Schlieren": "Schlieren",
"Korntal-M�nchingen": "Korntal-M�nchingen",
"Fujitsu": "Fujitsu",
"Ebersbach/Fils": "Ebersbach/Fils",
"okpokpok": "okpokpok",
"Porvoo": "Porvoo",
"Z�rich": "Z�rich",
"St. Gallen": "St. Gallen",
"Uusikaarlepyy": "Uusikaarlepyy",
"Vammala": "Vammala",
"Inkoo": "Inkoo",
"Munich": "Munich",
"H�meenlinna": "H�meenlinna",
"Oulu": "Oulu",
"Rovaniemi": "Rovaniemi",
"Tampere": "Tampere",
"Vaasa": "Vaasa",
"Solothurn": "Solothurn",
"J�rvenp��": "J�rvenp��",
"Lemp��l�": "Lemp��l�",
"Wien": "Wien",
"Kokkola": "Kokkola",
"SONG": "SONG",
"Toronto": "Toronto",
"Tikkakoski": "Tikkakoski",
"Uster": "Uster",
"Korsn�s": "Korsn�s",
"tyfytf": "tyfytf",
"Villingen-Schwenningen": "Villingen-Schwenningen",
"Ylivieska": "Ylivieska",
"El�ke-Fennia": "El�ke-Fennia",
"Korvatunturi": "Korvatunturi",
"Basel": "Basel",
"Kerava": "Kerava",
"weuyweyu": "weuyweyu",
"VTT": "VTT",
"Bottrop": "Bottrop",
"Helsinki": "Helsinki",
"Lappeenranta": "Lappeenranta",
"gdfsgsfdfg": "gdfsgsfdfg",
"Ingolstadt": "Ingolstadt",
"Vasa": "Vasa",
"Kajaani": "Kajaani",
"Tapiola": "Tapiola",
"Lahti": "Lahti",
"Schinznach Bad": "Schinznach Bad",
"Sein�joki": "Sein�joki",
"St.Gallen": "St.Gallen",
"Forssa": "Forssa",
"Vaajakoski": "Vaajakoski",
"Joensuu": "Joensuu",
"Lohja": "Lohja",
"All": "-1",
"Baden": "Baden",
"Riihim�ki": "Riihim�ki",
"Kaustinen": "Kaustinen",
"Valtioneuvosto": "Valtioneuvosto",
"Savonlinna": "Savonlinna",
"Oberhaching": "Oberhaching",
"Iso-Vimma": "Iso-Vimma",
"Luxembourg": "Luxembourg",
"Leverkusen": "Leverkusen",
"FINLAND": "FINLAND",
"Oslo": "Oslo",
"jhgjhgj": "jhgjhgj",
"Nivala": "Nivala",
"New York city": "New York city",
"Port Louis": "Port Louis",
"Pori": "Pori",
"LASKUTUS": "LASKUTUS",
"Noormarkku": "Noormarkku",
"Urdorf": "Urdorf",
"Weinfelden": "Weinfelden",
"Espoo": "Espoo",
"Nordea": "Nordea",
"KULLAA": "KULLAA",
"Stuttgart": "Stuttgart",
"Turku": "Turku",
"Ilmarinen": "Ilmarinen",
"copenhaagen": "copenhaagen",
"00380": "00380",
"Valtiokonttori": "Valtiokonttori",
"Monte Carlo": "Monte Carlo",
"Paderborn": "Paderborn",
"Vienna": "Vienna",
"Hyvink��": "Hyvink��",
"Pyongyang": "Pyongyang",
"Raahe": "Raahe",
"Helsinki City": "Helsinki City",
"Petersberg": "Petersberg",
"HUS": "HUS",
"Epsoo": "Epsoo",
"Raisio": "Raisio",
"Miami": "Miami",
"San Francisco": "San Francisco",
"Davos": "Davos",
"Jyv�skyl�": "Jyv�skyl�",
"Kuopio": "Kuopio",
"Rellingen": "Rellingen",
"Bonn": "Bonn",
"Jysk�": "Jysk�",
"Vantaa": "Vantaa",
"Paris": "Paris"
}
},
{
"name": "billingPostalCode",
"caption": "Postal/Zip code",
"values": {
"00120, Helsinki": "00120",
"34534, Helsinki City": "34534",
"D-82041, Oberhaching": "D-82041",
"00880, Helsinki": "00880",
"00580, Helsinki": "00580",
"1220, Vienna": "1220",
"01600, Vantaa": "01600",
"FIN-00021, LASKUTUS": "FIN-00021",
"70825, Korntal-M�nchingen": "70825",
"90220, Oulu": "90220",
"27821, Iso-Vimma": "27821",
"00620, Helsinki": "00620",
"15300, Lahti": "15300",
"00381, Helsinki": "00381",
"00181, Helsinki": "00181",
"33100, Tampere": "33100",
"08100, Lohja": "08100",
"02610, Espoo": "02610",
"00121, Helsinki": "00121",
"00041, El�ke-Fennia": "00041",
"FIN-00500, Helsinki": "FIN-00500",
"70178, Stuttgart": "70178",
",": "",
"02601, Espoo": "02601",
"01641, Vantaa": "01641",
"0167, Oslo": "0167",
"12312313, Helsinki": "12312313",
"00521, Helsinki": "00521",
"7270, Davos": "7270",
"92101, Raahe": "92101",
"02101, Espoo": "02101",
"00511, Helsinki": "00511",
"57100, Savonlinna": "57100",
"01511, Vantaa": "01511",
"00020, Nordea": "00020",
"02631/PL 140, Espoo": "02631/PL 140",
"00380, 00380": "00380",
"04250, Kerava": "04250",
"82041, Oberhaching": "82041",
"10210, Inkoo": "10210",
"94118, San Francisco": "94118",
"02151, Espoo": "02151",
"02170, Espoo": "02170",
"70565, Stuttgart": "70565",
"00270, Helsinki": "00270",
"78048, Villingen-Schwenningen": "78048",
"1020, Wien": "1020",
"20100, Turku": "20100",
"8032, Z�rich": "8032",
"04400, J�rvenp��": "04400",
"4002, Basel": "4002",
"00180, Helsinki": "00180",
"00280, Helsinki": "00280",
"04420, J�rvenp��": "04420",
"40500, Jyv�skyl�": "40500",
"01300, Vantaa": "01300",
"40100, Vaajakoski": "40100",
"02015 HUT, Espoo": "02015 HUT",
"00380, Helsinki": "00380",
"01621, Vantaa": "01621",
"70173, Stuttgart": "70173",
"00101, Helsinki": "00101",
"29600, Noormarkku": "29600",
"1115, Luxembourg": "1115",
"8610, Uster": "8610",
", Bonn": "",
"90011, Miami": "90011",
"33210, Tampere": "33210",
"02160, Espoo": "02160",
"06101, Porvoo": "06101",
"85045, Ingolstadt": "85045",
"40014, Jyv�skyl�": "40014",
"96301, Rovaniemi": "96301",
"80100, Joensuu": "80100",
"30100, Forssa": "30100",
"CH-9000, St. Gallen": "CH-9000",
"00054, Valtiokonttori": "00054",
"30175, Hannover": "30175",
"4005, Basel": "4005",
"33200, Tampere": "33200",
"1032, Vienna": "1032",
"65100, Vaasa": "65100",
"01620, Vantaa": "01620",
"70500, Kuopio": "70500",
"1020, Vienna": "1020",
"02200, Espoo": "02200",
"02650, Espoo": "02650",
"06150, Porvoo": "06150",
"33521, Tampere": "33521",
", Monte Carlo": "",
"00510, Vantaa": "00510",
"36100, Petersberg": "36100",
"9014, St.Gallen": "9014",
"38201, Vammala": "38201",
"01310, Vantaa": "01310",
"02631, Espoo": "02631",
"00810, Helsinki": "00810",
"02781, Espoo": "02781",
"00500, Helsinki": "00500",
"11710, Riihim�ki": "11710",
"51369, Leverkusen": "51369",
"96301 Rovaniemi,": "96301 Rovaniemi",
"00100, Helsinki": "00100",
"00700, Helsinki": "00700",
"02630 ESPOO, FINLAND": "02630 ESPOO",
"00065, El�keturvakeskus": "00065",
"00161, Helsinki": "00161",
"00940, SONG": "00940",
"00210, Helsinki": "00210",
"00023, Helsinki": "00023",
"53100, Lappeenranta": "53100",
"02600, Helsinki": "02600",
"8005, Z�rich": "8005",
"00650, Helsinki": "00650",
"70210, Kuopio": "70210",
"25462, Rellingen": "25462",
"8570, Weinfelden": "8570",
"70101, Kuopio": "70101",
"15110, Lahti": "15110",
"00350, Helsinki": "00350",
"01510, Vantaa": "01510",
"123123, weuyweyu": "123123",
"28600, PORI": "28600",
"123123, copenhaagen": "123123",
"36640, Iltasm�ki": "36640",
"08101, Lohja": "08101",
"01610, Vantaa": "01610",
"01380, Vantaa": "01380",
"1029, Vienna": "1029",
"02730, Helsinki": "02730",
"20101, Turku": "20101",
"33840, Tampere": "33840",
"90460 , Oulunsalo": "90460",
"96100, Rovaniemi": "96100",
"20520, Turku": "20520",
"00150, Helsinki": "00150",
"87500, Kajaani": "87500",
"00941 , Helsinki": "00941",
"13111, H�meenlinna": "13111",
"33100, Helsinki": "33100",
"999999, Korvatunturi": "999999",
"FIN-01510, Vantaa": "FIN-01510",
"40501, Jyv�skyl�": "40501",
", Port Louis": "",
"8952, Schlieren": "8952",
"70000, Stuttgart": "70000",
"33101, Tampere": "33101",
"01740, Vantaa": "01740",
"67100, Kokkola": "67100",
"01451, Vantaa": "01451",
"02130, Espoo": "02130",
"00029, HUS": "00029",
"24280, Salo": "24280",
"00260, Helsinki": "00260",
"90100, Oulu": "90100",
"00160, Helsinki": "00160",
"00560, Helsinki": "00560",
"33900, Tampere": "33900",
"15140, Lahti": "15140",
"M5H 2L3, Toronto": "M5H 2L3",
"02630, Espoo": "02630",
"30501, New York city": "30501",
"80686, Munich": "80686",
"40420, Jysk�": "40420",
"70110, Kuopio": "70110",
"70460, Kuopio": "70460",
"02600, Espoo": "02600",
"1001, Z�rich": "1001",
"37501, Lemp��l�": "37501",
"70567, Stuttgart": "70567",
"02100, Espoo": "02100",
"02380, Espoo": "02380",
"All": "-1",
"00261, Espoo": "00261",
"5116, Schinznach Bad": "5116",
"28100, Pori": "28100",
"00401, Helsinki": "00401",
"00131, Helsinki": "00131",
"00331, Helsinki": "00331",
"33100, Paderborn": "33100",
"02150 , Espoo": "02150",
"40100, Jyv�skyl�": "40100",
"001010, Helsinki": "001010",
"8902, Urdorf": "8902",
"143143, Helsinki": "143143",
"00018, Ilmarinen": "00018",
"CH-4502, Solothurn": "CH-4502",
"33500, Tampere": "33500",
"00012, Fujitsu": "00012",
"13100, H�meenlinna": "13100",
"NULL": "",
"00530, Helsinki": "00530",
"00330, Helsinki": "00330",
"33720, Tampere": "33720",
"94041, Mountain View": "94041",
"96300, Rovaniemi": "96300",
"00240, Helsinki": "00240",
"69601, Kaustinen": "69601",
"00440, Helsinki": "00440",
"20540, Turku": "20540",
"02240, Espoo": "02240",
"00510, Helsinki": "00510",
"12345, Pyongyang": "12345",
"32432, Tampere": "32432",
"00094, Helsinki": "00094",
"5400, Baden": "5400",
"00130, Helsinki": "00130",
"00441, Helsinki": "00441",
"33230, Tampere": "33230",
"02150, Espoo": "02150",
"02010, Tapiola": "02010",
"73061, Ebersbach/Fils": "73061",
"01640, Vantaa": "01640",
"02044, VTT": "02044",
"00200, Helsinki": "00200",
"60100, Sein�joki": "60100",
"21200, Raisio": "21200",
"00151, Helsinki": "00151",
"41161, Tikkakoski": "41161",
"00800, Helsinki": "00800",
"60120, Sein�joki": "60120",
"02150, Epsoo": "02150",
"13130, H�meenlinna": "13130",
"85500, Nivala": "85500",
"02360, Espoo": "02360",
"CITY,": "CITY",
"1550, Paris": "1550",
"05800, Hyvink��": "05800",
", 28100": "",
"00400, Helsinki": "00400",
"90570, Oulu": "90570"
}
},
{
"name": "viewbystaff",
"caption": "Personnel category",
"values": {
"All": "-1",
"500-999 personnel": "500",
"1-4 personnel": "1",
"10-19 personnel": "10",
"100-249 personnel": "100",
"250-499 personnel": "250",
"20-49 personnel": "20",
"5-9 personnel": "5",
"> 1000 personnel": "1000",
"50-99 personnel": "50"
}
},
{
"name": "viewbyturnover",
"caption": "Turnover category",
"values": {
"All": "-1",
"> 20 000 K EUR": "20000",
"2000 - 10 000 K EUR": "2000",
"400 - 1000 K EUR": "400",
"10 000 - 20 000 K EUR": "10000",
"1 - 200 K EUR": "1",
"1000 - 2000 K EUR": "1000",
"200 - 400 K EUR": "200"
}
},
{
"name": "rowcount",
"caption": "Rows",
"values": {
"25": "25",
"50": "50",
"75": "75",
"100": "100",
"150": "150",
"250": "250"
}
},
{
"name": "Account.TaxCountry",
"caption": "Tax country",
"values": {
"All": "-1",
"-": "0"
}
}
],
"fields": {
"lineOfBusiness": {
"format": "Enumeration values.Sales management.Accounts.LineOfBusinessTOL2008",
"caption": "Official line of business"
},
"shippingCity": {
"format": "text",
"caption": "Shipping city"
},
"handlingFee": {
"format": "Enumeration values.Finance control.Invoice position summary.Invoices.Handling fee",
"caption": "Handling fee"
},
"businessId": {
"format": "text",
"caption": "Business ID"
},
"vatId": {
"format": "text",
"caption": "VAT Reg. No."
},
"invoiceVat": {
"format": "Enumeration values.Finance control.Invoice position summary.Invoices.VAT",
"caption": "VAT"
},
"revenueLastYear": {
"format": "currency",
"caption": "Revenue last year"
},
"industry": {
"format": "Enumeration values.Sales management.Accounts.Industry",
"caption": "Industry"
},
"invoiceEmail": {
"format": "emaillink",
"caption": "Invoice email"
},
"shippingPostalCode": {
"format": "text",
"caption": "Shipping postal/zip code"
},
"type": {
"format": "Enumeration values.Sales management.Accounts.Type",
"caption": "Type"
},
"blog": {
"format": "text",
"caption": "Account.SocialMedia4"
},
"parentAccountName": {
"format": "text",
"caption": "Parent account"
},
"twitter": {
"format": "text",
"caption": "Account.SocialMedia2"
},
"ownerName": {
"format": "text",
"caption": "Account owner"
},
"shippingCountry": {
"format": "Enumeration values.Location.CountryId",
"caption": "Shipping country"
},
"ediCode": {
"format": "text",
"caption": "EDI/OVT-code"
},
"invoiceChannel": {
"format": "Enumeration values.Sales management.Accounts.Invoicing method",
"caption": "Delivery of invoices"
},
"rfReferenceNumber": {
"format": "Enumeration values.Sales management.Accounts.International RF-reference number",
"caption": "International RF-reference number"
},
"billingCountry": {
"format": "Enumeration values.Location.CountryId",
"caption": "Country"
},
"modified": {
"format": "mediumdate",
"caption": "Modified"
},
"supplierAccountName": {
"format": "text",
"caption": "Supplier"
},
"modifiedBy": {
"format": "text",
"caption": "Modified by"
},
"activeContacts": {
"format": "jscripticontooltip1",
"caption": "_iconmap(ui-icon-person)"
},
"id": {
"format": "text",
"caption": "Account.Id"
},
"fax": {
"format": "text",
"caption": "Fax"
},
"email": {
"format": "emaillink",
"caption": "Email"
},
"owner": {
"format": "text",
"caption": "Person.Id"
},
"website": {
"format": "weblink",
"caption": "Website"
},
"supplierAccount": {
"format": "text",
"caption": "SupplierAccount.Id"
},
"created": {
"format": "mediumdate",
"caption": "Created"
},
"facebook": {
"format": "text",
"caption": "Account.SocialMedia3"
},
"revenueThisYear": {
"format": "currency",
"caption": "Revenue this year"
},
"serviceLevel": {
"format": "Enumeration values.Sales management.Accounts.Service level",
"caption": "Service level"
},
"passive": {
"format": "Enumeration values.Sales management.Accounts.Status",
"caption": "Status"
},
"invoiceNetOperator": {
"format": "Enumeration values.Sales management.Accounts.Invoice net operator",
"caption": "Intermediator"
},
"invoiceNetAddress": {
"format": "text",
"caption": "Invoice net address"
},
"combineInvoices": {
"format": "Enumeration values.Administration.Jobs.Enabled",
"caption": "Combine invoices"
},
"phone": {
"format": "text",
"caption": "Phone"
},
"createdBy": {
"format": "text",
"caption": "Created by"
},
"billingPostalCode": {
"format": "text",
"caption": "Postal/Zip code"
},
"name": {
"format": "text",
"caption": "_Account"
},
"shippingAddress": {
"format": "text",
"caption": "Shipping street address"
},
"billingAddress": {
"format": "text",
"caption": "Street address"
},
"termsOfPayment": {
"format": "Enumeration values.Sales management.Accounts.Terms of Payment",
"caption": "Terms of payment"
},
"billingCity": {
"format": "text",
"caption": "City"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single account in PlanMill.
View details of a single account. See accounts/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Update an existing resource account to PlanMill. See accounts/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Remove a account from PlanMill.
get /accounts/{account_id}
View details of a single account. See accounts/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- account_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- name: (string)
Name of Account
- passive: (integer)
Active or passive state of account (Default value 0 - Inactive)
- owner: (integer)
Responsible id of an account (Default value - Creator of an account)
- type: (union of integer or nil)
Type of an account (Default value 8 - Prospect)
- vatId: (union of string or nil)
VAT id of an account
- businessId: (union of string or nil)
Business id of an account
- termsOfPayment: (union of integer or nil)
Terms of payment of an invoice (Default value 14 - 14 days)
- eInvoicingAddress: (union of string or nil)
eInvoicing address
- phone: (union of string or nil)
Phone number of an account
- website: (union of string or nil)
Website of an account
- email: (union of email or emptystring or nil)
Email address of an account
- industry: (union of integer or nil)
- serviceLevel: (union of integer or nil)
Service level provided to real company linked to an account
- customerSatisfaction: (union of integer or nil)
- description: (union of string or nil)
Description of an account
- invoiceChannel: (union of integer or nil)
Methods of delivery of invoices
- invoiceVat: (union of number or nil)
VAT on an invoice of an account (Default value 24 - 24%)
- invoiceNetOperator: (union of string or nil)
- handlingFee: (union of number or nil)
Handling fee of an account
- invoiceEmail: (union of email or emptystring or nil)
Invoice delivery email
- supplierAccount: (union of integer or nil)
Supplier id of an account
- reverseCharge: (union of integer or nil)
- twitter: (union of string or nil)
Twitter name of an account
- facebook: (union of string or nil)
Facebook name of an account
- blog: (union of string or nil)
Blog address of an account
- combineInvoices: (union of integer or nil)
- rfReferenceNumber: (union of integer or nil)
- lineOfBusiness: (union of integer or nil)
- staff: (union of integer or nil)
- turnover: (union of integer or nil)
- billingAddress: (union of string or nil)
Invoice billing address of an account
- billingCity: (union of string or nil)
Invoice billing city of an account
- billingCountry: (union of integer or nil)
Invoice billing country of an account
- billingPostalCode: (union of string or nil)
Invoice billing postal code of an account
- billingState: (union of string or nil)
- parentAccount: (union of integer or nil)
Parent id of an account
- shippingAddress: (union of string or nil)
Invoice shipping address of an account
- shippingCity: (union of string or nil)
Invoice shipping city of an account
- shippingCountry: (union of integer or nil)
Invoice shipping country of an account
- shippingPostalCode: (union of string or nil)
Invoice shipping postal code of an account
- shippingState: (union of string or nil)
- invoiceAppendix: (union of integer or nil)
- invoiceTemplate: (union of string or nil)
- autoReplyRequestMails: (union of integer or nil)
Auto-reply request mails
- billingReference: (union of string or integer or nil)
- shippingReference: (union of string or nil)
- id: (integer)
Internal ID of an account
- operationalId: (union of integer or nil)
Operational ID of an account
- parentAccountName: (union of string or nil)
Example:
{
"lineOfBusiness": null,
"shippingCity": "Helsinki",
"businessId": "123456",
"vatId": "852645",
"invoiceEmail": "invoice_email@planmill.com",
"shippingPostalCode": "13233",
"type": 100,
"blog": "http://www.blog.com",
"twitter": "http://www.twitter.com",
"shippingCountry": 73,
"invoiceChannel": 22,
"rfReferenceNumber": 0,
"billingCountry": 73,
"id": 4635,
"supplierAccount": 353,
"billingState": "",
"serviceLevel": 0,
"autoReplyRequestMails": 1,
"combineInvoices": 0,
"reverseCharge": 10,
"phone": "+358-46-334605",
"name": "Test Account",
"billingReference": "Finance Department",
"shippingState": "",
"termsOfPayment": 0,
"handlingFee": 10,
"invoiceVat": 24,
"description": "<p>test description</p>",
"industry": 100000,
"parentAccount": null,
"parentAccountName": null,
"shippingReference": "HR department",
"turnover": 100000,
"email": "email@planmill.com",
"owner": 4891,
"website": "http://www.planmill.com",
"facebook": "http://www.facebook.com",
"staff": null,
"passive": 0,
"invoiceNetOperator": "NDEAFIHH",
"billingPostalCode": "00500",
"shippingAddress": "Siltasaarenkatu 18",
"billingAddress": "Hämeentie 19",
"billingCity": "Helsinki"
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /accounts/{account_id}
Update an existing resource account to PlanMill. See accounts/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- account_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: object
Properties- name: (string)
Name of Account
- passive: (integer)
Active or passive state of account (Default value 0 - Inactive)
- owner: (integer)
Responsible id of an account (Default value - Creator of an account)
- type: (union of integer or nil)
Type of an account (Default value 8 - Prospect)
- vatId: (union of string or nil)
VAT id of an account
- businessId: (union of string or nil)
Business id of an account
- termsOfPayment: (union of integer or nil)
Terms of payment of an invoice (Default value 14 - 14 days)
- eInvoicingAddress: (union of string or nil)
eInvoicing address
- phone: (union of string or nil)
Phone number of an account
- website: (union of string or nil)
Website of an account
- email: (union of email or emptystring or nil)
Email address of an account
- industry: (union of integer or nil)
- serviceLevel: (union of integer or nil)
Service level provided to real company linked to an account
- customerSatisfaction: (union of integer or nil)
- description: (union of string or nil)
Description of an account
- invoiceChannel: (union of integer or nil)
Methods of delivery of invoices
- invoiceVat: (union of number or nil)
VAT on an invoice of an account (Default value 24 - 24%)
- invoiceNetOperator: (union of string or nil)
- handlingFee: (union of number or nil)
Handling fee of an account
- invoiceEmail: (union of email or emptystring or nil)
Invoice delivery email
- supplierAccount: (union of integer or nil)
Supplier id of an account
- reverseCharge: (union of integer or nil)
- twitter: (union of string or nil)
Twitter name of an account
- facebook: (union of string or nil)
Facebook name of an account
- blog: (union of string or nil)
Blog address of an account
- combineInvoices: (union of integer or nil)
- rfReferenceNumber: (union of integer or nil)
- lineOfBusiness: (union of integer or nil)
- staff: (union of integer or nil)
- turnover: (union of integer or nil)
- billingAddress: (union of string or nil)
Invoice billing address of an account
- billingCity: (union of string or nil)
Invoice billing city of an account
- billingCountry: (union of integer or nil)
Invoice billing country of an account
- billingPostalCode: (union of string or nil)
Invoice billing postal code of an account
- billingState: (union of string or nil)
- parentAccount: (union of integer or nil)
Parent id of an account
- shippingAddress: (union of string or nil)
Invoice shipping address of an account
- shippingCity: (union of string or nil)
Invoice shipping city of an account
- shippingCountry: (union of integer or nil)
Invoice shipping country of an account
- shippingPostalCode: (union of string or nil)
Invoice shipping postal code of an account
- shippingState: (union of string or nil)
- invoiceAppendix: (union of integer or nil)
- invoiceTemplate: (union of string or nil)
- autoReplyRequestMails: (union of integer or nil)
Auto-reply request mails
- billingReference: (union of string or integer or nil)
- shippingReference: (union of string or nil)
Example:
{
"lineOfBusiness": null,
"shippingCity": "Helsinki",
"businessId": "2862228-2",
"vatId": "2862228-2",
"invoiceEmail": "invoice_email@planmill.com",
"shippingPostalCode": "13233",
"type": 100,
"blog": "http://www.blog.com",
"twitter": "http://www.twitter.com",
"shippingCountry": 73,
"invoiceChannel": 22,
"rfReferenceNumber": 0,
"billingCountry": 73,
"supplierAccount": 353,
"billingState": "",
"serviceLevel": 0,
"autoReplyRequestMails": 1,
"combineInvoices": 0,
"reverseCharge": 10,
"phone": "+358-46-334605",
"name": "Test Account",
"billingReference": "Finance Department",
"shippingState": "",
"termsOfPayment": 0,
"handlingFee": 10,
"invoiceVat": 24,
"description": "<p>test description</p>",
"industry": 100000,
"parentAccount": null,
"parentAccountName": null,
"shippingReference": "HR department",
"turnover": 100000,
"email": "email@planmill.com",
"owner": 4891,
"website": "http://www.planmill.com",
"facebook": "http://www.facebook.com",
"staff": null,
"passive": 0,
"invoiceNetOperator": "NDEAFIHH",
"billingPostalCode": "00500",
"shippingAddress": "Siltasaarenkatu 18",
"billingAddress": "Hämeentie 19",
"billingCity": "Helsinki"
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /accounts/{account_id}
Remove a account from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- account_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for the updatable fields of the account
View details of a single meta.
get /accounts/{account_id}/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- account_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"lineOfBusiness": {
"caption": "",
"format": "int",
"description": "",
"values": null
},
"shippingCity": {
"caption": "City",
"format": "string",
"description": "",
"values": null
},
"businessId": {
"caption": "Business ID",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"vatId": {
"caption": "VAT Reg. No.",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"invoiceEmail": {
"caption": "Invoice email",
"format": "multiemail",
"description": "",
"maxlength": "180",
"values": null
},
"shippingPostalCode": {
"caption": "Postal/Zip code",
"format": "string",
"description": "",
"values": null
},
"type": {
"caption": "Type",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Sales management.Accounts.Type",
"values": {
"Competitor": "2",
"My company - other": "110",
"Customer": "3",
"Reseller": "9",
"Vendor": "11",
"-": "0",
"Analyst": "1",
"My company": "100",
"Subcontractor": "12",
"Integrator": "4",
"Prospect": "8",
"Investor": "5",
"Partner": "6",
"Press": "7",
"Other": "10"
}
},
"blog": {
"caption": "Blog",
"format": "url",
"description": "",
"maxlength": "255",
"values": null
},
"twitter": {
"caption": "Twitter",
"format": "url",
"description": "",
"maxlength": "255",
"values": null
},
"shippingCountry": {
"caption": "Country",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Location.CountryId",
"values": {
"Papua New Guinea": "165",
"Cambodia": "37",
"Paraguay": "166",
"�land Islands": "236",
"Bahamas": "17",
"Solomon Islands": "188",
"Montserrat": "142",
"Mali": "130",
"Marshall Islands": "132",
"Guadeloupe": "239",
"Panama": "164",
"Virgin Islands, British": "27",
"Iran, Islamic Republic of": "98",
"Tanzania, United Republic of": "205",
"Argentina": "9",
"Seychelles": "183",
"Zambia": "233",
"Belize": "23",
"Bahrain": "19",
"-": "0",
"Guinea-Bissau": "89",
"Namibia": "146",
"Comoros": "50",
"Faroe Islands": "71",
"Finland": "73",
"Netherlands Antilles": "150",
"Georgia": "79",
"French Southern territories": "258",
"Saint Kitts and Nevis": "194",
"Yemen": "235",
"Eritrea": "67",
"Puerto Rico": "171",
"Viet Nam": "225",
"Yugoslavia (discontinued)": "231",
"Aruba": "11",
"Madagascar": "126",
"Svalbard and Jan Mayen": "254",
"Saint Martin": "251",
"South Georgia and the South Sandwich Islands": "253",
"Sweden": "199",
"Malawi": "127",
"Cocos (Keeling) Islands": "260",
"Andorra": "5",
"Liechtenstein": "122",
"Poland": "169",
"Bulgaria": "34",
"Jordan": "106",
"Tunisia": "211",
"Australian External Territories(discontinued)": "14",
"Tuvalu": "214",
"United Arab Emirates": "217",
"Kenya": "108",
"Yemen Arab Republic (North Yemen)(discontinued)": "230",
"French Polynesia": "202",
"Lebanon": "117",
"Djibouti": "62",
"Azerbaijan": "16",
"Cuba": "55",
"Czech Republic": "57",
"Saint Lucia": "250",
"Mauritania": "134",
"Guernsey": "240",
"Mayotte": "136",
"Korea, Republic of (South Korea)": "111",
"San Marino": "178",
"Israel": "101",
"Australia": "13",
"Tajikistan": "204",
"Other": "1000",
"Myanmar": "145",
"Cameroon": "38",
"Gibraltar": "82",
"Cyprus": "56",
"Northern Mariana Islands": "159",
"Saipan(double)": "177",
"Malaysia": "128",
"Oman": "161",
"Iceland": "95",
"Armenia": "10",
"Macedonia, The former Yugoslav Republic of": "125",
"Gabon": "77",
"Luxembourg": "123",
"Brazil": "31",
"Turks and Caicos Islands": "255",
"Algeria": "3",
"Jersey": "247",
"Slovenia": "187",
"Antigua and Barbuda": "8",
"Colombia": "49",
"Ecuador": "63",
"Cape Verdi(double)": "43",
"Vanuatu": "222",
"United States Minor Outlying Islands": "257",
"Honduras": "92",
"Italy": "102",
"Antarctica": "237",
"Nauru": "147",
"Haiti": "91",
"Afghanistan": "1",
"Burundi": "36",
"Russian Federation": "175",
"Singapore": "185",
"French Guiana": "76",
"American Samoa": "4",
"Christmas Island": "259",
"Congo (Congo-Kinshasa)": "232",
"Netherlands": "149",
"China": "47",
"Martinique": "133",
"Palestinian Territory, Occupied": "244",
"Saint Pierre and Miquelon": "195",
"Kyrgyzstan": "114",
"Bhutan": "26",
"Romania": "174",
"Falkland Islands (Malvinas)": "70",
"Togo": "207",
"Philippines": "168",
"Uzbekistan": "221",
"Holy See (Vatican City State)": "223",
"Pitcairn": "248",
"Zimbabwe": "234",
"British Indian Ocean Territory": "59",
"Montenegro": "242",
"Dominica": "60",
"Indonesia": "97",
"Benin": "24",
"Yemen (People's Democratic Republic of)(discontinued)": "229",
"Angola": "6",
"East Timor": "245",
"Sudan": "196",
"Brunei Darussalam": "33",
"Portugal": "170",
"New Caledonia": "152",
"Grenada": "85",
"Cayman Islands": "42",
"Greece": "83",
"Latvia": "115",
"Mongolia": "141",
"Congo (Congo-Brazzaville)": "51",
"Morocco": "143",
"Guatemala": "87",
"Guyana": "90",
"Iraq": "99",
"Chile": "46",
"Nepal": "148",
"Heard Island and McDonald Islands": "241",
"Isle of Man": "246",
"Ukraine": "216",
"Ghana": "81",
"Anguilla": "7",
"India": "96",
"Canada": "39",
"Maldives": "129",
"Turkey": "212",
"Belgium": "22",
"C�te d?Ivoire": "103",
"Khmer Republic (Cambodia/Kampuchea)(double)": "109",
"South Africa": "190",
"Trinidad and Tobago": "210",
"Bermuda": "25",
"Central African Republic": "44",
"Lao People?s Democratic Republic": "116",
"Jamaica": "104",
"Peru": "167",
"Turkmenistan": "213",
"Germany": "80",
"Korea, Democratic People?s Republic of (North Korea)": "112",
"Fiji": "72",
"Tokelau": "208",
"Hong Kong": "93",
"Guinea": "88",
"United States": "220",
"Micronesia, Federated States of": "138",
"Chad": "45",
"Somalia": "189",
"Nevis(double)": "151",
"Sao Tome and Principe": "179",
"Thailand": "206",
"Kiribati": "110",
"Equatorial Guinea": "66",
"Costa Rica": "53",
"Kuwait": "113",
"Nigeria": "156",
"Croatia": "54",
"Syrian Arab Republic": "201",
"Cook Islands": "52",
"Sri Lanka": "192",
"Uruguay": "219",
"United Kingdom": "218",
"Switzerland": "200",
"Samoa": "228",
"Spain": "191",
"Liberia": "119",
"Venezuela": "224",
"Burkina Faso": "35",
"Virgin Islands, U.S.": "226",
"Swaziland": "198",
"Saint Barth�lemy": "249",
"Palau": "163",
"Estonia": "68",
"Libyan Arab Jamahiriya": "121",
"Kazakstan": "107",
"Wallis and Futuna": "227",
"Niue": "157",
"Austria": "15",
"Mozambique": "144",
"El Salvador": "65",
"Monaco": "140",
"Guam": "86",
"British V.I.(double)": "32",
"Lesotho": "118",
"Tonga": "209",
"Western Sahara": "256",
"R�union": "173",
"Hungary": "94",
"Japan": "105",
"Belarus": "21",
"Mauritius": "135",
"Bouvet Island": "238",
"Norfolk Island": "243",
"Albania": "2",
"New Zealand": "153",
"Senegal": "181",
"Moldova, Republic of": "139",
"Ethiopia": "69",
"Taiwan(double)": "203",
"Egypt": "64",
"Macau": "124",
"Sierra Leone": "184",
"North Korea(double)": "158",
"Bolivia": "28",
"Malta": "131",
"Saudi Arabia": "180",
"Cape Verde": "40",
"Pakistan": "162",
"Gambia": "78",
"Qatar": "172",
"Ireland": "100",
"Slovakia": "186",
"Lithuania": "120",
"France": "74",
"Serbia": "182",
"Bosnia and Herzegovina": "29",
"Taiwan, Province of China": "48",
"Niger": "155",
"French Antilles(discontinued)": "75",
"Rwanda": "176",
"Ascension Island(double,now part of St. Helena)": "12",
"Bangladesh": "20",
"Barbados": "18",
"Nicaragua": "154",
"Norway": "160",
"Saint Vincent and the Grenadines": "252",
"Botswana": "30",
"Denmark": "58",
"Dominican Republic": "61",
"Mexico": "137",
"Uganda": "215",
"Suriname": "197",
"Greenland": "84",
"Saint Helena": "193"
}
},
"invoiceChannel": {
"caption": "Invoice delivery channel",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Finance control.Invoice position summary.Invoices.Channel",
"values": {
"Email": "4",
"Printing service": "1",
"E-invoice": "2",
"Manually": "3"
}
},
"rfReferenceNumber": {
"caption": "International RF-reference number",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Sales management.Accounts.International RF-reference number",
"values": {
"No": "0",
"Yes": "1"
}
},
"billingCountry": {
"caption": "Country",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Location.CountryId",
"values": {
"Papua New Guinea": "165",
"Cambodia": "37",
"Paraguay": "166",
"�land Islands": "236",
"Bahamas": "17",
"Solomon Islands": "188",
"Montserrat": "142",
"Mali": "130",
"Marshall Islands": "132",
"Guadeloupe": "239",
"Panama": "164",
"Virgin Islands, British": "27",
"Iran, Islamic Republic of": "98",
"Tanzania, United Republic of": "205",
"Argentina": "9",
"Seychelles": "183",
"Zambia": "233",
"Belize": "23",
"Bahrain": "19",
"-": "0",
"Guinea-Bissau": "89",
"Namibia": "146",
"Comoros": "50",
"Faroe Islands": "71",
"Finland": "73",
"Netherlands Antilles": "150",
"Georgia": "79",
"French Southern territories": "258",
"Saint Kitts and Nevis": "194",
"Yemen": "235",
"Eritrea": "67",
"Puerto Rico": "171",
"Viet Nam": "225",
"Yugoslavia (discontinued)": "231",
"Aruba": "11",
"Madagascar": "126",
"Svalbard and Jan Mayen": "254",
"Saint Martin": "251",
"South Georgia and the South Sandwich Islands": "253",
"Sweden": "199",
"Malawi": "127",
"Cocos (Keeling) Islands": "260",
"Andorra": "5",
"Liechtenstein": "122",
"Poland": "169",
"Bulgaria": "34",
"Jordan": "106",
"Tunisia": "211",
"Australian External Territories(discontinued)": "14",
"Tuvalu": "214",
"United Arab Emirates": "217",
"Kenya": "108",
"Yemen Arab Republic (North Yemen)(discontinued)": "230",
"French Polynesia": "202",
"Lebanon": "117",
"Djibouti": "62",
"Azerbaijan": "16",
"Cuba": "55",
"Czech Republic": "57",
"Saint Lucia": "250",
"Mauritania": "134",
"Guernsey": "240",
"Mayotte": "136",
"Korea, Republic of (South Korea)": "111",
"San Marino": "178",
"Israel": "101",
"Australia": "13",
"Tajikistan": "204",
"Other": "1000",
"Myanmar": "145",
"Cameroon": "38",
"Gibraltar": "82",
"Cyprus": "56",
"Northern Mariana Islands": "159",
"Saipan(double)": "177",
"Malaysia": "128",
"Oman": "161",
"Iceland": "95",
"Armenia": "10",
"Macedonia, The former Yugoslav Republic of": "125",
"Gabon": "77",
"Luxembourg": "123",
"Brazil": "31",
"Turks and Caicos Islands": "255",
"Algeria": "3",
"Jersey": "247",
"Slovenia": "187",
"Antigua and Barbuda": "8",
"Colombia": "49",
"Ecuador": "63",
"Cape Verdi(double)": "43",
"Vanuatu": "222",
"United States Minor Outlying Islands": "257",
"Honduras": "92",
"Italy": "102",
"Antarctica": "237",
"Nauru": "147",
"Haiti": "91",
"Afghanistan": "1",
"Burundi": "36",
"Russian Federation": "175",
"Singapore": "185",
"French Guiana": "76",
"American Samoa": "4",
"Christmas Island": "259",
"Congo (Congo-Kinshasa)": "232",
"Netherlands": "149",
"China": "47",
"Martinique": "133",
"Palestinian Territory, Occupied": "244",
"Saint Pierre and Miquelon": "195",
"Kyrgyzstan": "114",
"Bhutan": "26",
"Romania": "174",
"Falkland Islands (Malvinas)": "70",
"Togo": "207",
"Philippines": "168",
"Uzbekistan": "221",
"Holy See (Vatican City State)": "223",
"Pitcairn": "248",
"Zimbabwe": "234",
"British Indian Ocean Territory": "59",
"Montenegro": "242",
"Dominica": "60",
"Indonesia": "97",
"Benin": "24",
"Yemen (People's Democratic Republic of)(discontinued)": "229",
"Angola": "6",
"East Timor": "245",
"Sudan": "196",
"Brunei Darussalam": "33",
"Portugal": "170",
"New Caledonia": "152",
"Grenada": "85",
"Cayman Islands": "42",
"Greece": "83",
"Latvia": "115",
"Mongolia": "141",
"Congo (Congo-Brazzaville)": "51",
"Morocco": "143",
"Guatemala": "87",
"Guyana": "90",
"Iraq": "99",
"Chile": "46",
"Nepal": "148",
"Heard Island and McDonald Islands": "241",
"Isle of Man": "246",
"Ukraine": "216",
"Ghana": "81",
"Anguilla": "7",
"India": "96",
"Canada": "39",
"Maldives": "129",
"Turkey": "212",
"Belgium": "22",
"C�te d?Ivoire": "103",
"Khmer Republic (Cambodia/Kampuchea)(double)": "109",
"South Africa": "190",
"Trinidad and Tobago": "210",
"Bermuda": "25",
"Central African Republic": "44",
"Lao People?s Democratic Republic": "116",
"Jamaica": "104",
"Peru": "167",
"Turkmenistan": "213",
"Germany": "80",
"Korea, Democratic People?s Republic of (North Korea)": "112",
"Fiji": "72",
"Tokelau": "208",
"Hong Kong": "93",
"Guinea": "88",
"United States": "220",
"Micronesia, Federated States of": "138",
"Chad": "45",
"Somalia": "189",
"Nevis(double)": "151",
"Sao Tome and Principe": "179",
"Thailand": "206",
"Kiribati": "110",
"Equatorial Guinea": "66",
"Costa Rica": "53",
"Kuwait": "113",
"Nigeria": "156",
"Croatia": "54",
"Syrian Arab Republic": "201",
"Cook Islands": "52",
"Sri Lanka": "192",
"Uruguay": "219",
"United Kingdom": "218",
"Switzerland": "200",
"Samoa": "228",
"Spain": "191",
"Liberia": "119",
"Venezuela": "224",
"Burkina Faso": "35",
"Virgin Islands, U.S.": "226",
"Swaziland": "198",
"Saint Barth�lemy": "249",
"Palau": "163",
"Estonia": "68",
"Libyan Arab Jamahiriya": "121",
"Kazakstan": "107",
"Wallis and Futuna": "227",
"Niue": "157",
"Austria": "15",
"Mozambique": "144",
"El Salvador": "65",
"Monaco": "140",
"Guam": "86",
"British V.I.(double)": "32",
"Lesotho": "118",
"Tonga": "209",
"Western Sahara": "256",
"R�union": "173",
"Hungary": "94",
"Japan": "105",
"Belarus": "21",
"Mauritius": "135",
"Bouvet Island": "238",
"Norfolk Island": "243",
"Albania": "2",
"New Zealand": "153",
"Senegal": "181",
"Moldova, Republic of": "139",
"Ethiopia": "69",
"Taiwan(double)": "203",
"Egypt": "64",
"Macau": "124",
"Sierra Leone": "184",
"North Korea(double)": "158",
"Bolivia": "28",
"Malta": "131",
"Saudi Arabia": "180",
"Cape Verde": "40",
"Pakistan": "162",
"Gambia": "78",
"Qatar": "172",
"Ireland": "100",
"Slovakia": "186",
"Lithuania": "120",
"France": "74",
"Serbia": "182",
"Bosnia and Herzegovina": "29",
"Taiwan, Province of China": "48",
"Niger": "155",
"French Antilles(discontinued)": "75",
"Rwanda": "176",
"Ascension Island(double,now part of St. Helena)": "12",
"Bangladesh": "20",
"Barbados": "18",
"Nicaragua": "154",
"Norway": "160",
"Saint Vincent and the Grenadines": "252",
"Botswana": "30",
"Denmark": "58",
"Dominican Republic": "61",
"Mexico": "137",
"Uganda": "215",
"Suriname": "197",
"Greenland": "84",
"Saint Helena": "193"
}
},
"id": {
"caption": "",
"format": "int",
"description": "",
"values": null
},
"fax": {
"description": "e.g. +xxx-xx-xxxx",
"caption": "Fax",
"format": "phone",
"maxlength": "80",
"values": null
},
"supplierAccount": {
"caption": "Supplier",
"values": {
"PlanMill Oy": "2782784",
"-": "-1"
},
"format": "int",
"description": ""
},
"billingState": {
"caption": "State",
"format": "string",
"description": "",
"values": null
},
"serviceLevel": {
"caption": "Service level",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Sales management.Accounts.Service level",
"values": {
"No agreements": "0",
"Gold Care": "2",
"Platinum Care": "3",
"Silver Care": "1"
}
},
"invoiceNetAddress": {
"caption": "Invoice net address",
"description": "",
"maxlength": "80",
"values": null
},
"autoReplyRequestMails": {
"caption": "Auto-reply request mails",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Administration.Jobs.Enabled",
"values": {
"No": "0",
"Yes": "1"
}
},
"combineInvoices": {
"caption": "Combine invoices",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Administration.Jobs.Enabled",
"values": {
"No": "0",
"Yes": "1"
}
},
"reverseCharge": {
"caption": "Reverse charge",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Sales management.Accounts.Reverse charge",
"values": {
"0,0 % VAT Reverse charge": "10"
}
},
"phone": {
"description": "e.g. +xxx-xx-xxxx",
"caption": "Phone",
"format": "phone",
"maxlength": "80",
"values": null
},
"billingReference": {
"description": "Maximum length of 'Your reference' is 35 characters because of Finvoice standard (Finvoice standard supports only 35 characters)",
"caption": "Billing Department/Reference",
"maxlength": "35",
"values": null
},
"shippingState": {
"caption": "State",
"format": "string",
"description": "",
"values": null
},
"termsOfPayment": {
"caption": "Terms of payment",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Sales management.Accounts.Terms of Payment",
"values": {
"180 days net": "180",
"Immediately": "0",
"14 days net": "14",
"45 days net": "45",
"28 days net": "28",
"30 days net": "30",
"120 days net": "120",
"7 days net": "7",
"60 days net": "60",
"90 days net": "90",
"21 days net": "21"
}
},
"billingLocationId": {
"caption": "",
"format": "int",
"description": "",
"values": null
},
"handlingFee": {
"caption": "Handling fee",
"format": "double",
"description": "",
"values": null
},
"invoiceVat": {
"caption": "VAT",
"description": "",
"enumeration": "Enumeration values.Finance control.Invoice position summary.Invoices.VAT",
"values": {
"12%": "12.0",
"9%": "9.0",
"17,5 %": "17.5",
"13 %": "13.0",
"24 %": "24.0",
"23 %": "23.0",
"22 %": "22.0",
"10 %": "10.0",
"21 %": "21.0",
"20 %": "20.0",
"0 %": "0.0",
"5 %": "5.0",
"19 %": "19.0",
"18 %": "18.0",
"7 %": "7.0",
"17 %": "17.0",
"8 %": "8.0",
"15 %": "15.0",
"14 %": "14.0",
"25 %": "25.0"
}
},
"description": {
"format": "string",
"description": "",
"values": null
},
"shippingLocationId": {
"caption": "",
"format": "int",
"description": "",
"values": null
},
"industry": {
"caption": "Industry",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Sales management.Accounts.Industry",
"values": {
"74 Other prof. services": "74",
"J ICT": "100900",
"61 Telecommunication": "61",
"Q Health&Social work": "101600",
"I Acc.dation&Food": "100800",
"6209 Other IT services": "6209",
"71 Architecture&Eng": "71",
"O Public administr.": "101400",
"U Extraterr.org.&bodies": "102000",
"S Other Service": "101800",
"E Water & Waste": "100400",
"72 Sc. Research": "72",
"F Construction": "100500",
"K Finance&Insurance": "101000",
"62 Software&IT serv": "62",
"B Mining&Quarrying": "100100",
"X Industry unknown": "102100",
"H Transport&storage": "100700",
"N Admin&Support": "101300",
"6203 IT Facilities": "6203",
"R Arts, ent.&recreation": "101700",
"75 Veterinary": "75",
"69 Legal&Accounting": "69",
"A Agric and Forestry": "100000",
"58 Publishing": "58",
"73 Adv&Marketing": "73",
"63 Inform. services": "63",
"L Real Estate": "101100",
"C Manufacturing": "100200",
"M Prof. services": "101200",
"-": "-1",
"59 Movies & sound pr.": "59",
"6202 IT Consulting": "6202",
"T Households as empl.": "101900",
"G Wholesale&Retail": "100600",
"6201 Programming": "6201",
"P Education": "101500",
"D Electricity Gas etc": "100300",
"70 Mgmt consultancy": "70",
"60 Broadcasting": "60"
}
},
"parentAccount": {
"caption": "",
"format": "int",
"description": "",
"values": null
},
"ceo": {
"caption": "CEO",
"maxlength": "50",
"values": null
},
"parentAccountName": {
"caption": "Parent account",
"format": "string",
"description": "",
"values": null
},
"ediCode": {
"caption": "EDI/OVT-code",
"description": "",
"maxlength": "20",
"values": null
},
"shippingReference": {
"caption": "Shipping Department/Reference",
"format": "string",
"description": "",
"values": null
},
"turnover": {
"description": "This field supports currently only euros, we will add full currency support later. Please fill in turnover in 1000s of euros",
"caption": "Turnover K�",
"format": "int",
"values": null
},
"email": {
"caption": "Email",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"owner": {
"caption": "Account owner",
"values": {
"Admin, Test": "2833",
"EmployeeLastName, EmployeeFirstName": "2697"
},
"format": "int",
"description": ""
},
"website": {
"caption": "Website",
"format": "url",
"description": "",
"maxlength": "150",
"values": null
},
"facebook": {
"caption": "Facebook",
"format": "url",
"description": "",
"maxlength": "255",
"values": null
},
"staff": {
"caption": "Personnel",
"format": "int",
"description": "",
"values": null
},
"passive": {
"caption": "Status",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Sales management.Accounts.Status",
"values": {
"Active": "0",
"Inactive": "1"
}
},
"invoiceNetOperator": {
"caption": "Intermediator",
"description": "",
"enumeration": "Enumeration values.Sales management.Accounts.Invoice net operator",
"values": {
"Tapiola Pankki (TAPIFI22)": "130",
"InExchange Factorum AB (INEXCHANGE)": "250",
"Maventa Oy (MAVENTA)": "190",
"Danske Bank Oyj (DABAFIHH)": "100",
"Handelsbanken (HANDFIHH)": "120",
"OpusCapita Group Oy (003710948874)": "60",
"�landsbanken (AABAFI22) - Bank of �land": "140",
"Paikallisosuuspankit (POPFFI22)": "90",
"Aktia S��st�pankki Oyj (HELSFIHH)": "150",
"Tradeshift (00885060259470028)": "220",
"S��st�pankit (ITELFIHH)": "240",
"BasWare Oyj (BAWCFI22)": "30",
"Pagero (PAGERO)": "230",
"TeliaSonera Finland Oyj (003714756079)": "160",
"CGI (003703575029)": "180",
"Nordea (NDEAFIHH)": "70",
"Liaison Technologies Oy (003708599126)": "10",
"OP-ryhm� (OKOYFIHH)": "80",
"Tieto Oyj (003701011385)": "170",
"Enfo Zender Oy (003714377140)": "50",
"Svenska Handelsbanken AB (HANDFIHH)": "110",
"Apix Messaging Oy (00372332748700001)": "210",
"Notebeat Oy (003717203971)": "200"
}
},
"billingPostalCode": {
"caption": "Postal/Zip code",
"format": "string",
"description": "",
"values": null
},
"firstInvoiceNumber": {
"caption": "First invoice number",
"format": "string",
"description": "",
"maxlength": "11",
"values": null
},
"shippingAddress": {
"caption": "Address (shipping)",
"format": "string",
"description": "",
"values": null
},
"billingAddress": {
"description": "(billing or visiting)",
"caption": "Address",
"format": "string",
"values": null
},
"billingCity": {
"caption": "City",
"format": "string",
"description": "",
"values": null
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available attachments in PlanMill. This is a read-only collection.
Get a list of attachments
get /accounts/{account_id}/attachments
Get a list of attachments
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- account_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
[
{
"size": 8497,
"createdBy": 50,
"created": "2022-01-13T13:05:10.837+0200",
"name": "attached_file_test.txt",
"modified": "2022-01-13T13:18:25.353+0200",
"id": 1543
},
{
"size": 146169,
"createdBy": 50,
"created": "2022-01-13T13:18:25.353+0200",
"name": "attached_file.txt",
"modified": "2022-01-13T13:18:25.353+0200",
"id": 1545
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
attachment_id is returned by /tempfiles endpoint on file upload.
View details of single attachment.
put /accounts/{account_id}/attachments/{attachment_id}
attachment_id is returned by /tempfiles endpoint on file upload.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- account_id: required(string)
- attachment_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
get /accounts/{account_id}/attachments/{attachment_id}
View details of single attachment.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- account_id: required(string)
- attachment_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
Contents of file
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/actions
Collection of available actions in PlanMill. See actions/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Get a list of actions. See actions/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Add a new action to PlanMill or update existing (if id is given). See actions/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /actions
Get a list of actions. See actions/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort: (string)
Sorts the results using string that is a JSON attribute
- interval: (string)
Interval type, e.g. start, finish, created, or modified. It is required in combination with intervalstart or intervalfinish
- intervalstart: (string)
Start date of the interval in UTC format, intervalfinish required
Example:
2021-08-05T00:00:00.000+0200
- intervalfinish: (string)
Finish date of the interval in UTC format, intervalstart required
Example:
2021-08-05T00:00:00.000+0200
HTTP status code 200
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all action entities",
"oneOf": [{
"type": "array",
"items": {
"$ref": "#/definitions/actionArray"
}
}, {
"$ref": "#/definitions/actionSingle"
}],
"definitions": {
"actionSingle": {
"type": "object",
"required": ["subject"],
"properties": {
"request": {
"type": ["string", "null"],
"description": "Action's request"
},
"private": {
"type": ["integer", "null"],
"description": "Action's view status: 0=No, 1=Yes"
},
"performers": {
"type": ["string", "null"],
"description": "List of action's performers"
},
"reminder": {
"type": ["integer", "null"],
"description": "Action's reminder: 0=No, 1=Same day as due date, 2=1 day before due date, 3= 3 days before due date, 4= 7 days before due date, 5= 14 days before due date, 6= 30 days before due date"
},
"subject": {
"type": "string",
"description": "Action's subject"
},
"dueDate": {
"type": ["string", "null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Action's due date"
},
"start": {
"type": ["string", "null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Action's start date"
},
"description": {
"type": ["string", "null"],
"description": "Action description"
},
"project": {
"type": ["string", "null"],
"description": "Action's project"
},
"opportunity": {
"type": ["string", "null"],
"description": "Action's opportunity"
},
"type": {
"type": ["integer", "null"],
"description": "Action's type: 0= None, 1= Call, 2=Correspondence, 3= Demo, 4= Email, 5= Event, 6= Fax, 7= Meeting, 9= Presentation, 10= Todo, 11= Webinar"
},
"priority": {
"type": ["integer", "null"],
"description": "Action priority: 1= High, 2= Medium, 3= Low "
},
"salesOrder": {
"type": ["string", "null"],
"description": "Action's sales order"
},
"responsible": {
"type": ["integer", "null"],
"description": "Person responsible for the action"
},
"contact": {
"type": ["integer", "null"],
"description": "Action's contact"
},
"campaign": {
"type": ["string", "null"],
"description": "Action's campaign"
},
"location": {
"type": ["string", "null"],
"description": "Action's location"
},
"id": {
"type": "integer",
"description": "action id"
},
"status": {
"type": ["integer", "null"],
"description": "Action's status: 0= Received, 1= In progress, 2= In progress -waiting for more info, 4= Suspended, 40= Completed"
}
}
},
"actionArray": {
"type": "object",
"required": ["subject"],
"properties": {
"request": {
"type": ["string", "integer", "null"],
"description": "Action's request"
},
"private": {
"type": ["integer", "null"],
"description": "Action's view status: 0=No, 1=Yes"
},
"performers": {
"type": ["string", "null"],
"description": "List of action's performers"
},
"reminder": {
"type": ["integer", "null"],
"description": "Action's reminder: 0=No, 1=Same day as due date, 2=1 day before due date, 3= 3 days before due date, 4= 7 days before due date, 5= 14 days before due date, 6= 30 days before due date"
},
"subject": {
"type": "string",
"description": "Action's subject"
},
"dueDate": {
"type": ["string", "null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Action's due date"
},
"start": {
"type": ["string", "null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Action's start date"
},
"project": {
"type": ["string", "integer", "null"],
"description": "Action's project"
},
"opportunity": {
"type": ["string", "integer", "null"],
"description": "Action's opportunity"
},
"type": {
"type": ["integer", "null"],
"description": "Action's type: 0= None, 1= Call, 2=Correspondence, 3= Demo, 4= Email, 5= Event, 6= Fax, 7= Meeting, 9= Presentation, 10= Todo, 11= Webinar"
},
"priority": {
"type": ["integer", "null"],
"description": "Action priority: 1= High, 2= Medium, 3= Low "
},
"salesOrder": {
"type": ["string", "integer", "null"],
"description": "Action's sales order"
},
"responsible": {
"type": ["integer", "null"],
"description": "Person responsible for the action"
},
"contact": {
"type": ["integer", "null"],
"description": "Action's contact"
},
"campaign": {
"type": ["string", "integer", "null"],
"description": "Action's campaign"
},
"location": {
"type": ["string", "null"],
"description": "Action's location"
},
"id": {
"type": "integer",
"description": "action id"
},
"status": {
"type": ["integer", "null"],
"description": "Action's status: 0= Received, 1= In progress, 2= In progress -waiting for more info, 4= Suspended, 40= Completed"
}
}
}
}
}
Example:
[
{
"request": 6827,
"private": 0,
"reminder": 0,
"subject": "Test Action 1",
"created": "2015-01-19T09:44:00.000+0200",
"dueDate": "2015-10-19T00:00:00.000+0300",
"start": "2015-10-19T00:00:00.000+0300",
"opportunity": 5684,
"project": 8572,
"type": 1,
"priority": 2,
"salesOrder": 6891,
"contact": 9658,
"responsible": 4935,
"modified": "2015-01-19T09:44:00.000+0200",
"campaign": 7862,
"location": "Tampere",
"id": 599448,
"status": 0
},
{
"request": null,
"private": 0,
"reminder": 0,
"subject": "Test Action 2",
"created": "2015-09-07T16:27:06.920+0300",
"dueDate": "2015-09-30T00:00:00.000+0300",
"start": "2015-09-08T00:00:00.000+0300",
"opportunity": 2579,
"project": 5713,
"type": 10,
"priority": 2,
"salesOrder": 5272,
"contact": 5571,
"responsible": 5547,
"modified": "2015-09-08T12:16:27.593+0300",
"campaign": 6954,
"location": "Helsinki",
"id": 5739,
"status": 0
},
{
"request": null,
"private": 0,
"reminder": 0,
"subject": "Test Action 3",
"created": "2010-01-13T10:16:00.000+0200",
"dueDate": "2010-10-13T00:00:00.000+0300",
"start": "2010-10-13T00:00:00.000+0300",
"opportunity": null,
"project": null,
"type": 1,
"priority": 2,
"salesOrder": null,
"contact": null,
"responsible": 439,
"modified": "2010-01-13T10:16:00.000+0200",
"campaign": null,
"location": null,
"id": 600126,
"status": 1
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /actions
Add a new action to PlanMill or update existing (if id is given). See actions/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all action entities",
"oneOf": [{
"type": "array",
"items": {
"$ref": "#/definitions/actionArray"
}
}, {
"$ref": "#/definitions/actionSingle"
}],
"definitions": {
"actionSingle": {
"type": "object",
"required": ["subject"],
"properties": {
"request": {
"type": ["string", "null"],
"description": "Action's request"
},
"private": {
"type": ["integer", "null"],
"description": "Action's view status: 0=No, 1=Yes"
},
"performers": {
"type": ["string", "null"],
"description": "List of action's performers"
},
"reminder": {
"type": ["integer", "null"],
"description": "Action's reminder: 0=No, 1=Same day as due date, 2=1 day before due date, 3= 3 days before due date, 4= 7 days before due date, 5= 14 days before due date, 6= 30 days before due date"
},
"subject": {
"type": "string",
"description": "Action's subject"
},
"dueDate": {
"type": ["string", "null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Action's due date"
},
"start": {
"type": ["string", "null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Action's start date"
},
"description": {
"type": ["string", "null"],
"description": "Action description"
},
"project": {
"type": ["string", "null"],
"description": "Action's project"
},
"opportunity": {
"type": ["string", "null"],
"description": "Action's opportunity"
},
"type": {
"type": ["integer", "null"],
"description": "Action's type: 0= None, 1= Call, 2=Correspondence, 3= Demo, 4= Email, 5= Event, 6= Fax, 7= Meeting, 9= Presentation, 10= Todo, 11= Webinar"
},
"priority": {
"type": ["integer", "null"],
"description": "Action priority: 1= High, 2= Medium, 3= Low "
},
"salesOrder": {
"type": ["string", "null"],
"description": "Action's sales order"
},
"responsible": {
"type": ["integer", "null"],
"description": "Person responsible for the action"
},
"contact": {
"type": ["integer", "null"],
"description": "Action's contact"
},
"campaign": {
"type": ["string", "null"],
"description": "Action's campaign"
},
"location": {
"type": ["string", "null"],
"description": "Action's location"
},
"id": {
"type": "integer",
"description": "action id"
},
"status": {
"type": ["integer", "null"],
"description": "Action's status: 0= Received, 1= In progress, 2= In progress -waiting for more info, 4= Suspended, 40= Completed"
}
}
},
"actionArray": {
"type": "object",
"required": ["subject"],
"properties": {
"request": {
"type": ["string", "integer", "null"],
"description": "Action's request"
},
"private": {
"type": ["integer", "null"],
"description": "Action's view status: 0=No, 1=Yes"
},
"performers": {
"type": ["string", "null"],
"description": "List of action's performers"
},
"reminder": {
"type": ["integer", "null"],
"description": "Action's reminder: 0=No, 1=Same day as due date, 2=1 day before due date, 3= 3 days before due date, 4= 7 days before due date, 5= 14 days before due date, 6= 30 days before due date"
},
"subject": {
"type": "string",
"description": "Action's subject"
},
"dueDate": {
"type": ["string", "null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Action's due date"
},
"start": {
"type": ["string", "null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Action's start date"
},
"project": {
"type": ["string", "integer", "null"],
"description": "Action's project"
},
"opportunity": {
"type": ["string", "integer", "null"],
"description": "Action's opportunity"
},
"type": {
"type": ["integer", "null"],
"description": "Action's type: 0= None, 1= Call, 2=Correspondence, 3= Demo, 4= Email, 5= Event, 6= Fax, 7= Meeting, 9= Presentation, 10= Todo, 11= Webinar"
},
"priority": {
"type": ["integer", "null"],
"description": "Action priority: 1= High, 2= Medium, 3= Low "
},
"salesOrder": {
"type": ["string", "integer", "null"],
"description": "Action's sales order"
},
"responsible": {
"type": ["integer", "null"],
"description": "Person responsible for the action"
},
"contact": {
"type": ["integer", "null"],
"description": "Action's contact"
},
"campaign": {
"type": ["string", "integer", "null"],
"description": "Action's campaign"
},
"location": {
"type": ["string", "null"],
"description": "Action's location"
},
"id": {
"type": "integer",
"description": "action id"
},
"status": {
"type": ["integer", "null"],
"description": "Action's status: 0= Received, 1= In progress, 2= In progress -waiting for more info, 4= Suspended, 40= Completed"
}
}
}
}
}
Example:
{
"request": 6875,
"private": 0,
"performers": "5547,50",
"reminder": 1,
"subject": "Test Action",
"dueDate": "2015-06-26T10:08:00.000+0300",
"start": "2015-06-26T10:08:00.000+0300",
"description": "<p>test description</p>",
"project": 9851,
"opportunity": 3257,
"type": 5,
"priority": 2,
"salesOrder": 6981,
"responsible": 28482,
"contact": 9647,
"campaign": 5214,
"location": "Oulu",
"id": 2842904,
"status": 1
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for actions. Includes resource's fields names and type and related filters
View details of a single meta.
get /actions/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"filters": [
{
"name": "searchkey",
"caption": ""
},
{
"name": "viewby",
"caption": "View by",
"values": {
"All recently modified actions - last 7 days": "17",
"All open actions - customers": "9",
"All open actions - prospects": "10",
"My all actions": "6",
"My open actions": "0",
"All recently completed actions - last 14 days": "18",
"All open actions": "8",
"All actions": "7",
"All completed actions - prospects": "14",
"My recently modified actions - last 7 days": "4",
"All recently created actions - last 14 days": "16",
"All recently created actions - last 7 days": "15",
"My recently completed actions - last 14 days": "5",
"All suspended actions": "11",
"My completed actions": "2",
"All completed actions - customers": "13",
"All completed actions": "12",
"My suspended actions": "1",
"My recently created actions - last 7 days": "3"
}
},
{
"name": "viewbystatus",
"caption": "Status",
"values": {
"All": "-1",
"3. In progress - waiting for more info": "2",
"5. Completed": "40",
"4. Suspended": "3",
"1. Received": "0",
"Open (1,2,3)": "-100",
"2. In progress": "1"
}
},
{
"name": "type",
"caption": "Type",
"values": {
"All": "-1",
"Call": "1",
"To do": "10",
"Demo": "3",
"Email": "4",
"Meeting": "7",
"Webinar": "11",
"Correspondence": "2",
"Event": "5",
"Fax": "6",
"Presentation": "9",
"-": "0"
}
},
{
"name": "Account.Id",
"caption": "Account",
"values": {
"All": "-1",
"PlanMill Oy": "4688"
}
},
{
"name": "Campaign.Id",
"caption": "Campaign",
"values": {
"All": "-1",
"Email newsletter 2008": "559808"
}
},
{
"name": "PMVProject.Id",
"caption": "Project",
"values": {
"All": "-1",
"Test project import (1257)": "5974"
}
},
{
"name": "Action.ResponsibleId",
"caption": "Responsible person",
"values": {
"All": "-1",
"Admin, Test": "2833",
"testi, testi": "2091"
}
},
{
"name": "ActionHasPerson.PersonId",
"caption": "Performer",
"values": {
"All": "-1",
"Admin, Test": "2833"
}
},
{
"name": "period",
"caption": "Period",
"values": {
"All": "0",
"Last 180 days": "16",
"This week": "30",
"This and next FY": "7",
"Last 14 days": "26",
"This and next month": "24",
"This and next week": "34",
"Next 30 days": "17",
"Next 180 days": "21",
"This FY": "5",
"Next FY": "6",
"This and last month": "25",
"This FQ": "1",
"Last month": "11",
"Last 30 days": "12",
"Last FY": "8",
"Today and tomorrow": "44",
"This and last week": "32",
"This and next FQ": "3",
"Last FQ": "4",
"Last 120 days": "15",
"This and last FY": "23",
"Last week": "31",
"This month": "9",
"Next 120 days": "20",
"Yesterday": "41",
"Last 60 days": "13",
"Next week": "33",
"Next 60 days": "18",
"Tomorrow": "43",
"Today": "40",
"Today and yesterday": "42",
"Next FQ": "2",
"Next month": "10",
"This & last FQ": "22",
"Last 90 days": "14",
"Next 90 days": "19"
}
},
{
"name": "interval",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"values": {
"Finish/Due date": "dueDate",
"Modified": "modified",
"Start": "start",
"Completed": "Action.FinishDate",
"Created": "created"
}
},
{
"name": "rowcount",
"caption": "Rows",
"values": {
"25": "25",
"50": "50",
"75": "75",
"100": "100",
"150": "150",
"250": "250"
}
},
{
"name": "Action.CreatedBy",
"caption": "Created by",
"values": {
"All": "-1",
"Admin, Test": 2833
}
}
],
"fields": {
"request": {
"format": "text",
"caption": "Action.RequestId"
},
"private": {
"format": "Enumeration values.Sales management.Actions.View status",
"caption": "Private"
},
"reminder": {
"format": "Enumeration values.Sales management.Actions.Reminder",
"caption": "Reminder"
},
"subject": {
"format": "text",
"caption": "_Subject"
},
"created": {
"format": "mediumdate",
"caption": "Created"
},
"dueDate": {
"format": "mediumdate",
"caption": "Due date"
},
"start": {
"format": "mediumdate",
"caption": "Start"
},
"opportunity": {
"format": "text",
"caption": "Action.OpportunityId"
},
"project": {
"format": "text",
"caption": "Action.ProjectId"
},
"type": {
"format": "Enumeration values.Sales management.Actions.Type",
"caption": "Type"
},
"priority": {
"format": "Enumeration values.Sales management.Actions.Priority",
"caption": "Priority"
},
"salesOrder": {
"format": "text",
"caption": "Action.SalesOrderId"
},
"contact": {
"format": "text",
"caption": "Person.Id"
},
"responsible": {
"format": "text",
"caption": "Person1.Id"
},
"modified": {
"format": "mediumdate",
"caption": "Modified"
},
"campaign": {
"format": "text",
"caption": "Action.CampaignId"
},
"location": {
"format": "text",
"caption": "Location"
},
"id": {
"format": "checkbox",
"caption": "_"
},
"status": {
"format": "Enumeration values.Sales management.Actions.Status",
"caption": "Status"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single action in PlanMill.
View details of a single action. See actions/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Update an existing resource action to PlanMill. See actions/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Remove a action from PlanMill.
get /actions/{action_id}
View details of a single action. See actions/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- action_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all action entities",
"oneOf": [{
"type": "array",
"items": {
"$ref": "#/definitions/actionArray"
}
}, {
"$ref": "#/definitions/actionSingle"
}],
"definitions": {
"actionSingle": {
"type": "object",
"required": ["subject"],
"properties": {
"request": {
"type": ["string", "null"],
"description": "Action's request"
},
"private": {
"type": ["integer", "null"],
"description": "Action's view status: 0=No, 1=Yes"
},
"performers": {
"type": ["string", "null"],
"description": "List of action's performers"
},
"reminder": {
"type": ["integer", "null"],
"description": "Action's reminder: 0=No, 1=Same day as due date, 2=1 day before due date, 3= 3 days before due date, 4= 7 days before due date, 5= 14 days before due date, 6= 30 days before due date"
},
"subject": {
"type": "string",
"description": "Action's subject"
},
"dueDate": {
"type": ["string", "null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Action's due date"
},
"start": {
"type": ["string", "null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Action's start date"
},
"description": {
"type": ["string", "null"],
"description": "Action description"
},
"project": {
"type": ["string", "null"],
"description": "Action's project"
},
"opportunity": {
"type": ["string", "null"],
"description": "Action's opportunity"
},
"type": {
"type": ["integer", "null"],
"description": "Action's type: 0= None, 1= Call, 2=Correspondence, 3= Demo, 4= Email, 5= Event, 6= Fax, 7= Meeting, 9= Presentation, 10= Todo, 11= Webinar"
},
"priority": {
"type": ["integer", "null"],
"description": "Action priority: 1= High, 2= Medium, 3= Low "
},
"salesOrder": {
"type": ["string", "null"],
"description": "Action's sales order"
},
"responsible": {
"type": ["integer", "null"],
"description": "Person responsible for the action"
},
"contact": {
"type": ["integer", "null"],
"description": "Action's contact"
},
"campaign": {
"type": ["string", "null"],
"description": "Action's campaign"
},
"location": {
"type": ["string", "null"],
"description": "Action's location"
},
"id": {
"type": "integer",
"description": "action id"
},
"status": {
"type": ["integer", "null"],
"description": "Action's status: 0= Received, 1= In progress, 2= In progress -waiting for more info, 4= Suspended, 40= Completed"
}
}
},
"actionArray": {
"type": "object",
"required": ["subject"],
"properties": {
"request": {
"type": ["string", "integer", "null"],
"description": "Action's request"
},
"private": {
"type": ["integer", "null"],
"description": "Action's view status: 0=No, 1=Yes"
},
"performers": {
"type": ["string", "null"],
"description": "List of action's performers"
},
"reminder": {
"type": ["integer", "null"],
"description": "Action's reminder: 0=No, 1=Same day as due date, 2=1 day before due date, 3= 3 days before due date, 4= 7 days before due date, 5= 14 days before due date, 6= 30 days before due date"
},
"subject": {
"type": "string",
"description": "Action's subject"
},
"dueDate": {
"type": ["string", "null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Action's due date"
},
"start": {
"type": ["string", "null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Action's start date"
},
"project": {
"type": ["string", "integer", "null"],
"description": "Action's project"
},
"opportunity": {
"type": ["string", "integer", "null"],
"description": "Action's opportunity"
},
"type": {
"type": ["integer", "null"],
"description": "Action's type: 0= None, 1= Call, 2=Correspondence, 3= Demo, 4= Email, 5= Event, 6= Fax, 7= Meeting, 9= Presentation, 10= Todo, 11= Webinar"
},
"priority": {
"type": ["integer", "null"],
"description": "Action priority: 1= High, 2= Medium, 3= Low "
},
"salesOrder": {
"type": ["string", "integer", "null"],
"description": "Action's sales order"
},
"responsible": {
"type": ["integer", "null"],
"description": "Person responsible for the action"
},
"contact": {
"type": ["integer", "null"],
"description": "Action's contact"
},
"campaign": {
"type": ["string", "integer", "null"],
"description": "Action's campaign"
},
"location": {
"type": ["string", "null"],
"description": "Action's location"
},
"id": {
"type": "integer",
"description": "action id"
},
"status": {
"type": ["integer", "null"],
"description": "Action's status: 0= Received, 1= In progress, 2= In progress -waiting for more info, 4= Suspended, 40= Completed"
}
}
}
}
}
Example:
{
"request": 6875,
"private": 0,
"performers": "5547,50",
"reminder": 1,
"subject": "Test Action",
"dueDate": "2015-06-26T10:08:00.000+0300",
"start": "2015-06-26T10:08:00.000+0300",
"description": "<p>test description</p>",
"project": 9851,
"opportunity": 3257,
"type": 5,
"priority": 2,
"salesOrder": 6981,
"responsible": 28482,
"contact": 9647,
"campaign": 5214,
"location": "Oulu",
"id": 2842904,
"status": 1
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /actions/{action_id}
Update an existing resource action to PlanMill. See actions/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- action_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all action entities",
"oneOf": [{
"type": "array",
"items": {
"$ref": "#/definitions/actionArray"
}
}, {
"$ref": "#/definitions/actionSingle"
}],
"definitions": {
"actionSingle": {
"type": "object",
"required": ["subject"],
"properties": {
"request": {
"type": ["string", "null"],
"description": "Action's request"
},
"private": {
"type": ["integer", "null"],
"description": "Action's view status: 0=No, 1=Yes"
},
"performers": {
"type": ["string", "null"],
"description": "List of action's performers"
},
"reminder": {
"type": ["integer", "null"],
"description": "Action's reminder: 0=No, 1=Same day as due date, 2=1 day before due date, 3= 3 days before due date, 4= 7 days before due date, 5= 14 days before due date, 6= 30 days before due date"
},
"subject": {
"type": "string",
"description": "Action's subject"
},
"dueDate": {
"type": ["string", "null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Action's due date"
},
"start": {
"type": ["string", "null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Action's start date"
},
"description": {
"type": ["string", "null"],
"description": "Action description"
},
"project": {
"type": ["string", "null"],
"description": "Action's project"
},
"opportunity": {
"type": ["string", "null"],
"description": "Action's opportunity"
},
"type": {
"type": ["integer", "null"],
"description": "Action's type: 0= None, 1= Call, 2=Correspondence, 3= Demo, 4= Email, 5= Event, 6= Fax, 7= Meeting, 9= Presentation, 10= Todo, 11= Webinar"
},
"priority": {
"type": ["integer", "null"],
"description": "Action priority: 1= High, 2= Medium, 3= Low "
},
"salesOrder": {
"type": ["string", "null"],
"description": "Action's sales order"
},
"responsible": {
"type": ["integer", "null"],
"description": "Person responsible for the action"
},
"contact": {
"type": ["integer", "null"],
"description": "Action's contact"
},
"campaign": {
"type": ["string", "null"],
"description": "Action's campaign"
},
"location": {
"type": ["string", "null"],
"description": "Action's location"
},
"id": {
"type": "integer",
"description": "action id"
},
"status": {
"type": ["integer", "null"],
"description": "Action's status: 0= Received, 1= In progress, 2= In progress -waiting for more info, 4= Suspended, 40= Completed"
}
}
},
"actionArray": {
"type": "object",
"required": ["subject"],
"properties": {
"request": {
"type": ["string", "integer", "null"],
"description": "Action's request"
},
"private": {
"type": ["integer", "null"],
"description": "Action's view status: 0=No, 1=Yes"
},
"performers": {
"type": ["string", "null"],
"description": "List of action's performers"
},
"reminder": {
"type": ["integer", "null"],
"description": "Action's reminder: 0=No, 1=Same day as due date, 2=1 day before due date, 3= 3 days before due date, 4= 7 days before due date, 5= 14 days before due date, 6= 30 days before due date"
},
"subject": {
"type": "string",
"description": "Action's subject"
},
"dueDate": {
"type": ["string", "null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Action's due date"
},
"start": {
"type": ["string", "null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Action's start date"
},
"project": {
"type": ["string", "integer", "null"],
"description": "Action's project"
},
"opportunity": {
"type": ["string", "integer", "null"],
"description": "Action's opportunity"
},
"type": {
"type": ["integer", "null"],
"description": "Action's type: 0= None, 1= Call, 2=Correspondence, 3= Demo, 4= Email, 5= Event, 6= Fax, 7= Meeting, 9= Presentation, 10= Todo, 11= Webinar"
},
"priority": {
"type": ["integer", "null"],
"description": "Action priority: 1= High, 2= Medium, 3= Low "
},
"salesOrder": {
"type": ["string", "integer", "null"],
"description": "Action's sales order"
},
"responsible": {
"type": ["integer", "null"],
"description": "Person responsible for the action"
},
"contact": {
"type": ["integer", "null"],
"description": "Action's contact"
},
"campaign": {
"type": ["string", "integer", "null"],
"description": "Action's campaign"
},
"location": {
"type": ["string", "null"],
"description": "Action's location"
},
"id": {
"type": "integer",
"description": "action id"
},
"status": {
"type": ["integer", "null"],
"description": "Action's status: 0= Received, 1= In progress, 2= In progress -waiting for more info, 4= Suspended, 40= Completed"
}
}
}
}
}
Example:
{
"request": 6875,
"private": 0,
"performers": "5547,50",
"reminder": 1,
"subject": "Test Action",
"dueDate": "2015-06-26T10:08:00.000+0300",
"start": "2015-06-26T10:08:00.000+0300",
"description": "<p>test description</p>",
"project": 9851,
"opportunity": 3257,
"type": 5,
"priority": 2,
"salesOrder": 6981,
"responsible": 28482,
"contact": 9647,
"campaign": 5214,
"location": "Oulu",
"id": 2842904,
"status": 1
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /actions/{action_id}
Remove a action from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- action_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for the updatable fields of the action
View details of a single meta.
get /actions/{action_id}/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- action_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"request": {
"caption": "",
"format": "int",
"description": "",
"values": null
},
"private": {
"caption": "Private",
"format": "short",
"description": "",
"enumeration": "Enumeration values.Sales management.Actions.View status",
"values": {
"No": "0",
"Yes": "1"
}
},
"performers": {
"caption": "Performer(s)",
"values": {
"Admin, Test": "2833",
"testi, testi": "2981"
},
"format": "string",
"description": ""
},
"reminder": {
"caption": "Reminder",
"format": "short",
"description": "",
"maxlength": "80",
"enumeration": "Enumeration values.Sales management.Actions.Reminder",
"values": {
"14 days before due date": "5",
"No": "0",
"1 days before due date": "2",
"3 days before due date": "3",
"7 days before due date": "4",
"Same day as due date": "1",
"30 days before due date": "6"
}
},
"subject": {
"caption": "Subject",
"format": "string",
"description": "",
"maxlength": "255",
"values": null
},
"dueDate": {
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"caption": "Due date",
"format": "string",
"description": "",
"maxlength": "10",
"values": null
},
"start": {
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"caption": "Start date",
"format": "string",
"description": "",
"maxlength": "10",
"values": null
},
"description": {
"caption": "",
"format": "string",
"description": "",
"values": null
},
"project": {
"caption": "",
"format": "int",
"description": "",
"values": null
},
"opportunity": {
"caption": "",
"format": "int",
"description": "",
"values": null
},
"type": {
"caption": "Type",
"format": "short",
"description": "",
"enumeration": "Enumeration values.Sales management.Actions.Type",
"values": {
"Call": "1",
"To do": "10",
"Demo": "3",
"Email": "4",
"Meeting": "7",
"Webinar": "11",
"Correspondence": "2",
"Event": "5",
"Fax": "6",
"Presentation": "9",
"-": "0"
}
},
"priority": {
"caption": "Priority",
"format": "short",
"description": "",
"enumeration": "Enumeration values.Sales management.Actions.Priority",
"values": {
"1. High": "1",
"3. Low": "3",
"2. Medium": "2"
}
},
"salesOrder": {
"caption": "",
"format": "int",
"description": "",
"values": null
},
"responsible": {
"caption": "Responsible person",
"values": {
"Admin, Test": 2833,
"testi, testi": "2801981"
},
"format": "int",
"description": ""
},
"contact": {
"caption": "",
"format": "int",
"description": "",
"values": null
},
"campaign": {
"caption": "",
"format": "int",
"description": "",
"values": null
},
"location": {
"caption": "Location",
"format": "string",
"description": "",
"maxlength": "255",
"values": null
},
"id": {
"caption": "",
"format": "int",
"description": "",
"values": null
},
"status": {
"caption": "Status",
"format": "short",
"description": "",
"enumeration": "Enumeration values.Sales management.Actions.Status",
"values": {
"3. In progress - waiting for more info": "2",
"5. Completed": "40",
"4. Suspended": "3",
"1. Received": "0",
"2. In progress": "1"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available attachments in PlanMill. This is a read-only collection.
Get a list of attachments
get /actions/{action_id}/attachments
Get a list of attachments
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- action_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
[
{
"size": 8497,
"createdBy": 50,
"created": "2022-01-13T13:05:10.837+0200",
"name": "attached_file_test.txt",
"modified": "2022-01-13T13:18:25.353+0200",
"id": 1543
},
{
"size": 146169,
"createdBy": 50,
"created": "2022-01-13T13:18:25.353+0200",
"name": "attached_file.txt",
"modified": "2022-01-13T13:18:25.353+0200",
"id": 1545
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
attachment_id is returned by /tempfiles endpoint on file upload.
View details of single attachment.
put /actions/{action_id}/attachments/{attachment_id}
attachment_id is returned by /tempfiles endpoint on file upload.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- action_id: required(string)
- attachment_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
get /actions/{action_id}/attachments/{attachment_id}
View details of single attachment.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- action_id: required(string)
- attachment_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
Contents of file
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/batch
Submit multiple API requests as a batch operation. All available individual API requests are supported collected into a JSON array. Responses are also returned as an array in same order as posted. If any request fails, all subsequent requests fail. This is to support execution order inside the batch. All headers apply for all requests unless specific headers applied. Default maximum number of requests per batch is 50, if you need more, contact administration.
Update an existing resource batch to PlanMill. See batches/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
post /batch
Update an existing resource batch to PlanMill. See batches/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8)
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: batch
Example:
[
{
"destination": "projects",
"method": "POST",
"headers": {
},
"body": {
"name": "BatchDraftV1",
"portfolio": "210",
"contact": "356"
}
},
{
"destination": "projects",
"method": "GET",
"headers": {
}
}
]
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/boards
Kanban board from PlanMill
Get a list of boards
get /boards
Get a list of boards
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"name": "New test board",
"id": 1782
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single board in PlanMill.
View details of a single board
Update an existing resource board to PlanMill. See boards/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Remove a board from PlanMill.
get /boards/{board_id}
View details of a single board
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- board_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: board
Example:
{
"name": "New test board",
"id": 1782
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /boards/{board_id}
Update an existing resource board to PlanMill. See boards/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- board_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: board
Example:
{
"name": "New test board",
"id": 1782
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /boards/{board_id}
Remove a board from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- board_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/boardlists
Kanban boardlist from PlanMill
Get a list of boardlists
get /boardlists
Get a list of boardlists
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"updatedFields": null,
"ordinalNumber": 1,
"resource": "projects",
"name": "Test board list 1",
"id": 1222,
"filters": null,
"board": 122
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single boardlist in PlanMill.
View details of a single board list
Update an existing resource boardlist to PlanMill. See boardlists/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Remove a boardlist from PlanMill.
get /boardlists/{boardlist_id}
View details of a single board list
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- boardlist_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: boardlist
Example:
{
"updatedFields": null,
"ordinalNumber": 1,
"resource": "projects",
"name": "Test board list 1",
"id": 1222,
"filters": null,
"board": 122
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /boardlists/{boardlist_id}
Update an existing resource boardlist to PlanMill. See boardlists/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- boardlist_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: boardlist
Example:
{
"updatedFields": null,
"ordinalNumber": 1,
"resource": "projects",
"name": "Test board list 1",
"id": 1222,
"filters": null,
"board": 122
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /boardlists/{boardlist_id}
Remove a boardlist from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- boardlist_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/campaigns
Collection of available campaigns in PlanMill
Get a list of campaigns
Add a new campaign to PlanMill or update existing (if id is given). See campaigns/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /campaigns
Get a list of campaigns
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (string)
Sorts the results using string that is a JSON attribute
- interval?: (string)
Interval type, e.g. start, finish, created, or modified. It is required in combination with intervalstart or intervalfinish
- intervalstart?: (string)
Start date of the interval in UTC format, intervalfinish required
Example:
2021-08-05T00:00:00.000+0200
- intervalfinish?: (string)
Finish date of the interval in UTC format, intervalstart required
Example:
2021-08-05T00:00:00.000+0200
HTTP status code 200
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all campaign entities",
"oneOf": [
{
"type": "array",
"items": { "$ref": "#/definitions/campaignArray" }
},
{
"$ref": "#/definitions/campaignSingle"
}
],
"definitions": {
"campaignArray": {
"type": "object",
"required": [ "name", "status", "type", "start", "responsible" ],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal id of a campaign"
},
"notParticipated": {
"type": "integer",
"description": "Number of contacts who did not participate in a campaign"
},
"latestCreatedMails": {
"type": ["string", "null"],
"description": "Subject of latest created mail"
},
"participated": {
"type": "integer",
"description": "Number of contacts who participated in a campaign"
},
"start": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Start date of a campaign"
},
"registered": {
"type": "integer",
"description": "Number of contacts who registered in a campaign"
},
"type": {
"type": "integer",
"description": "Type of a campaign [0=-; 1=Email; 2=Mail; 3=Web; 4=Exhibition; 5=Event]"
},
"unsubscribed": {
"type": "integer",
"description": "Number of contacts who unsubscribed in a campaign"
},
"members": {
"type": "integer",
"description": "Number of contacts who are members of a campaign"
},
"responsible": {
"type": "integer",
"description": "Internal id of a responsible person of a campaign"
},
"name": {
"type": "string",
"description": "Name of a campaign"
},
"latestSentMails": {
"type": [ "string", "null" ],
"description": "Subject of latest sent mail"
},
"cancelled": {
"type": "integer",
"description": "Number of contacts who cancelled in a campaign"
},
"finish": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Finish date of a campaign"
},
"status": {
"type": "integer",
"description": "Status of a campaign [0=Planning; 1=Active; 2=Inactive; 3=Completed]"
}
}
},
"campaignSingle": {
"type": "object",
"required": [ "name", "status", "type", "start", "responsible" ],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal ID of a campaign"
},
"plannedCost": {
"type": "integer",
"description": "Planned cost of a campaign"
},
"partner": {
"type": ["integer", "null"],
"description": "Internal id a partner contact related to a campaign"
},
"responsible": {
"type": "integer",
"description": "Internal id of a responsible person of a campaign"
},
"name": {
"type": "string",
"description": "Name of a campaign"
},
"start": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Start date of a campaign"
},
"description": {
"type": ["string", "null"],
"description": "Description of a campaign"
},
"project": {
"type": ["integer", "null"],
"description": "Internal id of a project related to a campaign"
},
"finish": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Finish date of a campaign"
},
"type": {
"type": "integer",
"description": "Type of a campaign [0=-; 1=Email; 2=Mail; 3=Web; 4=Exhibition; 5=Event]"
},
"status": {
"type": "integer",
"description": "Status of a campaign [0=Planning; 1=Active; 2=Inactive; 3=Completed]"
},
"actualCost": {
"type": "integer",
"description": "Actual cost of a campaign"
}
}
}
}
}
Example:
[
{
"notParticipated": 0,
"latestCreatedMails": "create a campaign email",
"participated": 0,
"start": "2016-08-01T00:00:00.000+0300",
"registered": 0,
"type": 1,
"unsubscribed": 0,
"members": 0,
"responsible": 356,
"name": "email campaign",
"latestSentMails": null,
"cancelled": 0,
"finish": "2016-08-03T00:00:00.000+0300",
"id": 2002,
"status": 0
},
{
"notParticipated": 1,
"latestCreatedMails": null,
"participated": 1,
"start": "2016-08-04T00:00:00.000+0300",
"registered": 0,
"type": 4,
"unsubscribed": 0,
"members": 2,
"responsible": 50,
"name": "exhibition campaign",
"latestSentMails": null,
"cancelled": 0,
"finish": "2016-08-05T00:00:00.000+0300",
"id": 2001,
"status": 1
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /campaigns
Add a new campaign to PlanMill or update existing (if id is given). See campaigns/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all campaign entities",
"oneOf": [
{
"type": "array",
"items": { "$ref": "#/definitions/campaignArray" }
},
{
"$ref": "#/definitions/campaignSingle"
}
],
"definitions": {
"campaignArray": {
"type": "object",
"required": [ "name", "status", "type", "start", "responsible" ],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal id of a campaign"
},
"notParticipated": {
"type": "integer",
"description": "Number of contacts who did not participate in a campaign"
},
"latestCreatedMails": {
"type": ["string", "null"],
"description": "Subject of latest created mail"
},
"participated": {
"type": "integer",
"description": "Number of contacts who participated in a campaign"
},
"start": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Start date of a campaign"
},
"registered": {
"type": "integer",
"description": "Number of contacts who registered in a campaign"
},
"type": {
"type": "integer",
"description": "Type of a campaign [0=-; 1=Email; 2=Mail; 3=Web; 4=Exhibition; 5=Event]"
},
"unsubscribed": {
"type": "integer",
"description": "Number of contacts who unsubscribed in a campaign"
},
"members": {
"type": "integer",
"description": "Number of contacts who are members of a campaign"
},
"responsible": {
"type": "integer",
"description": "Internal id of a responsible person of a campaign"
},
"name": {
"type": "string",
"description": "Name of a campaign"
},
"latestSentMails": {
"type": [ "string", "null" ],
"description": "Subject of latest sent mail"
},
"cancelled": {
"type": "integer",
"description": "Number of contacts who cancelled in a campaign"
},
"finish": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Finish date of a campaign"
},
"status": {
"type": "integer",
"description": "Status of a campaign [0=Planning; 1=Active; 2=Inactive; 3=Completed]"
}
}
},
"campaignSingle": {
"type": "object",
"required": [ "name", "status", "type", "start", "responsible" ],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal ID of a campaign"
},
"plannedCost": {
"type": "integer",
"description": "Planned cost of a campaign"
},
"partner": {
"type": ["integer", "null"],
"description": "Internal id a partner contact related to a campaign"
},
"responsible": {
"type": "integer",
"description": "Internal id of a responsible person of a campaign"
},
"name": {
"type": "string",
"description": "Name of a campaign"
},
"start": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Start date of a campaign"
},
"description": {
"type": ["string", "null"],
"description": "Description of a campaign"
},
"project": {
"type": ["integer", "null"],
"description": "Internal id of a project related to a campaign"
},
"finish": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Finish date of a campaign"
},
"type": {
"type": "integer",
"description": "Type of a campaign [0=-; 1=Email; 2=Mail; 3=Web; 4=Exhibition; 5=Event]"
},
"status": {
"type": "integer",
"description": "Status of a campaign [0=Planning; 1=Active; 2=Inactive; 3=Completed]"
},
"actualCost": {
"type": "integer",
"description": "Actual cost of a campaign"
}
}
}
}
}
Example:
{
"plannedCost": 500,
"partner": null,
"responsible": 356,
"name": "email campaign",
"start": "2016-08-01T00:00:00.000+0300",
"description": "<p>Write and send email for campaign</p>",
"project": null,
"finish": "2016-08-03T00:00:00.000+0300",
"id": 2002,
"type": 1,
"status": 3,
"actualCost": 300
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single campaign in PlanMill.
View details of a single campaign
Update an existing resource campaign to PlanMill. See campaigns/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Remove a campaign from PlanMill.
get /campaigns/{campaign_id}
View details of a single campaign
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- campaign_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all campaign entities",
"oneOf": [
{
"type": "array",
"items": { "$ref": "#/definitions/campaignArray" }
},
{
"$ref": "#/definitions/campaignSingle"
}
],
"definitions": {
"campaignArray": {
"type": "object",
"required": [ "name", "status", "type", "start", "responsible" ],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal id of a campaign"
},
"notParticipated": {
"type": "integer",
"description": "Number of contacts who did not participate in a campaign"
},
"latestCreatedMails": {
"type": ["string", "null"],
"description": "Subject of latest created mail"
},
"participated": {
"type": "integer",
"description": "Number of contacts who participated in a campaign"
},
"start": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Start date of a campaign"
},
"registered": {
"type": "integer",
"description": "Number of contacts who registered in a campaign"
},
"type": {
"type": "integer",
"description": "Type of a campaign [0=-; 1=Email; 2=Mail; 3=Web; 4=Exhibition; 5=Event]"
},
"unsubscribed": {
"type": "integer",
"description": "Number of contacts who unsubscribed in a campaign"
},
"members": {
"type": "integer",
"description": "Number of contacts who are members of a campaign"
},
"responsible": {
"type": "integer",
"description": "Internal id of a responsible person of a campaign"
},
"name": {
"type": "string",
"description": "Name of a campaign"
},
"latestSentMails": {
"type": [ "string", "null" ],
"description": "Subject of latest sent mail"
},
"cancelled": {
"type": "integer",
"description": "Number of contacts who cancelled in a campaign"
},
"finish": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Finish date of a campaign"
},
"status": {
"type": "integer",
"description": "Status of a campaign [0=Planning; 1=Active; 2=Inactive; 3=Completed]"
}
}
},
"campaignSingle": {
"type": "object",
"required": [ "name", "status", "type", "start", "responsible" ],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal ID of a campaign"
},
"plannedCost": {
"type": "integer",
"description": "Planned cost of a campaign"
},
"partner": {
"type": ["integer", "null"],
"description": "Internal id a partner contact related to a campaign"
},
"responsible": {
"type": "integer",
"description": "Internal id of a responsible person of a campaign"
},
"name": {
"type": "string",
"description": "Name of a campaign"
},
"start": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Start date of a campaign"
},
"description": {
"type": ["string", "null"],
"description": "Description of a campaign"
},
"project": {
"type": ["integer", "null"],
"description": "Internal id of a project related to a campaign"
},
"finish": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Finish date of a campaign"
},
"type": {
"type": "integer",
"description": "Type of a campaign [0=-; 1=Email; 2=Mail; 3=Web; 4=Exhibition; 5=Event]"
},
"status": {
"type": "integer",
"description": "Status of a campaign [0=Planning; 1=Active; 2=Inactive; 3=Completed]"
},
"actualCost": {
"type": "integer",
"description": "Actual cost of a campaign"
}
}
}
}
}
Example:
{
"plannedCost": 500,
"partner": null,
"responsible": 356,
"name": "email campaign",
"start": "2016-08-01T00:00:00.000+0300",
"description": "<p>Write and send email for campaign</p>",
"project": null,
"finish": "2016-08-03T00:00:00.000+0300",
"id": 2002,
"type": 1,
"status": 3,
"actualCost": 300
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /campaigns/{campaign_id}
Update an existing resource campaign to PlanMill. See campaigns/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- campaign_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all campaign entities",
"oneOf": [
{
"type": "array",
"items": { "$ref": "#/definitions/campaignArray" }
},
{
"$ref": "#/definitions/campaignSingle"
}
],
"definitions": {
"campaignArray": {
"type": "object",
"required": [ "name", "status", "type", "start", "responsible" ],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal id of a campaign"
},
"notParticipated": {
"type": "integer",
"description": "Number of contacts who did not participate in a campaign"
},
"latestCreatedMails": {
"type": ["string", "null"],
"description": "Subject of latest created mail"
},
"participated": {
"type": "integer",
"description": "Number of contacts who participated in a campaign"
},
"start": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Start date of a campaign"
},
"registered": {
"type": "integer",
"description": "Number of contacts who registered in a campaign"
},
"type": {
"type": "integer",
"description": "Type of a campaign [0=-; 1=Email; 2=Mail; 3=Web; 4=Exhibition; 5=Event]"
},
"unsubscribed": {
"type": "integer",
"description": "Number of contacts who unsubscribed in a campaign"
},
"members": {
"type": "integer",
"description": "Number of contacts who are members of a campaign"
},
"responsible": {
"type": "integer",
"description": "Internal id of a responsible person of a campaign"
},
"name": {
"type": "string",
"description": "Name of a campaign"
},
"latestSentMails": {
"type": [ "string", "null" ],
"description": "Subject of latest sent mail"
},
"cancelled": {
"type": "integer",
"description": "Number of contacts who cancelled in a campaign"
},
"finish": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Finish date of a campaign"
},
"status": {
"type": "integer",
"description": "Status of a campaign [0=Planning; 1=Active; 2=Inactive; 3=Completed]"
}
}
},
"campaignSingle": {
"type": "object",
"required": [ "name", "status", "type", "start", "responsible" ],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal ID of a campaign"
},
"plannedCost": {
"type": "integer",
"description": "Planned cost of a campaign"
},
"partner": {
"type": ["integer", "null"],
"description": "Internal id a partner contact related to a campaign"
},
"responsible": {
"type": "integer",
"description": "Internal id of a responsible person of a campaign"
},
"name": {
"type": "string",
"description": "Name of a campaign"
},
"start": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Start date of a campaign"
},
"description": {
"type": ["string", "null"],
"description": "Description of a campaign"
},
"project": {
"type": ["integer", "null"],
"description": "Internal id of a project related to a campaign"
},
"finish": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Finish date of a campaign"
},
"type": {
"type": "integer",
"description": "Type of a campaign [0=-; 1=Email; 2=Mail; 3=Web; 4=Exhibition; 5=Event]"
},
"status": {
"type": "integer",
"description": "Status of a campaign [0=Planning; 1=Active; 2=Inactive; 3=Completed]"
},
"actualCost": {
"type": "integer",
"description": "Actual cost of a campaign"
}
}
}
}
}
Example:
{
"plannedCost": 500,
"partner": null,
"responsible": 356,
"name": "email campaign",
"start": "2016-08-01T00:00:00.000+0300",
"description": "<p>Write and send email for campaign</p>",
"project": null,
"finish": "2016-08-03T00:00:00.000+0300",
"id": 2002,
"type": 1,
"status": 3,
"actualCost": 300
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /campaigns/{campaign_id}
Remove a campaign from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- campaign_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/companies
Collection of available companies in PlanMill. See companies/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Get a list of companies. See companies/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Add a new company to PlanMill or update existing (if id is given). See companies/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /companies
Get a list of companies. See companies/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort: (string)
Sorts the results using string that is a JSON attribute
- interval: (string)
Interval type, e.g. start, finish, created, or modified. It is required in combination with intervalstart or intervalfinish
- intervalstart: (string)
Start date of the interval in UTC format, intervalfinish required
Example:
2021-08-05T00:00:00.000+0200
- intervalfinish: (string)
Finish date of the interval in UTC format, intervalstart required
Example:
2021-08-05T00:00:00.000+0200
HTTP status code 200
Body
Media type: application/json
Type: array of company_getId
Items: company_getId
- name: (string)
Name of a company
- passive: (integer)
Active or passive state of company. Default value 0 (Active)
- vatId: (union of string or nil)
VAT id of a company
- businessId: (union of string or nil)
Business id of a company
- phone: (union of string or nil)
Phone number of a company
- website: (union of string or nil)
Website of a company
- email: (union of email or emptystring or nil)
Email address of a company
- billingAddress: (union of string or nil)
Invoice billing address of a company
- billingCity: (union of string or nil)
Invoice billing city of a company
- billingCountry: (union of integer or nil)
Invoice billing country of a company
- billingState: (union of string or nil)
- billingPostalCode: (union of string or nil)
Invoice billing postal code of a company
- visitingAddress: (union of string or integer or nil)
- visitingCity: (union of string or nil)
- visitingCountry: (union of integer or nil)
- visitingPostalCode: (union of string or nil)
- visitingState: (union of string or nil)
- domicile: (union of string or nil)
- firstInvoiceNumber: (union of integer or string or nil)
- receiveInvoices: (union of integer or nil)
- einvoiceSenderId: (union of string or integer or nil)
- einvoiceSenderOperator: (union of integer or nil)
- einvoicePaymentInstruction: (union of string or nil)
- ceo: (union of string or nil)
- bankAccount1: (union of string or nil)
Bank name (and account number if no IBAN is used)
- iban1: (union of string or nil)
Required if IBAN is used
- bic1: (union of string or nil)
Required if IBAN is used
- bankInfo1: (union of string or nil)
Optional additional info for banking requirements
- bankAccount2: (union of string or nil)
- iban2: (union of string or nil)
- bic2: (union of string or nil)
- bankAccount3: (union of string or nil)
- iban3: (union of string or nil)
- bic3: (union of string or nil)
- factoringResponsibleId: (union of integer or nil)
Update requires factoring settings editing access
- factoringPartyId: (union of integer or nil)
Contact planmill for factoring. Update requires factoring settings editing access
- agreementId: (union of string or integer or nil)
Update requires factoring settings editing access
- id: (integer)
Id of a company
Example:
[
{
"name": "Test Company",
"id": 170317,
"passive": 0,
"vatId": "2862228-2",
"businessId": "2862228-2",
"phone": "+358-44-324125",
"website": "http://www.planmill.com",
"email": "email@planmill.com",
"billingAddress": "Hämeentie 19",
"billingCity": "Helsinki",
"billingCountry": 73,
"billingState": null,
"billingPostalCode": "00500",
"visitingAddress": "Siltasaarenkatu 18",
"visitingCity": "Helsinki",
"visitingCountry": 73,
"visitingPostalCode": "13233",
"visitingState": "",
"domicile": "Helsinki",
"firstInvoiceNumber": "100",
"receiveInvoices": 1,
"einvoiceSenderId": "003704984967",
"einvoiceSenderOperator": 190,
"einvoicePaymentInstruction": "Internetpalvelumaksu",
"ceo": "Thomas",
"bankAccount1": "Nordea",
"iban1": "FI1699854966354215",
"bic1": "NDEAFIHH",
"bankInfo1": "Nordea bank",
"bankAccount2": "Barclays",
"iban2": "GB33BUKB20201555555555",
"bic2": "BUKBGB22",
"bankAccount3": "Nordea",
"iban3": "FI1699854966354215",
"bic3": "NDEAFIHH",
"factoringResponsibleId": 100,
"factoringPartyId": 353,
"agreementId": "102"
},
{
"name": "Test Company",
"id": 170317,
"passive": 0,
"vatId": "2862228-2",
"businessId": "2862228-2",
"phone": "+358-44-324125",
"website": "http://www.planmill.com",
"email": "email@planmill.com",
"billingAddress": "Hämeentie 19",
"billingCity": "Helsinki",
"billingCountry": 73,
"billingState": null,
"billingPostalCode": "00500",
"visitingAddress": "Siltasaarenkatu 18",
"visitingCity": "Helsinki",
"visitingCountry": 73,
"visitingPostalCode": "13233",
"visitingState": "",
"domicile": null,
"firstInvoiceNumber": null,
"einvoiceSenderId": null,
"einvoiceSenderOperator": null,
"einvoicePaymentInstruction": null,
"ceo": null,
"bankAccount1": null,
"iban1": null,
"bic1": null,
"bankInfo1": null,
"bankAccount2": null,
"iban2": null,
"bic2": null,
"bankAccount3": null,
"iban3": null,
"bic3": null,
"factoringResponsibleId": null,
"factoringPartyId": null,
"agreementId": null
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /companies
Add a new company to PlanMill or update existing (if id is given). See companies/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8)
Example:
application/json;charset=UTF-8 application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: object
Properties- name: required(string)
Name of a company
- passive: (integer)
Active or passive state of company. Default value 0 (Active)
- vatId: (union of string or nil)
VAT id of a company
- businessId: (union of string or nil)
Business id of a company
- phone: (union of string or nil)
Phone number of a company
- website: (union of string or nil)
Website of a company
- email: (union of email or emptystring or nil)
Email address of a company
- billingAddress: (union of string or nil)
Invoice billing address of a company
- billingCity: (union of string or nil)
Invoice billing city of a company
- billingCountry: (union of integer or nil)
Invoice billing country of a company
- billingState: (union of string or nil)
- billingPostalCode: (union of string or nil)
Invoice billing postal code of a company
- visitingAddress: (union of string or integer or nil)
- visitingCity: (union of string or nil)
- visitingCountry: (union of integer or nil)
- visitingPostalCode: (union of string or nil)
- visitingState: (union of string or nil)
- domicile: (union of string or nil)
- firstInvoiceNumber: (union of integer or string or nil)
- receiveInvoices: (union of integer or nil)
- einvoiceSenderId: (union of string or integer or nil)
- einvoiceSenderOperator: (union of integer or nil)
- einvoicePaymentInstruction: (union of string or nil)
- ceo: (union of string or nil)
- bankAccount1: (union of string or nil)
Bank name (and account number if no IBAN is used)
- iban1: (union of string or nil)
Required if IBAN is used
- bic1: (union of string or nil)
Required if IBAN is used
- bankInfo1: (union of string or nil)
Optional additional info for banking requirements
- bankAccount2: (union of string or nil)
- iban2: (union of string or nil)
- bic2: (union of string or nil)
- bankAccount3: (union of string or nil)
- iban3: (union of string or nil)
- bic3: (union of string or nil)
- factoringResponsibleId: (union of integer or nil)
Update requires factoring settings editing access
- factoringPartyId: (union of integer or nil)
Contact planmill for factoring. Update requires factoring settings editing access
- agreementId: (union of string or integer or nil)
Update requires factoring settings editing access
Example:
{
"name": "Test Company",
"passive": 0,
"vatId": "2862228-2",
"businessId": "2862228-2",
"phone": "+358-44-324125",
"website": "http://www.planmill.com",
"email": "email@planmill.com",
"billingAddress": "Hämeentie 19",
"billingCity": "Helsinki",
"billingCountry": 73,
"billingState": null,
"billingPostalCode": "00500",
"visitingAddress": "Siltasaarenkatu 18",
"visitingCity": "Helsinki",
"visitingCountry": 73,
"visitingPostalCode": "13233",
"visitingState": "",
"domicile": "Helsinki",
"firstInvoiceNumber": "100",
"receiveInvoices": 1,
"einvoiceSenderId": "003704984967",
"einvoiceSenderOperator": 190,
"einvoicePaymentInstruction": "Internetpalvelumaksu",
"ceo": "Thomas",
"bankAccount1": "Nordea",
"iban1": "FI1699854966354215",
"bic1": "NDEAFIHH",
"bankInfo1": "Nordea bank",
"bankAccount2": "Barclays",
"iban2": "GB33BUKB20201555555555",
"bic2": "BUKBGB22",
"bankAccount3": "Nordea",
"iban3": "FI1699854966354215",
"bic3": "NDEAFIHH",
"factoringResponsibleId": 100,
"factoringPartyId": 353,
"agreementId": "102"
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for companies. Includes resource's fields names and type.
View details of a single meta. See metas/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /companies/meta
View details of a single meta. See metas/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: meta
Example:
{
"filters": null,
"fields": {
"receiveInvoices": {
"format": "text",
"caption": null
},
"businessId": {
"format": "text",
"caption": "Business ID"
},
"vatId": {
"format": "text",
"caption": "VAT number"
},
"bankAccount3": {
"format": "text",
"caption": null
},
"bankAccount1": {
"format": "text",
"caption": null
},
"bankAccount2": {
"format": "text",
"caption": null
},
"einvoiceSenderId": {
"format": "text",
"caption": null
},
"ceo": {
"format": "text",
"caption": null
},
"visitingPostalCode": {
"format": "text",
"caption": "Shipping postal\/zip code"
},
"bic2": {
"format": "text",
"caption": null
},
"iban3": {
"format": "text",
"caption": null
},
"agreementId": {
"format": "text",
"caption": null
},
"billingCountry": {
"values": {
"0": "-",
"1": "Afghanistan",
"256": "Western Sahara",
"234": "Zimbabwe",
"236": "\u00C5land Islands",
"1000": "Other",
"73": "Finland",
"84": "Greenland",
"74": "France"
},
"format": "Enumeration values.Location.CountryId",
"caption": "Country"
},
"visitingAddress": {
"format": "text",
"caption": "Shipping street address"
},
"iban2": {
"format": "text",
"caption": null
},
"bic3": {
"format": "text",
"caption": null
},
"id": {
"format": "text",
"caption": "Account.Id"
},
"bic1": {
"format": "text",
"caption": null
},
"email": {
"format": "emaillink",
"caption": "Email"
},
"iban1": {
"format": "text",
"caption": null
},
"website": {
"format": "weblink",
"caption": "Website"
},
"bankInfo1": {
"format": "text",
"caption": null
},
"visitingState": {
"format": "",
"caption": null
},
"billingState": {
"format": "",
"caption": null
},
"passive": {
"values": {
"0": "Active",
"1": "Inactive"
},
"format": "Enumeration values.Sales management.Accounts.Status",
"caption": "Status"
},
"einvoicePaymentInstruction": {
"format": "text",
"caption": null
},
"factoringResponsibleId": {
"format": "text",
"caption": null
},
"visitingCity": {
"format": "text",
"caption": "Shipping city"
},
"einvoiceSenderOperator": {
"format": "text",
"caption": null
},
"phone": {
"format": "text",
"caption": "Phone"
},
"billingPostalCode": {
"format": "text",
"caption": "Postal\/Zip code"
},
"factoringPartyId": {
"format": "text",
"caption": null
},
"name": {
"format": "text",
"caption": "Account"
},
"firstInvoiceNumber": {
"format": "",
"caption": null
},
"domicile": {
"format": "",
"caption": null
},
"billingAddress": {
"format": "text",
"caption": "Street address"
},
"visitingCountry": {
"values": {
"0": "-",
"1": "Afghanistan",
"256": "Western Sahara",
"234": "Zimbabwe",
"236": "\u00C5land Islands",
"1000": "Other",
"73": "Finland",
"84": "Greenland",
"74": "France"
},
"format": "Enumeration values.Location.CountryId",
"caption": "Shipping country"
},
"billingCity": {
"format": "text",
"caption": "City"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single company in PlanMill.
View details of a single company. See companies/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Update an existing resource company to PlanMill. See companies/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Remove a company from PlanMill.
get /companies/{company_id}
View details of a single company. See companies/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- company_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- name: (string)
Name of a company
- passive: (integer)
Active or passive state of company. Default value 0 (Active)
- vatId: (union of string or nil)
VAT id of a company
- businessId: (union of string or nil)
Business id of a company
- phone: (union of string or nil)
Phone number of a company
- website: (union of string or nil)
Website of a company
- email: (union of email or emptystring or nil)
Email address of a company
- billingAddress: (union of string or nil)
Invoice billing address of a company
- billingCity: (union of string or nil)
Invoice billing city of a company
- billingCountry: (union of integer or nil)
Invoice billing country of a company
- billingState: (union of string or nil)
- billingPostalCode: (union of string or nil)
Invoice billing postal code of a company
- visitingAddress: (union of string or integer or nil)
- visitingCity: (union of string or nil)
- visitingCountry: (union of integer or nil)
- visitingPostalCode: (union of string or nil)
- visitingState: (union of string or nil)
- domicile: (union of string or nil)
- firstInvoiceNumber: (union of integer or string or nil)
- receiveInvoices: (union of integer or nil)
- einvoiceSenderId: (union of string or integer or nil)
- einvoiceSenderOperator: (union of integer or nil)
- einvoicePaymentInstruction: (union of string or nil)
- ceo: (union of string or nil)
- bankAccount1: (union of string or nil)
Bank name (and account number if no IBAN is used)
- iban1: (union of string or nil)
Required if IBAN is used
- bic1: (union of string or nil)
Required if IBAN is used
- bankInfo1: (union of string or nil)
Optional additional info for banking requirements
- bankAccount2: (union of string or nil)
- iban2: (union of string or nil)
- bic2: (union of string or nil)
- bankAccount3: (union of string or nil)
- iban3: (union of string or nil)
- bic3: (union of string or nil)
- factoringResponsibleId: (union of integer or nil)
Update requires factoring settings editing access
- factoringPartyId: (union of integer or nil)
Contact planmill for factoring. Update requires factoring settings editing access
- agreementId: (union of string or integer or nil)
Update requires factoring settings editing access
- id: (integer)
Id of a company
Example:
{
"name": "Test Company",
"id": 170317,
"passive": 0,
"vatId": "2862228-2",
"businessId": "2862228-2",
"phone": "+358-44-324125",
"website": "http://www.planmill.com",
"email": "email@planmill.com",
"billingAddress": "Hämeentie 19",
"billingCity": "Helsinki",
"billingCountry": 73,
"billingState": null,
"billingPostalCode": "00500",
"visitingAddress": "Siltasaarenkatu 18",
"visitingCity": "Helsinki",
"visitingCountry": 73,
"visitingPostalCode": "13233",
"visitingState": "",
"domicile": "Helsinki",
"firstInvoiceNumber": "100",
"receiveInvoices": 1,
"einvoiceSenderId": "003704984967",
"einvoiceSenderOperator": 190,
"einvoicePaymentInstruction": "Internetpalvelumaksu",
"ceo": "Thomas",
"bankAccount1": "Nordea",
"iban1": "FI1699854966354215",
"bic1": "NDEAFIHH",
"bankInfo1": "Nordea bank",
"bankAccount2": "Barclays",
"iban2": "GB33BUKB20201555555555",
"bic2": "BUKBGB22",
"bankAccount3": "Nordea",
"iban3": "FI1699854966354215",
"bic3": "NDEAFIHH",
"factoringResponsibleId": 100,
"factoringPartyId": 353,
"agreementId": "102"
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /companies/{company_id}
Update an existing resource company to PlanMill. See companies/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- company_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: object
Properties- name: (string)
Name of a company
- passive: (integer)
Active or passive state of company. Default value 0 (Active)
- vatId: (union of string or nil)
VAT id of a company
- businessId: (union of string or nil)
Business id of a company
- phone: (union of string or nil)
Phone number of a company
- website: (union of string or nil)
Website of a company
- email: (union of email or emptystring or nil)
Email address of a company
- billingAddress: (union of string or nil)
Invoice billing address of a company
- billingCity: (union of string or nil)
Invoice billing city of a company
- billingCountry: (union of integer or nil)
Invoice billing country of a company
- billingState: (union of string or nil)
- billingPostalCode: (union of string or nil)
Invoice billing postal code of a company
- visitingAddress: (union of string or integer or nil)
- visitingCity: (union of string or nil)
- visitingCountry: (union of integer or nil)
- visitingPostalCode: (union of string or nil)
- visitingState: (union of string or nil)
- domicile: (union of string or nil)
- firstInvoiceNumber: (union of integer or string or nil)
- receiveInvoices: (union of integer or nil)
- einvoiceSenderId: (union of string or integer or nil)
- einvoiceSenderOperator: (union of integer or nil)
- einvoicePaymentInstruction: (union of string or nil)
- ceo: (union of string or nil)
- bankAccount1: (union of string or nil)
Bank name (and account number if no IBAN is used)
- iban1: (union of string or nil)
Required if IBAN is used
- bic1: (union of string or nil)
Required if IBAN is used
- bankInfo1: (union of string or nil)
Optional additional info for banking requirements
- bankAccount2: (union of string or nil)
- iban2: (union of string or nil)
- bic2: (union of string or nil)
- bankAccount3: (union of string or nil)
- iban3: (union of string or nil)
- bic3: (union of string or nil)
- factoringResponsibleId: (union of integer or nil)
Update requires factoring settings editing access
- factoringPartyId: (union of integer or nil)
Contact planmill for factoring. Update requires factoring settings editing access
- agreementId: (union of string or integer or nil)
Update requires factoring settings editing access
Example:
{
"name": "Test Company",
"passive": 0,
"vatId": "2862228-2",
"businessId": "2862228-2",
"phone": "+358-44-324125",
"website": "http://www.planmill.com",
"email": "email@planmill.com",
"billingAddress": "Hämeentie 19",
"billingCity": "Helsinki",
"billingCountry": 73,
"billingState": null,
"billingPostalCode": "00500",
"visitingAddress": "Siltasaarenkatu 18",
"visitingCity": "Helsinki",
"visitingCountry": 73,
"visitingPostalCode": "13233",
"visitingState": "",
"domicile": "Helsinki",
"firstInvoiceNumber": "100",
"receiveInvoices": 1,
"einvoiceSenderId": "003704984967",
"einvoiceSenderOperator": 190,
"einvoicePaymentInstruction": "Internetpalvelumaksu",
"ceo": "Thomas",
"bankAccount1": "Nordea",
"iban1": "FI1699854966354215",
"bic1": "NDEAFIHH",
"bankInfo1": "Nordea bank",
"bankAccount2": "Barclays",
"iban2": "GB33BUKB20201555555555",
"bic2": "BUKBGB22",
"bankAccount3": "Nordea",
"iban3": "FI1699854966354215",
"bic3": "NDEAFIHH",
"factoringResponsibleId": 100,
"factoringPartyId": 353,
"agreementId": "102"
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /companies/{company_id}
Remove a company from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- company_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for the updatable fields of the company
View details of a single meta. See metas/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /companies/{company_id}/meta
View details of a single meta. See metas/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- company_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: meta
Example:
{
"lineOfBusiness": {
"type": "string",
"caption": "",
"format": "int",
"description": "",
"values": null
},
"shippingCity": {
"type": "string",
"caption": "City",
"format": "string",
"description": "",
"values": null
},
"eInvoicingAddress": {
"type": "string",
"caption": "E-invoicing address",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"handlingFee": {
"type": "string",
"caption": "Handling fee",
"format": "double",
"description": "",
"values": null
},
"invoiceVat": {
"type": "string",
"value": "24.0",
"caption": "VAT",
"values": {
"8,875 %": "8.875",
"10,25 %": "10.25",
"9%": "9.0",
"17,5 %": "17.5",
"24 %": "24.0",
"23 %": "23.0",
"22 %": "22.0",
"7,8 %": "7.8",
"21 %": "21.0",
"20 %": "20.0",
"6,25 %": "6.25",
"7,75 %": "7.75",
"9,25 %": "9.25",
"7,5 %": "7.5",
"25 %": "25.0",
"8,9 %": "8.9",
"12%": "12.0",
"8,5 %": "8.5",
"13 %": "13.0",
"0.0": "0 %",
"10 %": "10.0",
"5 %": "5.0",
"19 %": "19.0",
"6 %": "6.0",
"18 %": "18.0",
"7 %": "7.0",
"17 %": "17.0",
"16 %": "16.0",
"8 %": "8.0",
"6,625 %": "6.625",
"15 %": "15.0",
"9,5 %": "9.5",
"14 %": "14.0"
},
"description": "",
"enumeration": "Enumeration values.Finance control.Invoice position summary.Invoices.VAT"
},
"businessId": {
"type": "string",
"caption": "Business ID",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"vatId": {
"type": "string",
"caption": "VAT number",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"description": {
"type": "string",
"format": "string",
"description": "",
"values": null
},
"industry": {
"type": "string",
"caption": "Industry",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Sales management.Accounts.Industry",
"values": {
"74 Other prof. services": "74",
"J ICT": "100900",
"61 Telecommunication": "61",
"Q Health&Social work": "101600",
"I Acc.dation&Food": "100800",
"6209 Other IT services": "6209",
"71 Architecture&Eng": "71",
"O Public administr.": "101400",
"U Extraterr.org.&bodies": "102000",
"S Other Service": "101800",
"E Water & Waste": "100400",
"72 Sc. Research": "72",
"F Construction": "100500",
"K Finance&Insurance": "101000",
"62 Software&IT serv": "62",
"B Mining&Quarrying": "100100",
"X Industry unknown": "102100",
"H Transport&storage": "100700",
"N Admin&Support": "101300",
"6203 IT Facilities": "6203",
"R Arts, ent.&recreation": "101700",
"75 Veterinary": "75",
"69 Legal&Accounting": "69",
"A Agric and Forestry": "100000",
"58 Publishing": "58",
"73 Adv&Marketing": "73",
"63 Inform. services": "63",
"L Real Estate": "101100",
"C Manufacturing": "100200",
"M Prof. services": "101200",
"-": "-1",
"59 Movies & sound pr.": "59",
"6202 IT Consulting": "6202",
"T Households as empl.": "101900",
"G Wholesale&Retail": "100600",
"6201 Programming": "6201",
"P Education": "101500",
"D Electricity Gas etc": "100300",
"70 Mgmt consultancy": "70",
"60 Broadcasting": "60"
}
},
"invoiceEmail": {
"type": "string",
"caption": "Invoice email",
"format": "multiemail",
"description": "",
"maxlength": "180",
"values": null
},
"shippingPostalCode": {
"type": "string",
"caption": "Postal\/Zip code",
"format": "string",
"description": "",
"values": null
},
"type": {
"type": "string",
"value": "8",
"caption": "Type",
"values": {
"Competitor": "2",
"Customer": "3",
"110": "My company - other",
"My company": "100",
"Partner": "6",
"10": "Other",
"11": "Vendor",
"12": "Subcontractor",
"My company - other": "110",
"Reseller": "9",
"Vendor": "11",
"-": "0",
"0": "-",
"100": "My company",
"2": "Competitor",
"3": "Customer",
"4": "Private customer",
"5": "Investor",
"6": "Partner",
"8": "Prospect",
"Subcontractor": "12",
"9": "Reseller",
"Private customer": "4",
"Prospect": "8",
"Investor": "5",
"Other": "10"
},
"format": "int",
"description": ""
},
"parentAccount": {
"type": "string",
"caption": "",
"format": "int",
"description": "",
"values": null
},
"blog": {
"type": "string",
"caption": "Blog",
"format": "url",
"description": "",
"maxlength": "255",
"values": null
},
"parentAccountName": {
"type": "string",
"caption": "Parent account",
"format": "string",
"description": "",
"values": null
},
"twitter": {
"type": "string",
"caption": "Twitter",
"format": "url",
"description": "",
"maxlength": "255",
"values": null
},
"shippingCountry": {
"type": "string",
"caption": "Country",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Location.CountryId",
"values": {
"Western Sahara": "256",
"Afghanistan": "1",
"Finland": "73",
"Zimbabwe": "234",
"France": "74",
"-": "0",
"\u00C5land Islands": "236",
"Greenland": "84",
"Other": "1000"
}
},
"rfReferenceNumber": {
"type": "string",
"value": "0",
"caption": "International RF-reference number",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Sales management.Accounts.International RF-reference number",
"values": {
"No": "0",
"Yes": "1"
}
},
"invoiceChannel": {
"type": "string",
"caption": "Invoice delivery channel",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Finance control.Invoice position summary.Invoices.Channel",
"values": {
"Email": "4",
"Printing service": "1",
"E-invoice": "2",
"Manual handling": "3"
}
},
"billingCountry": {
"type": "string",
"value": "73",
"caption": "Country",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Location.CountryId",
"values": {
"Western Sahara": "256",
"Afghanistan": "1",
"Finland": "73",
"Zimbabwe": "234",
"France": "74",
"-": "0",
"\u00C5land Islands": "236",
"Greenland": "84",
"Other": "1000"
}
},
"shippingReference": {
"type": "string",
"caption": "Shipping Department\/Reference",
"format": "string",
"description": "",
"values": null
},
"id": {
"type": "string",
"caption": "",
"format": "int",
"description": "",
"values": null
},
"turnover": {
"type": "string",
"description": "This field supports currently only euros, we will add full currency support later. Please fill in turnover in 1000s of euros",
"caption": "Turnover K\u20AC",
"format": "int",
"values": null
},
"email": {
"type": "string",
"caption": "Email",
"format": "email",
"description": "",
"maxlength": "254",
"values": null
},
"owner": {
"type": "string",
"caption": "Account owner",
"values": {
"356": "User (update), First",
"User (update), First": 356
},
"format": "int",
"description": ""
},
"website": {
"type": "string",
"caption": "Website",
"format": "url",
"description": "",
"maxlength": "150",
"values": null
},
"supplierAccount": {
"type": "string",
"caption": "Supplier",
"values": {
"353": "Your organisation legal trading name (update)",
"-1": "-"
},
"format": "int",
"description": ""
},
"invoiceAppendix": {
"type": "string",
"value": "0",
"caption": "Invoice appendix",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Finance control.Invoice position summary.Invoices.Appendix",
"values": {
"Priced invoice items by task": "3",
"Invoice items by person": "2",
"Priced invoice items by person": "4",
"Invoice items by task": "1",
"None": "0"
}
},
"facebook": {
"type": "string",
"caption": "Facebook",
"format": "url",
"description": "",
"maxlength": "255",
"values": null
},
"staff": {
"type": "string",
"caption": "Personnel",
"format": "int",
"description": "",
"values": null
},
"billingState": {
"type": "string",
"caption": "State",
"format": "string",
"description": "",
"values": null
},
"serviceLevel": {
"type": "string",
"caption": "Service level",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Sales management.Accounts.Service level",
"values": {
"No agreements": "0",
"Gold Care": "2",
"Platinum Care": "3",
"Silver Care": "1"
}
},
"customerSatisfaction": {
"type": "string",
"caption": "Customer satisfaction",
"values": {
"Red": "3",
"-1": "-",
"Unknown": "4",
"Yellow": "2",
"Green": "1"
},
"format": "int",
"description": "",
"enumeration": "Enumeration values.Sales management.Accounts.Customer satisfaction"
},
"passive": {
"type": "string",
"caption": "Status",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Sales management.Accounts.Status",
"values": {
"Active": "0",
"Inactive": "1"
}
},
"invoiceNetOperator": {
"type": "string",
"caption": "Intermediator",
"description": "",
"enumeration": "Enumeration values.Sales management.Accounts.Invoice net operator_old",
"values": {
"TietoEvry Oyj (003701011385) - Finland": "003701011385",
"Aktia S\u00E4\u00E4st\u00F6pankki Oyj (HELSFIHH)": "150",
"Tradeshift (885060259470028) - Finland": "885060259470028",
"BasWare Oyj (BAWCFI22)": "30",
"Danske Bank Oyj (DABAFIHH) - Finland": "DABAFIHH",
"Pagero (PAGERO)": "230",
"CGI (003703575029)": "180",
"Tieto Oyj (003701011385)": "170",
"Maventa Oy (003721291126) - Finland": "003721291126",
"Telia Finland Oyj (003703575029)": "160",
"Maventa Oy (003721291126)": "190",
"PEPPOL network": "PEPPOL",
"Global EDI (GLOBAL) - Sweden": "GLOBAL"
}
},
"autoReplyRequestMails": {
"type": "string",
"caption": "Auto-reply request mails",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Administration.Jobs.Enabled",
"values": {
"No": "0",
"Yes": "1"
}
},
"combineInvoices": {
"type": "string",
"caption": "Combine invoices",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Administration.Jobs.Enabled",
"values": {
"No": "0",
"Yes": "1"
}
},
"reverseCharge": {
"type": "string",
"caption": "Reverse charge",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Sales management.Accounts.Reverse charge",
"values": {
"0,0 % VAT Reverse charge": "10"
}
},
"phone": {
"type": "string",
"description": "e.g. +xxx-xx-xxxx",
"caption": "Phone",
"format": "phone",
"maxlength": "80",
"values": null
},
"billingPostalCode": {
"type": "string",
"caption": "Postal\/Zip code",
"format": "string",
"description": "",
"values": null
},
"billingReference": {
"type": "string",
"description": "Maximum length is 35 characters due to Finvoice standard limit",
"caption": "Billing Department\/Reference",
"maxlength": "35",
"values": null
},
"invoiceTemplate": {
"type": "string",
"description": "Additional currencies must be added by Power user in Administration settings.",
"caption": "Invoice language & currency",
"values": {
"German (EUR)": "planmill_de_eur.xsl",
"Swedish (EUR)": "planmill_sv_eur.xsl",
"planmill_de_eur.xsl": "German (EUR)",
"Dutch (EUR)": "planmill_nl_eur.xsl",
"planmill_fi_eur.xsl": "Finnish (EUR)",
"English (EUR)": "planmill_en_eur.xsl",
"Estonian (EUR)": "planmill_et_eur.xsl",
"planmill_en_eur.xsl": "English (EUR)",
"planmill_nl_eur.xsl": "Dutch (EUR)",
"planmill_sv_eur.xsl": "Swedish (EUR)",
"Finnish (EUR)": "planmill_fi_eur.xsl",
"planmill_et_eur.xsl": "Estonian (EUR)"
},
"maxlength": "50"
},
"shippingAddress": {
"type": "string",
"caption": "Address (shipping)",
"format": "string",
"description": "",
"values": null
},
"shippingState": {
"type": "string",
"caption": "State",
"format": "string",
"description": "",
"values": null
},
"billingAddress": {
"type": "string",
"description": "(billing or visiting)",
"caption": "Address",
"format": "string",
"values": null
},
"termsOfPayment": {
"type": "string",
"value": "14",
"caption": "Terms of payment",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Sales management.Accounts.Terms of Payment",
"values": {
"180 days net": "180",
"40 days net": "40",
"14 days net": "14",
"Immediately": "0",
"75 days net": "75",
"50 days net": "50",
"30 days net": "30",
"37 days net": "37",
"120 days net": "120",
"31 days net": "31",
"90 days net": "90",
"21 days net": "21",
"35 days net": "35",
"32 days net": "32",
"45 days net": "45",
"28 days net": "28",
"20 days net": "20",
"7 days net": "7",
"60 days net": "60",
"70 days net": "70"
}
},
"billingCity": {
"type": "string",
"caption": "City",
"format": "string",
"description": "",
"values": null
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single logo in PlanMill.
View details of the logo.
Remove a logo from PlanMill.
get /companies/{company_id}/logo
View details of the logo.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- company_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: logo
Example:
Contents of file
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /companies/{company_id}/logo
Remove a logo from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- company_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single logo in PlanMill.
Attach existing file to user.( Tips use file id from api/1.5/tempfile )
put /companies/{company_id}/logo/{logo_id}
Attach existing file to user.( Tips use file id from api/1.5/tempfile )
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- company_id: required(string)
- logo_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: logo
Example:
{}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single einvoicing in PlanMill.
Activate e-invoicing service
put /companies/{company_id}/einvoicing
Activate e-invoicing service
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- company_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: einvoicing
Example:
{}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available integrators in PlanMill. See integrators/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Get a list of integrators. See integrators/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Add a new integrator to PlanMill or update existing (if id is given). See integrators/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /companies/{company_id}/integrators
Get a list of integrators. See integrators/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- company_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort: (string)
Sorts the results using string that is a JSON attribute
- interval: (string)
Interval type, e.g. start, finish, created, or modified. It is required in combination with intervalstart or intervalfinish
- intervalstart: (string)
Start date of the interval in UTC format, intervalfinish required
Example:
2021-08-05T00:00:00.000+0200
- intervalfinish: (string)
Finish date of the interval in UTC format, intervalstart required
Example:
2021-08-05T00:00:00.000+0200
HTTP status code 200
Body
Media type: application/json
Type: array of integrator
Items: integrator
- typeId: (integer)
Type Id of the type of the integrator
- resourceType: (string)
Resource type of the integrator
- name: (string)
Name of the integrator
- enabled: (union of integer or nil)
Is integrator enabled or not
- username: (union of string or nil)
Username of the integrator
- startDate: (union of datetime or nil)
Transfer from this date and later
- target: (union of string or nil)
Target of the integrator, only for Netsuite
- fileTemplate: (union of string or nil)
Only for Netsuite. Defines the naming of any files transfered. Available options - [InvoiceNumber], [CompanyId] Eg. s_[InvoiceNumber].
- dimensionTemplate: (union of string or nil)
If defined then dimensions row is included according to this template. Available options depend on the integrator type.
- language: (union of string or nil)
Language for Netvisor and Fortnox e.g. error messages
- includePdf: (union of integer or nil)
Is PDF included or not
- zipFiles: (union of integer or nil)
Are zip files included or not
- deferredSending: (union of integer or nil)
Is sendig deferred or not
- reportExports: (union of string or nil)
List of reports to be exported
- tableExports: (union of string or nil)
List of tables to be exported
- owner: (union of integer or nil)
Owner of the integrator
- includeElements: (union of string or nil)
Voucher lines should not be used when including Sales invoice accruals data
- id: (integer)
Id of the integrator
- accountId: (integer)
Company to which the integrator belongs
Example:
[
{
"id": 1770,
"typeId": 10,
"accountId": 353,
"resourceType": "invoice",
"name": "Custom Finvoice based",
"enabled": 0,
"username": "PlanmillUser",
"startDate": "2021-12-01T00:00:00.000+0200",
"target": "/Bills",
"fileTemplate": "[InvoiceNumber]",
"dimensionTemplate": "[ProductGroupId]",
"language": "EN",
"includePdf": 1,
"zipFiles": 0,
"deferredSending": 0,
"reportExports": "Reports.Portal.03 Invoicing.41 Actual revenues monthly summary by customer,Reports.Portal.04 Time and expense.11 Time report analysis by person",
"tableExports": "Sales management.Sales orders,Sales management.Opportunities,Employee directory.Contact",
"owner": 356,
"includeElements": "costcenters"
},
{
"id": 1773,
"typeId": 40,
"accountId": 353,
"resourceType": "expense",
"name": "Procountor expense",
"enabled": 0,
"username": null,
"startDate": null,
"target": null,
"fileTemplate": null,
"dimensionTemplate": null,
"language": null,
"includePdf": null,
"zipFiles": null,
"deferredSending": null,
"reportExports": null,
"tableExports": null,
"owner": null,
"includeElements": null
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /companies/{company_id}/integrators
Add a new integrator to PlanMill or update existing (if id is given). See integrators/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- company_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8)
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: object
Properties- typeId: (integer)
Type Id of the type of the integrator
- resourceType: (string)
Resource type of the integrator
- name: (string)
Name of the integrator
- enabled: (union of integer or nil)
Is integrator enabled or not
- username: (union of string or nil)
Username of the integrator
- startDate: (union of datetime or nil)
Transfer from this date and later
- target: (union of string or nil)
Target of the integrator, only for Netsuite
- fileTemplate: (union of string or nil)
Only for Netsuite. Defines the naming of any files transfered. Available options - [InvoiceNumber], [CompanyId] Eg. s_[InvoiceNumber].
- dimensionTemplate: (union of string or nil)
If defined then dimensions row is included according to this template. Available options depend on the integrator type.
- language: (union of string or nil)
Language for Netvisor and Fortnox e.g. error messages
- includePdf: (union of integer or nil)
Is PDF included or not
- zipFiles: (union of integer or nil)
Are zip files included or not
- deferredSending: (union of integer or nil)
Is sendig deferred or not
- reportExports: (union of string or nil)
List of reports to be exported
- tableExports: (union of string or nil)
List of tables to be exported
- owner: (union of integer or nil)
Owner of the integrator
- includeElements: (union of string or nil)
Voucher lines should not be used when including Sales invoice accruals data
- password: (union of string or nil)
Password of the integrator
Example:
{ "typeId": 10,
"resourceType": "invoice",
"name": "Custom Finvoice based",
"enabled": 0,
"username": null,
"password": null,
"startDate": "2021-12-01T00:00:00.000+0200",
"target": null,
"fileTemplate": "[InvoiceNumber]",
"dimensionTemplate": "[ProductGroupId]",
"language": "EN",
"includePdf": 1,
"zipFiles": null,
"deferredSending": null,
"reportExports": null,
"tableExports": null,
"owner": null,
"includeElements": null
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for integrators. Includes resource's fields names and type
View details of a single meta. See metas/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /companies/{company_id}/integrators/meta
View details of a single meta. See metas/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- company_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: meta
Example:
{
"owner": {
"type": "string",
"values": null
},
"reportExports": {
"type": "string",
"values": null
},
"deferredSending": {
"type": "string",
"description": "Deferred Sending",
"values": {
"": "No (Use PlanMill as invoice distributor)",
"1": "Yes (Do not send invoices from PlanMill)"
}
},
"includeElements": {
"type": "string",
"description": "Voucher lines should not be used when including Sales invoice accruals data",
"values": {
"": "NULL"
}
},
"language": {
"type": "string",
"description": "Language for Netvisor and Fortnox e.g. error messages",
"values": {
"FI": "Finnish",
"EN": "English"
}
},
"userName": {
"type": "string",
"values": null
},
"enabled": {
"type": "string",
"format": "boolean",
"values": null
},
"target": {
"type": "string",
"values": null
},
"accountId": {
"type": "string",
"description": "Account Id",
"format": "int",
"values": null
},
"password": {
"type": "string",
"values": null
},
"fileTemplate": {
"type": "string",
"values": null
},
"dimensionTemplate": {
"type": "string",
"values": null
},
"name": {
"type": "string",
"values": null
},
"includePdf": {
"type": "string",
"values": {
"0": "No",
"1": "Yes",
"2": "Appendix only",
"-1": "-"
}
},
"tableExports": {
"type": "string",
"values": {
"Sales management.Accounts": "Accounts",
"Sales management.Contracts": "Contracts",
"Expense module.Expenses": "Expense",
"Sales management.Opportunities": "Opportunities",
"Sales management.Contacts": "Contacts",
"Sales management.Projects": "Projects",
"Sales management.Sales orders": "Sales orders",
"Employee directory.Contact": "Users",
"FinanceControl.InvoicePositions": "Invoices"
}
},
"typeId": {
"type": "string",
"values": {
"Custom Finvoice based 1": 10,
"Netvisor expense - Pro": 140,
"130": "Mepco Payroll Connector",
"Efina expense": 60,
"110": "BI Data",
"Netvisor invoice - Pro": 120,
"Microsoft NAV invoices": 20,
"BI Data": 110,
"90": "Populus connector",
"Populus connector": 90,
"70": "M-files sales data",
"50": "Netsuite expense",
"30": "Procountor invoice",
"10": "Custom Finvoice based 1",
"Mepco Payroll Connector": 130,
"M-files sales data": 70,
"140": "Netvisor expense - Pro",
"Netsuite expense": 50,
"120": "Netvisor invoice - Pro",
"100": "Fortnox invoice",
"Talenom invoice": 80,
"Procountor invoice": 30,
"Fortnox invoice": 100,
"80": "Talenom invoice",
"60": "Efina expense",
"40": "Procountor expense",
"20": "Microsoft NAV invoices",
"Procountor expense": 40
},
"format": "int"
},
"id": {
"type": "string",
"format": "int",
"values": null
},
"startDate": {
"type": "string",
"values": null
},
"zipFiles": {
"type": "string",
"values": {
"": "-",
"true": "Yes",
"false": "No"
}
},
"resourceType": {
"type": "string",
"values": null
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single integrator in PlanMill.
View details of a single integrator. See integrators/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Update an existing resource integrator to PlanMill. See integrators/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Remove a integrator from PlanMill.
get /companies/{company_id}/integrators/{integrator_id}
View details of a single integrator. See integrators/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- company_id: required(string)
- integrator_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- typeId: (integer)
Type Id of the type of the integrator
- resourceType: (string)
Resource type of the integrator
- name: (string)
Name of the integrator
- enabled: (union of integer or nil)
Is integrator enabled or not
- username: (union of string or nil)
Username of the integrator
- startDate: (union of datetime or nil)
Transfer from this date and later
- target: (union of string or nil)
Target of the integrator, only for Netsuite
- fileTemplate: (union of string or nil)
Only for Netsuite. Defines the naming of any files transfered. Available options - [InvoiceNumber], [CompanyId] Eg. s_[InvoiceNumber].
- dimensionTemplate: (union of string or nil)
If defined then dimensions row is included according to this template. Available options depend on the integrator type.
- language: (union of string or nil)
Language for Netvisor and Fortnox e.g. error messages
- includePdf: (union of integer or nil)
Is PDF included or not
- zipFiles: (union of integer or nil)
Are zip files included or not
- deferredSending: (union of integer or nil)
Is sendig deferred or not
- reportExports: (union of string or nil)
List of reports to be exported
- tableExports: (union of string or nil)
List of tables to be exported
- owner: (union of integer or nil)
Owner of the integrator
- includeElements: (union of string or nil)
Voucher lines should not be used when including Sales invoice accruals data
- id: (integer)
Id of the integrator
- accountId: (integer)
Company to which the integrator belongs
Example:
{ "id": 1770,
"typeId": 10,
"accountId": 353,
"resourceType": "invoice",
"name": "Custom Finvoice based",
"enabled": 0,
"username": "PlanmillUser",
"startDate": "2021-12-01T00:00:00.000+0200",
"target": "/Bills",
"fileTemplate": "[InvoiceNumber]",
"dimensionTemplate": "[ProductGroupId]",
"language": "EN",
"includePdf": 1,
"zipFiles": 0,
"deferredSending": 0,
"reportExports": "Reports.Portal.03 Invoicing.41 Actual revenues monthly summary by customer,Reports.Portal.04 Time and expense.11 Time report analysis by person",
"tableExports": "Sales management.Sales orders,Sales management.Opportunities,Employee directory.Contact",
"owner": 356,
"includeElements": "costcenters"
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /companies/{company_id}/integrators/{integrator_id}
Update an existing resource integrator to PlanMill. See integrators/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- company_id: required(string)
- integrator_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: object
Properties- typeId: (integer)
Type Id of the type of the integrator
- resourceType: (string)
Resource type of the integrator
- name: (string)
Name of the integrator
- enabled: (union of integer or nil)
Is integrator enabled or not
- username: (union of string or nil)
Username of the integrator
- startDate: (union of datetime or nil)
Transfer from this date and later
- target: (union of string or nil)
Target of the integrator, only for Netsuite
- fileTemplate: (union of string or nil)
Only for Netsuite. Defines the naming of any files transfered. Available options - [InvoiceNumber], [CompanyId] Eg. s_[InvoiceNumber].
- dimensionTemplate: (union of string or nil)
If defined then dimensions row is included according to this template. Available options depend on the integrator type.
- language: (union of string or nil)
Language for Netvisor and Fortnox e.g. error messages
- includePdf: (union of integer or nil)
Is PDF included or not
- zipFiles: (union of integer or nil)
Are zip files included or not
- deferredSending: (union of integer or nil)
Is sendig deferred or not
- reportExports: (union of string or nil)
List of reports to be exported
- tableExports: (union of string or nil)
List of tables to be exported
- owner: (union of integer or nil)
Owner of the integrator
- includeElements: (union of string or nil)
Voucher lines should not be used when including Sales invoice accruals data
- password: (union of string or nil)
Password of the integrator
Example:
{ "typeId": 10,
"resourceType": "invoice",
"name": "Custom Finvoice based",
"enabled": 0,
"username": null,
"password": null,
"startDate": "2021-12-01T00:00:00.000+0200",
"target": null,
"fileTemplate": "[InvoiceNumber]",
"dimensionTemplate": "[ProductGroupId]",
"language": "EN",
"includePdf": 1,
"zipFiles": null,
"deferredSending": null,
"reportExports": null,
"tableExports": null,
"owner": null,
"includeElements": null
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /companies/{company_id}/integrators/{integrator_id}
Remove a integrator from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- company_id: required(string)
- integrator_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for the updatable fields of the integrator
View details of a single meta. See metas/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /companies/{company_id}/integrators/{integrator_id}/meta
View details of a single meta. See metas/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- company_id: required(string)
- integrator_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: meta
Example:
{
"owner": {
"type": "string",
"values": null
},
"reportExports": {
"type": "string",
"values": null
},
"deferredSending": {
"type": "string",
"description": "Deferred Sending",
"values": {
"": "No (Use PlanMill as invoice distributor)",
"1": "Yes (Do not send invoices from PlanMill)"
}
},
"includeElements": {
"type": "string",
"description": "Voucher lines should not be used when including Sales invoice accruals data",
"values": {
"": "NULL"
}
},
"language": {
"type": "string",
"description": "Language for Netvisor and Fortnox e.g. error messages",
"values": {
"FI": "Finnish",
"EN": "English"
}
},
"userName": {
"type": "string",
"values": null
},
"enabled": {
"type": "string",
"format": "boolean",
"values": null
},
"target": {
"type": "string",
"values": null
},
"accountId": {
"type": "string",
"description": "Account Id",
"format": "int",
"values": null
},
"password": {
"type": "string",
"values": null
},
"fileTemplate": {
"type": "string",
"values": null
},
"dimensionTemplate": {
"type": "string",
"values": null
},
"name": {
"type": "string",
"values": null
},
"includePdf": {
"type": "string",
"values": {
"0": "No",
"1": "Yes",
"2": "Appendix only",
"-1": "-"
}
},
"tableExports": {
"type": "string",
"values": {
"Sales management.Accounts": "Accounts",
"Sales management.Contracts": "Contracts",
"Expense module.Expenses": "Expense",
"Sales management.Opportunities": "Opportunities",
"Sales management.Contacts": "Contacts",
"Sales management.Projects": "Projects",
"Sales management.Sales orders": "Sales orders",
"Employee directory.Contact": "Users",
"FinanceControl.InvoicePositions": "Invoices"
}
},
"typeId": {
"type": "string",
"values": {
"Custom Finvoice based 1": 10,
"Netvisor expense - Pro": 140,
"130": "Mepco Payroll Connector",
"Efina expense": 60,
"110": "BI Data",
"Netvisor invoice - Pro": 120,
"Microsoft NAV invoices": 20,
"BI Data": 110,
"90": "Populus connector",
"Populus connector": 90,
"70": "M-files sales data",
"50": "Netsuite expense",
"30": "Procountor invoice",
"10": "Custom Finvoice based 1",
"Mepco Payroll Connector": 130,
"M-files sales data": 70,
"140": "Netvisor expense - Pro",
"Netsuite expense": 50,
"120": "Netvisor invoice - Pro",
"100": "Fortnox invoice",
"Talenom invoice": 80,
"Procountor invoice": 30,
"Fortnox invoice": 100,
"80": "Talenom invoice",
"60": "Efina expense",
"40": "Procountor expense",
"20": "Microsoft NAV invoices",
"Procountor expense": 40
},
"format": "int"
},
"id": {
"type": "string",
"format": "int",
"values": null
},
"startDate": {
"type": "string",
"values": null
},
"zipFiles": {
"type": "string",
"values": {
"": "-",
"true": "Yes",
"false": "No"
}
},
"resourceType": {
"type": "string",
"values": null
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single enabled in PlanMill.
Enable integrator
put /companies/{company_id}/integrators/{integrator_id}/enabled
Enable integrator
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- company_id: required(string)
- integrator_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: object
Properties- enabled: (union of integer or nil)
Is integrator enabled or not
Example:
{ "enabled": 1
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available integratortypes in PlanMill. See integratortypes/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Get a list of integratortypes. See integratortypes/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Add a new integratortype to PlanMill. See integratortypes/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /companies/integratortypes
Get a list of integratortypes. See integratortypes/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (string)
Sorts the results using string that is a JSON attribute
HTTP status code 200
integratortype for the integration
Body
Media type: application/json
Type: array of integratortype_getId
Items: integratortype_getId
- name: (string)
Name of the integrator type
- accessRight: (string)
Access right of the integrator type
- resourceType: (string)
Resource type of the integrator type - expense, invoice etc.
- countryId: (integer)
Country Id of the integrator type
- typeId: (integer)
Unique identifier for each integrator type
Example:
[
{
"typeId": 10,
"name":"Custom Finvoice based",
"accessRight":"Integrations.Finvoice Accounting connector edit",
"resourceType":"invoice",
"countryId": 73
},
{
"typeId": 70,
"name": "M-files sales data",
"accessRight": "Integrations.Mfiles sales connector settings edit",
"resourceType": "metadatasales",
"countryId": 73
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /companies/integratortypes
Add a new integratortype to PlanMill. See integratortypes/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: object
Properties- name: (string)
Name of the integrator type
- accessRight: (string)
Access right of the integrator type
- resourceType: (string)
Resource type of the integrator type - expense, invoice etc.
- countryId: (integer)
Country Id of the integrator type
Example:
{ "name":"Custom Finvoice based",
"accessRight":"Integrations.Finvoice Accounting connector edit",
"resourceType":"invoice",
"countryId": 73
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for integratortypes. Includes resource's fields names and type
View details of a single meta. See metas/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /companies/integratortypes/meta
View details of a single meta. See metas/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: meta
Example:
{
"accessRight": {
"type": "string",
"values": null
},
"name": {
"type": "string",
"values": null
},
"typeId": {
"type": "string",
"format": "int",
"values": null
},
"countryId": {
"type": "string",
"values": {
"0": "-",
"1": "Afghanistan",
"256": "Western Sahara",
"234": "Zimbabwe",
"236": "\u00C5land Islands",
"1000": "Other",
"73": "Finland",
"84": "Greenland",
"74": "France"
},
"format": "int"
},
"resourceType": {
"type": "string",
"values": null
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single integratortype in PlanMill.
View details of a single integratortype. See integratortypes/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Update an existing resource integratortype to PlanMill. See integratortypes/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Remove a integratortype from PlanMill.
get /companies/integratortypes/{integratortype_id}
View details of a single integratortype. See integratortypes/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- integratortype_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- name: (string)
Name of the integrator type
- accessRight: (string)
Access right of the integrator type
- resourceType: (string)
Resource type of the integrator type - expense, invoice etc.
- countryId: (integer)
Country Id of the integrator type
- typeId: (integer)
Unique identifier for each integrator type
Example:
{ "typeId": 10,
"name":"Custom Finvoice based",
"accessRight":"Integrations.Finvoice Accounting connector edit",
"resourceType":"invoice",
"countryId": 73
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /companies/integratortypes/{integratortype_id}
Update an existing resource integratortype to PlanMill. See integratortypes/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- integratortype_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8)
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: object
Properties- name: (string)
Name of the integrator type
- accessRight: (string)
Access right of the integrator type
- resourceType: (string)
Resource type of the integrator type - expense, invoice etc.
- countryId: (integer)
Country Id of the integrator type
Example:
{ "name":"Custom Finvoice based",
"accessRight":"Integrations.Finvoice Accounting connector edit",
"resourceType":"invoice",
"countryId": 73
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /companies/integratortypes/{integratortype_id}
Remove a integratortype from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- integratortype_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for the updatable fields of the integratortype
View details of a single meta. See metas/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /companies/integratortypes/{integratortype_id}/meta
View details of a single meta. See metas/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- integratortype_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: meta
Example:
{
"accessRight": {
"type": "string",
"values": null
},
"name": {
"type": "string",
"values": null
},
"typeId": {
"type": "string",
"format": "int",
"values": null
},
"countryId": {
"type": "string",
"values": {
"0": "-",
"1": "Afghanistan",
"256": "Western Sahara",
"234": "Zimbabwe",
"236": "\u00C5land Islands",
"1000": "Other",
"73": "Finland",
"84": "Greenland",
"74": "France"
},
"format": "int"
},
"resourceType": {
"type": "string",
"values": null
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/capacitycalendars
Collection of available capacitycalendars in PlanMill. This is a read-only collection.
Get a list of capacitycalendars
get /capacitycalendars
Get a list of capacitycalendars
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
[
{
"country": 73,
"defaultWeekStartDay": 1,
"defaultDailyWorktime": 510,
"defaultDailyStartTime": 540,
"name": "FI 2006 - 2010",
"start": "2006-01-01T00:00:00.000+0200",
"defaultWeeklyWorkdays": 5,
"finish": "2011-12-31T00:00:00.000+0200",
"activeUsers": 7,
"id": 480895,
"type": 0
},
{
"country": null,
"defaultWeekStartDay": 1,
"defaultDailyWorktime": 450,
"defaultDailyStartTime": 540,
"name": "FI 2009 - 2019",
"start": "2009-01-01T00:00:00.000+0200",
"defaultWeeklyWorkdays": 5,
"finish": "2019-12-31T00:00:00.000+0200",
"activeUsers": 54,
"id": 585281,
"type": 0
},
{
"country": 73,
"defaultWeekStartDay": 1,
"defaultDailyWorktime": 360,
"defaultDailyStartTime": 540,
"name": "FI2011: Osa-aika - 30 h/vk",
"start": "2011-01-01T00:00:00.000+0200",
"defaultWeeklyWorkdays": 5,
"finish": "2011-12-31T00:00:00.000+0200",
"activeUsers": 1,
"id": 2771516,
"type": 2
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for capacity calendars. Includes resource's fields names and type and related filters
View details of a single meta.
get /capacitycalendars/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"filters": [
{
"name": "rowcount",
"caption": "Rows",
"values": {
"25": "25",
"50": "50",
"75": "75",
"100": "100",
"150": "150",
"250": "250"
}
}
],
"fields": {
"country": {
"format": "Enumeration values.Location.CountryId",
"caption": "Country"
},
"defaultWeekStartDay": {
"format": "Enumeration values.Administration.Calendars.Days",
"caption": "Default week start day"
},
"defaultDailyWorktime": {
"format": "hour",
"caption": "Default work time daily"
},
"defaultDailyStartTime": {
"format": "time",
"caption": "Default start time daily"
},
"name": {
"format": "text",
"caption": "_Name"
},
"start": {
"format": "shortdate",
"caption": "Start"
},
"defaultWeeklyWorkdays": {
"format": "number",
"caption": "Default work days weekly"
},
"finish": {
"format": "shortdate",
"caption": "Finish"
},
"activeUsers": {
"format": "text",
"caption": "Active users"
},
"id": {
"format": "checkbox",
"caption": "_"
},
"type": {
"format": "Enumeration values.Employee directory.Contact.Employee status",
"caption": "Type"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available publicholidays in PlanMill. This is a read-only collection.
Get a list of publicholidays
get /capacitycalendars/publicholidays
Get a list of publicholidays
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: array of publicholiday
Items: publicholiday
- id: required(integer)
Unique identifier of a public holiday.
- capacityCalendarId: required(integer)
Capacity calendar of a public holiday. Each calendar has a separate holiday listing.
- date: required(string)
Date of a public holiday.
- description: required(string)
Description of a public holiday.
Example:
[
{ "id": 62902,
"capacityCalendarId": 62901,
"date": "2024-12-25 00:00:00.0",
"description": "Christmas Day"
},
{
"id": 62903,
"capacityCalendarId": 62901,
"date": "2024-12-26 00:00:00.0",
"description": "Boxing Day"
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Set a single day's capacity for a capacity calendar
put /capacitycalendars/capacitycalendars/{id}/capacity/{date}
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- id: required(string)
- date: required(date)
Capacity date in UTC format
Example:
2019-03-01T00:00:00.000+0200
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: any
Example:
{}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/contacts
Collection of available contacts in PlanMill. See contacts/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Get a list of contacts. See contacts/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
To add a new contact. See contacts/meta for list of columns and formats.
get /contacts
Get a list of contacts. See contacts/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- campaigns?: (integer)
Internal id of campaign to search contacts belonging to specific campaign
- interval?: (string)
Interval type, e.g. start, finish, created, or modified. It is required in combination with intervalstart or intervalfinish
- intervalstart?: (string)
Start date of the interval in UTC format, intervalfinish required
Example:
2019-03-01T00:00:00.000+0200
- intervalfinish?: (string)
Finish date of the interval in UTC format, intervalstart required
Example:
2019-03-01T00:00:00.000+0200
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (string)
Sorts the results using string that is a JSON attribute
HTTP status code 200
Body
Media type: application/json
Type: array of contact
Items: contact
- lastName: (string - maxLength: 80)
Last name of a contact
- firstName: (string - maxLength: 80)
First name of a contact
- title: (union of string or nil)
Title of contact
- department: (union of string or nil)
Contact's department
- account: (integer)
Id of contact's account
- accountName: (union of string or nil)
Account name of contact
- languageCode: (union of string or nil)
Language code
- workPhone: (union of string or nil)
- mobilePhone: (union of string or nil)
- email: (union of email or emptystring or nil)
Contact specific email address
- id: (integer)
Contact (internal) id
- passive: (integer)
Contact status can be active or passive. 0=Active 1=InActive
- primaryPhone: (union of string or nil)
- primaryAddress: (union of string or nil)
Address of contact's account
- primaryPostalCode: (union of string or nil)
- primaryCity: (union of string or nil)
- primaryCountry: (union of integer or nil)
- secondaryDepartment: (union of string or nil)
Contact's secondary department
- secondaryAddress: (union of string or nil)
Contact specific address
- secondaryPostalCode: (union of string or nil)
- secondaryCity: (union of string or nil)
- secondaryCountry: (union of integer or nil)
- skype: (union of string or nil)
Contact's skype name
- googleTalk: (union of string or nil)
Contact's google talk address
- linkedIn: (union of string or nil)
Contact's linkedIn address
- website: (union of string or nil)
Account website
- created: (datetime)
- createdBy: (union of string or integer or nil)
- modified: (union of datetime or nil)
- modifiedBy: (union of string or integer or nil)
- invoiceXsl: (union of string or nil)
- accountType: (union of integer or nil)
Example:
[
{
"lastName": "Tester, First",
"secondaryAddress": "Kuitinkatu 2",
"primaryPostalCode": "00020",
"accountName": "PlanMill Oy",
"title": "Software Engineer",
"primaryCity": "Helsinki",
"invoiceXsl": "planmill_en_eur.xsl",
"secondaryPostalCode": "02210",
"skype": "skype:skpe_id?userinfo",
"secondaryCity": "Espoo",
"modified": "2015-09-08T14:56:19.663+0300",
"modifiedBy": "Tester, Second",
"id": 3574,
"department": "Sofware Development",
"primaryCountry": 73,
"email": "first.tester@planmill.com",
"secondaryCountry": 73,
"website": "http://www.planmill.com",
"created": "2015-06-22T15:43:36.880+0300",
"accountType": 6,
"linkedIn": "http://www.linkedin.com",
"languageCode": "en",
"passive": 0,
"primaryPhone": "+358-466-5556951",
"mobilePhone": "+358-466-5556951",
"createdBy": "PlanMill, Maintenance-user",
"workPhone": "358103229110",
"googleTalk": "gtalk:call?gtalk_id",
"primaryAddress": "Hämeentie 19",
"account": 51
},
{
"lastName": "Tester, Second",
"secondaryAddress": null,
"primaryPostalCode": "00020",
"accountName": "Nordea Rahoitus Suomi Oy",
"title": null,
"primaryCity": "NORDEA",
"secondaryPostalCode": null,
"skype": null,
"secondaryCity": null,
"id": 1534,
"department": null,
"primaryCountry": 73,
"email": "first.tester@planmill.com",
"secondaryCountry": null,
"linkedIn": null,
"languageCode": "en",
"passive": 0,
"firstName": "",
"mobilePhone": "+358-466-5556951",
"workPhone": null,
"googleTalk": null,
"primaryAddress": "Myyntisaatavien palvelut",
"account": 1000
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /contacts
To add a new contact. See contacts/meta for list of columns and formats.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8)
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: object
Properties- lastName: required(string - maxLength: 80)
Last name of a contact
- account: required(integer)
Id of contact's account
- firstName: (string - maxLength: 80)
First name of a contact
- title: (union of string or nil)
Title of contact
- department: (union of string or nil)
Contact's department
- accountName: (union of string or nil)
Account name of contact
- languageCode: (union of string or nil)
Language code
- workPhone: (union of string or nil)
- mobilePhone: (union of string or nil)
- email: (union of email or emptystring or nil)
Contact specific email address
- secondaryEmail: (union of email or emptystring or nil)
- passive: (integer)
Contact status can be active or passive. 0=Active 1=InActive
- secondaryDepartment: (union of string or nil)
Contact's secondary department
- secondaryAddress: (union of string or nil)
Contact specific address
- secondaryPostalCode: (union of string or nil)
- secondaryCity: (union of string or nil)
- secondaryState: (union of string or nil)
- secondaryCountry: (union of integer or nil)
- campaigns: (union of integer or nil)
- skype: (union of string or nil)
Contact's skype name
- googleTalk: (union of string or nil)
Contact's google talk address
- linkedIn: (union of string or nil)
Contact's linkedIn address
- twitter: (union of string or nil)
Contact's twitter account name
- facebook: (union of string or nil)
Contact's facebook address
- blog: (union of string or nil)
Contact's blog
- description: (union of string or nil)
Contact's description
Example:
{
"lastName": "Tester",
"secondaryAddress": null,
"secondaryEmail": "",
"accountName": "PlanMill Oy",
"description": null,
"title": "Software Engineer",
"blog": "http://www.blog.com",
"secondaryPostalCode": null,
"skype": "skpe_id",
"twitter": "http://www.twitter.com",
"campaigns": null,
"secondaryCity": null,
"department": "Software Development",
"email": "mikko.tester@planmill.com",
"secondaryCountry": null,
"facebook": "http://www.facebook.com",
"secondaryState": null,
"linkedIn": "http://www.linkedin.com",
"languageCode": "en",
"passive": 0,
"firstName": "Mikko",
"mobilePhone": "+358-466-5556951",
"workPhone": "+358 10 322 9110",
"googleTalk": "gtalk_id",
"account": 51
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for contacts. Includes resource's fields names and type and related filters
View details of a single meta.
get /contacts/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"filters": [
{
"type": "string",
"name": "searchkey",
"caption": ""
},
{
"type": "string",
"name": "viewby",
"value": "6",
"caption": "View by",
"values": {
"0": "My active contacts",
"1": "My active contacts - customers",
"2": "My active contacts - prospects",
"3": "My inactive contacts",
"4": "My recently created contacts - last 7 days",
"5": "My recently modified contacts - last 7 days",
"6": "All active contacts",
"7": "All active contacts - customers",
"8": "All active contacts - prospects",
"9": "All inactive contacts",
"10": "All recently created contacts - last 7 days",
"11": "All recently modified contacts - last 7 days"
}
},
{
"type": "multivalue",
"name": "primaryPostalCode",
"value": "-1",
"caption": "Postal/Zip code",
"values": {
"-1": "All",
"00020": "00020, NORDEA",
"00500": "00500, Helsinki"
}
},
{
"type": "multivalue",
"name": "campaigns",
"value": "-1",
"caption": "Campaigns",
"values": {
"-1": "All"
}
},
{
"type": "interval",
"name": "interval",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"values": {
"Person.Modified": "Modified",
"Person.Created": "Created"
}
},
{
"type": "string",
"name": "rowcount",
"value": "100",
"caption": "Rows",
"values": {
"25": "25",
"50": "50",
"75": "75",
"100": "100",
"150": "150",
"250": "250"
}
},
{
"type": "multivalue",
"name": "Account.Industry",
"value": "-1",
"caption": "Account Industry",
"values": {
"62": "62 Software&IT serv",
"-1": "All"
}
},
{
"type": "multivalue",
"name": "Account.ResponsibleId",
"value": "-1",
"caption": "Owner",
"values": {
"0": "System,",
"50": "PlanMill, Maintenance-user (Inactive)",
"-1": "All"
}
},
{
"type": "multivalue",
"name": "accountType",
"value": "-1",
"caption": "Account type",
"values": {
"6": "Partner",
"100": "My company",
"-1": "All"
}
},
{
"type": "multivalue",
"name": "primaryCountry",
"value": "-1",
"caption": "Country",
"values": {
"73": "Finland",
"-1": "All"
}
},
{
"type": "multivalue",
"name": "primaryCity",
"value": "-1",
"caption": "City",
"values": {
"": "",
"-1": "All",
"NORDEA": "NORDEA",
"Helsinki": "Helsinki"
}
},
{
"type": "multivalue",
"name": "account",
"value": "-1",
"caption": "Account",
"values": {
"51": "PlanMill Oy",
"353": "Sample account",
"1000": "Nordea Rahoitus Suomi Oy",
"-1": "All"
}
}
],
"fields": {
"lastName": {
"format": "",
"caption": null
},
"secondaryAddress": {
"format": "text",
"caption": "Secondary street address"
},
"primaryPostalCode": {
"format": "text",
"caption": "Postal/Zip code"
},
"accountName": {
"format": "text",
"caption": "Account"
},
"title": {
"format": "text",
"caption": "Title"
},
"primaryCity": {
"format": "text",
"caption": "City"
},
"invoiceXsl": {
"format": "text",
"caption": "Account.InvoiceXSL"
},
"secondaryPostalCode": {
"format": "text",
"caption": "Secondary postal/Zip code"
},
"skype": {
"format": "weblink",
"caption": "Skype"
},
"secondaryCity": {
"format": "text",
"caption": "Secondary city"
},
"modified": {
"format": "mediumdate",
"caption": "Modified"
},
"modifiedBy": {
"format": "text",
"caption": "Modified by"
},
"id": {
"format": "text",
"caption": "Person.Id"
},
"department": {
"format": "text",
"caption": "Department"
},
"fax": {
"format": "text",
"caption": "Fax"
},
"primaryCountry": {
"values": {
"0": "-",
"1": "Afghanistan",
"2": "Albania",
"3": "Algeria",
"4": "American Samoa",
"5": "Andorra",
"6": "Angola",
"7": "Anguilla",
"8": "Antigua and Barbuda",
"9": "Argentina",
"10": "Armenia",
"11": "Aruba",
"13": "Australia",
"15": "Austria",
"16": "Azerbaijan",
"17": "Bahamas",
"18": "Barbados",
"19": "Bahrain",
"20": "Bangladesh",
"21": "Belarus",
"22": "Belgium",
"23": "Belize",
"24": "Benin",
"25": "Bermuda",
"26": "Bhutan",
"27": "Virgin Islands, British",
"28": "Bolivia",
"29": "Bosnia and Herzegovina",
"30": "Botswana",
"31": "Brazil",
"33": "Brunei Darussalam",
"34": "Bulgaria",
"35": "Burkina Faso",
"36": "Burundi",
"37": "Cambodia",
"38": "Cameroon",
"39": "Canada",
"40": "Cape Verde",
"42": "Cayman Islands",
"44": "Central African Republic",
"45": "Chad",
"46": "Chile",
"47": "China",
"48": "Taiwan, Province of China",
"49": "Colombia",
"50": "Comoros",
"51": "Congo-Brazzaville",
"52": "Cook Islands",
"53": "Costa Rica",
"54": "Croatia",
"55": "Cuba",
"56": "Cyprus",
"57": "Czech Republic",
"58": "Denmark",
"59": "British Indian Ocean Territory",
"60": "Dominica",
"61": "Dominican Republic",
"62": "Djibouti",
"63": "Ecuador",
"64": "Egypt",
"65": "El Salvador",
"66": "Equatorial Guinea",
"67": "Eritrea",
"68": "Estonia",
"69": "Ethiopia",
"70": "Falkland Islands (Malvinas)",
"71": "Faroe Islands",
"72": "Fiji",
"73": "Finland",
"74": "France",
"76": "French Guiana",
"77": "Gabon",
"78": "Gambia",
"79": "Georgia",
"80": "Germany",
"81": "Ghana",
"82": "Gibraltar",
"83": "Greece",
"84": "Greenland",
"85": "Grenada",
"86": "Guam",
"87": "Guatemala",
"88": "Guinea",
"89": "Guinea-Bissau",
"90": "Guyana",
"91": "Haiti",
"92": "Honduras",
"93": "Hong Kong",
"94": "Hungary",
"95": "Iceland",
"96": "India",
"97": "Indonesia",
"98": "Iran, Islamic Republic of",
"99": "Iraq",
"100": "Ireland",
"101": "Israel",
"102": "Italy",
"103": "C�te d'Ivoire",
"104": "Jamaica",
"105": "Japan",
"106": "Jordan",
"107": "Kazakstan",
"108": "Kenya",
"110": "Kiribati",
"111": "Korea, Republic of (South Korea)",
"112": "Korea, Democratic People's Republic of (North Korea)",
"113": "Kuwait",
"114": "Kyrgyzstan",
"115": "Latvia",
"116": "Lao People's Democratic Republic",
"117": "Lebanon",
"118": "Lesotho",
"119": "Liberia",
"120": "Lithuania",
"121": "Libyan Arab Jamahiriya",
"122": "Liechtenstein",
"123": "Luxembourg",
"124": "Macau",
"125": "Macedonia, The former Yugoslav Republic of",
"126": "Madagascar",
"127": "Malawi",
"128": "Malaysia",
"129": "Maldives",
"130": "Mali",
"131": "Malta",
"132": "Marshall Islands",
"133": "Martinique",
"134": "Mauritania",
"135": "Mauritius",
"136": "Mayotte",
"137": "Mexico",
"138": "Micronesia, Federated States of",
"139": "Moldova, Republic of",
"140": "Monaco",
"141": "Mongolia",
"142": "Montserrat",
"143": "Morocco",
"144": "Mozambique",
"145": "Myanmar",
"146": "Namibia",
"147": "Nauru",
"148": "Nepal",
"149": "Netherlands",
"150": "Netherlands Antilles (removed)",
"152": "New Caledonia",
"153": "New Zealand",
"154": "Nicaragua",
"155": "Niger",
"156": "Nigeria",
"157": "Niue",
"159": "Northern Mariana Islands",
"160": "Norway",
"161": "Oman",
"162": "Pakistan",
"163": "Palau",
"164": "Panama",
"165": "Papua New Guinea",
"166": "Paraguay",
"167": "Peru",
"168": "Philippines",
"169": "Poland",
"170": "Portugal",
"171": "Puerto Rico",
"172": "Qatar",
"173": "R�union",
"174": "Romania",
"175": "Russian Federation",
"176": "Rwanda",
"178": "San Marino",
"179": "Sao Tome and Principe",
"180": "Saudi Arabia",
"181": "Senegal",
"182": "Serbia",
"183": "Seychelles",
"184": "Sierra Leone",
"185": "Singapore",
"186": "Slovakia",
"187": "Slovenia",
"188": "Solomon Islands",
"189": "Somalia",
"190": "South Africa",
"191": "Spain",
"192": "Sri Lanka",
"193": "Saint Helena",
"194": "Saint Kitts and Nevis",
"195": "Saint Pierre and Miquelon",
"196": "Sudan",
"197": "Suriname",
"198": "Swaziland",
"199": "Sweden",
"200": "Switzerland",
"201": "Syrian Arab Republic",
"202": "French Polynesia",
"204": "Tajikistan",
"205": "Tanzania, United Republic of",
"206": "Thailand",
"207": "Togo",
"208": "Tokelau",
"209": "Tonga",
"210": "Trinidad and Tobago",
"211": "Tunisia",
"212": "Turkey",
"213": "Turkmenistan",
"214": "Tuvalu",
"215": "Uganda",
"216": "Ukraine",
"217": "United Arab Emirates",
"218": "United Kingdom",
"219": "Uruguay",
"220": "United States",
"221": "Uzbekistan",
"222": "Vanuatu",
"223": "Holy See (Vatican City State)",
"224": "Venezuela",
"225": "Viet Nam",
"226": "Virgin Islands, U.S.",
"227": "Wallis and Futuna",
"228": "Samoa",
"231": "Yugoslavia (removed)",
"232": "Congo-Kinshasa",
"233": "Zambia",
"234": "Zimbabwe",
"235": "Yemen",
"236": "�land Islands",
"237": "Antarctica",
"238": "Bouvet Island",
"239": "Guadeloupe",
"240": "Guernsey",
"241": "Heard Island and McDonald Islands",
"242": "Montenegro",
"243": "Norfolk Island",
"244": "Palestinian Territory, Occupied",
"245": "East Timor",
"246": "Isle of Man",
"247": "Jersey",
"248": "Pitcairn",
"249": "Saint Barth�lemy",
"250": "Saint Lucia",
"251": "Saint Martin",
"252": "Saint Vincent and the Grenadines",
"253": "South Georgia and the South Sandwich Islands",
"254": "Svalbard and Jan Mayen",
"255": "Turks and Caicos Islands",
"256": "Western Sahara",
"257": "United States Minor Outlying Islands",
"258": "French Southern territories",
"259": "Christmas Island",
"260": "Cocos (Keeling) Islands",
"261": "Cura�ao",
"262": "Sint Maarten (Part of Netherlands)",
"263": "Bonaire, Sint Eustatius and Saba",
"264": "South Sudan",
"1000": "Other"
},
"format": "Enumeration values.Location.CountryId",
"caption": "Country"
},
"email": {
"format": "emaillink",
"caption": "Email"
},
"secondaryCountry": {
"values": {
"0": "-",
"1": "Afghanistan",
"2": "Albania",
"3": "Algeria",
"4": "American Samoa",
"5": "Andorra",
"6": "Angola",
"7": "Anguilla",
"8": "Antigua and Barbuda",
"9": "Argentina",
"10": "Armenia",
"11": "Aruba",
"13": "Australia",
"15": "Austria",
"16": "Azerbaijan",
"17": "Bahamas",
"18": "Barbados",
"19": "Bahrain",
"20": "Bangladesh",
"21": "Belarus",
"22": "Belgium",
"23": "Belize",
"24": "Benin",
"25": "Bermuda",
"26": "Bhutan",
"27": "Virgin Islands, British",
"28": "Bolivia",
"29": "Bosnia and Herzegovina",
"30": "Botswana",
"31": "Brazil",
"33": "Brunei Darussalam",
"34": "Bulgaria",
"35": "Burkina Faso",
"36": "Burundi",
"37": "Cambodia",
"38": "Cameroon",
"39": "Canada",
"40": "Cape Verde",
"42": "Cayman Islands",
"44": "Central African Republic",
"45": "Chad",
"46": "Chile",
"47": "China",
"48": "Taiwan, Province of China",
"49": "Colombia",
"50": "Comoros",
"51": "Congo-Brazzaville",
"52": "Cook Islands",
"53": "Costa Rica",
"54": "Croatia",
"55": "Cuba",
"56": "Cyprus",
"57": "Czech Republic",
"58": "Denmark",
"59": "British Indian Ocean Territory",
"60": "Dominica",
"61": "Dominican Republic",
"62": "Djibouti",
"63": "Ecuador",
"64": "Egypt",
"65": "El Salvador",
"66": "Equatorial Guinea",
"67": "Eritrea",
"68": "Estonia",
"69": "Ethiopia",
"70": "Falkland Islands (Malvinas)",
"71": "Faroe Islands",
"72": "Fiji",
"73": "Finland",
"74": "France",
"76": "French Guiana",
"77": "Gabon",
"78": "Gambia",
"79": "Georgia",
"80": "Germany",
"81": "Ghana",
"82": "Gibraltar",
"83": "Greece",
"84": "Greenland",
"85": "Grenada",
"86": "Guam",
"87": "Guatemala",
"88": "Guinea",
"89": "Guinea-Bissau",
"90": "Guyana",
"91": "Haiti",
"92": "Honduras",
"93": "Hong Kong",
"94": "Hungary",
"95": "Iceland",
"96": "India",
"97": "Indonesia",
"98": "Iran, Islamic Republic of",
"99": "Iraq",
"100": "Ireland",
"101": "Israel",
"102": "Italy",
"103": "C�te d'Ivoire",
"104": "Jamaica",
"105": "Japan",
"106": "Jordan",
"107": "Kazakstan",
"108": "Kenya",
"110": "Kiribati",
"111": "Korea, Republic of (South Korea)",
"112": "Korea, Democratic People's Republic of (North Korea)",
"113": "Kuwait",
"114": "Kyrgyzstan",
"115": "Latvia",
"116": "Lao People's Democratic Republic",
"117": "Lebanon",
"118": "Lesotho",
"119": "Liberia",
"120": "Lithuania",
"121": "Libyan Arab Jamahiriya",
"122": "Liechtenstein",
"123": "Luxembourg",
"124": "Macau",
"125": "Macedonia, The former Yugoslav Republic of",
"126": "Madagascar",
"127": "Malawi",
"128": "Malaysia",
"129": "Maldives",
"130": "Mali",
"131": "Malta",
"132": "Marshall Islands",
"133": "Martinique",
"134": "Mauritania",
"135": "Mauritius",
"136": "Mayotte",
"137": "Mexico",
"138": "Micronesia, Federated States of",
"139": "Moldova, Republic of",
"140": "Monaco",
"141": "Mongolia",
"142": "Montserrat",
"143": "Morocco",
"144": "Mozambique",
"145": "Myanmar",
"146": "Namibia",
"147": "Nauru",
"148": "Nepal",
"149": "Netherlands",
"150": "Netherlands Antilles (removed)",
"152": "New Caledonia",
"153": "New Zealand",
"154": "Nicaragua",
"155": "Niger",
"156": "Nigeria",
"157": "Niue",
"159": "Northern Mariana Islands",
"160": "Norway",
"161": "Oman",
"162": "Pakistan",
"163": "Palau",
"164": "Panama",
"165": "Papua New Guinea",
"166": "Paraguay",
"167": "Peru",
"168": "Philippines",
"169": "Poland",
"170": "Portugal",
"171": "Puerto Rico",
"172": "Qatar",
"173": "R�union",
"174": "Romania",
"175": "Russian Federation",
"176": "Rwanda",
"178": "San Marino",
"179": "Sao Tome and Principe",
"180": "Saudi Arabia",
"181": "Senegal",
"182": "Serbia",
"183": "Seychelles",
"184": "Sierra Leone",
"185": "Singapore",
"186": "Slovakia",
"187": "Slovenia",
"188": "Solomon Islands",
"189": "Somalia",
"190": "South Africa",
"191": "Spain",
"192": "Sri Lanka",
"193": "Saint Helena",
"194": "Saint Kitts and Nevis",
"195": "Saint Pierre and Miquelon",
"196": "Sudan",
"197": "Suriname",
"198": "Swaziland",
"199": "Sweden",
"200": "Switzerland",
"201": "Syrian Arab Republic",
"202": "French Polynesia",
"204": "Tajikistan",
"205": "Tanzania, United Republic of",
"206": "Thailand",
"207": "Togo",
"208": "Tokelau",
"209": "Tonga",
"210": "Trinidad and Tobago",
"211": "Tunisia",
"212": "Turkey",
"213": "Turkmenistan",
"214": "Tuvalu",
"215": "Uganda",
"216": "Ukraine",
"217": "United Arab Emirates",
"218": "United Kingdom",
"219": "Uruguay",
"220": "United States",
"221": "Uzbekistan",
"222": "Vanuatu",
"223": "Holy See (Vatican City State)",
"224": "Venezuela",
"225": "Viet Nam",
"226": "Virgin Islands, U.S.",
"227": "Wallis and Futuna",
"228": "Samoa",
"231": "Yugoslavia (removed)",
"232": "Congo-Kinshasa",
"233": "Zambia",
"234": "Zimbabwe",
"235": "Yemen",
"236": "�land Islands",
"237": "Antarctica",
"238": "Bouvet Island",
"239": "Guadeloupe",
"240": "Guernsey",
"241": "Heard Island and McDonald Islands",
"242": "Montenegro",
"243": "Norfolk Island",
"244": "Palestinian Territory, Occupied",
"245": "East Timor",
"246": "Isle of Man",
"247": "Jersey",
"248": "Pitcairn",
"249": "Saint Barth�lemy",
"250": "Saint Lucia",
"251": "Saint Martin",
"252": "Saint Vincent and the Grenadines",
"253": "South Georgia and the South Sandwich Islands",
"254": "Svalbard and Jan Mayen",
"255": "Turks and Caicos Islands",
"256": "Western Sahara",
"257": "United States Minor Outlying Islands",
"258": "French Southern territories",
"259": "Christmas Island",
"260": "Cocos (Keeling) Islands",
"261": "Cura�ao",
"262": "Sint Maarten (Part of Netherlands)",
"263": "Bonaire, Sint Eustatius and Saba",
"264": "South Sudan",
"1000": "Other"
},
"format": "Enumeration values.Location.CountryId",
"caption": "Secondary country"
},
"website": {
"format": "weblink",
"caption": "Website"
},
"created": {
"format": "mediumdate",
"caption": "Created"
},
"accountType": {
"values": {
"0": "-",
"2": "Competitor",
"3": "Customer",
"4": "Private customer",
"5": "Investor",
"6": "Partner",
"8": "Prospect",
"9": "Reseller",
"10": "Other",
"11": "Vendor",
"12": "Subcontractor",
"100": "My company",
"110": "My company - other"
},
"format": "Enumeration values.Sales management.Accounts.Type",
"caption": "Account type"
},
"linkedIn": {
"format": "linkedin",
"caption": "fileicon(linkedin)"
},
"languageCode": {
"values": {
"de": "German",
"fi": "Finnish",
"sv": "Swedish",
"en": "English"
},
"format": "Enumeration values.Sales management.Contacts.Language",
"caption": "Language"
},
"passive": {
"values": {
"0": "Active",
"1": "Inactive"
},
"format": "Enumeration values.Sales management.Contacts.Status",
"caption": "Status"
},
"primaryPhone": {
"format": "text",
"caption": "Primary phone"
},
"firstName": {
"format": "",
"caption": null
},
"mobilePhone": {
"format": "text",
"caption": "Mobile phone"
},
"createdBy": {
"format": "text",
"caption": "Created by"
},
"workPhone": {
"format": "text",
"caption": "Work phone"
},
"googleTalk": {
"format": "weblink",
"caption": "Google Hangouts"
},
"primaryAddress": {
"format": "text",
"caption": "Street address"
},
"account": {
"format": "text",
"caption": "Account.Id"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single contact in PlanMill.
View details of a single contact. See contacts/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Update an existing resource contact to PlanMill. See contacts/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Remove a contact from PlanMill.
get /contacts/{contact_id}
View details of a single contact. See contacts/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- contact_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- lastName: (string - maxLength: 80)
Last name of a contact
- firstName: (string - maxLength: 80)
First name of a contact
- title: (union of string or nil)
Title of contact
- department: (union of string or nil)
Contact's department
- account: (integer)
Id of contact's account
- accountName: (union of string or nil)
Account name of contact
- languageCode: (union of string or nil)
Language code
- workPhone: (union of string or nil)
- mobilePhone: (union of string or nil)
- email: (union of email or emptystring or nil)
Contact specific email address
- secondaryEmail: (union of email or emptystring or nil)
- passive: (integer)
Contact status can be active or passive. 0=Active 1=InActive
- secondaryDepartment: (union of string or nil)
Contact's secondary department
- secondaryAddress: (union of string or nil)
Contact specific address
- secondaryPostalCode: (union of string or nil)
- secondaryCity: (union of string or nil)
- secondaryState: (union of string or nil)
- secondaryCountry: (union of integer or nil)
- campaigns: (union of integer or nil)
- skype: (union of string or nil)
Contact's skype name
- googleTalk: (union of string or nil)
Contact's google talk address
- linkedIn: (union of string or nil)
Contact's linkedIn address
- twitter: (union of string or nil)
Contact's twitter account name
- facebook: (union of string or nil)
Contact's facebook address
- blog: (union of string or nil)
Contact's blog
- description: (union of string or nil)
Contact's description
- id: (integer)
Contact (internal) id
- primaryDepartment: (union of string or nil)
Contact's primary department
- primaryAddress: (union of string or nil)
Address of contact's account
- primaryPostalCode: (union of string or nil)
- primaryCity: (union of string or nil)
- primaryState: (union of string or nil)
- primaryCountry: (union of integer or nil)
Example:
{
"lastName": "Tester",
"secondaryAddress": null,
"secondaryEmail": "",
"primaryPostalCode": "00020",
"accountName": "PlanMill Oy",
"description": null,
"title": "Software Engineer",
"blog": "http://www.blog.com",
"primaryCity": "NORDEA",
"secondaryPostalCode": null,
"skype": "skpe_id",
"twitter": "http://www.twitter.com",
"campaigns": null,
"primaryDepartment": "",
"id": 1634,
"secondaryCity": null,
"department": "Software Development",
"primaryCountry": 73,
"email": "mikko.tester@planmill.com",
"secondaryCountry": null,
"facebook": "http://www.facebook.com",
"secondaryState": null,
"linkedIn": "http://www.linkedin.com",
"languageCode": "en",
"passive": 0,
"firstName": "Mikko",
"mobilePhone": "+358-466-5556951",
"workPhone": "+358 10 322 9110",
"googleTalk": "gtalk_id",
"primaryAddress": "Myyntisaatavien palvelut",
"account": 51
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /contacts/{contact_id}
Update an existing resource contact to PlanMill. See contacts/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- contact_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: object
Properties- lastName: (string - maxLength: 80)
Last name of a contact
- firstName: (string - maxLength: 80)
First name of a contact
- title: (union of string or nil)
Title of contact
- department: (union of string or nil)
Contact's department
- account: (integer)
Id of contact's account
- accountName: (union of string or nil)
Account name of contact
- languageCode: (union of string or nil)
Language code
- workPhone: (union of string or nil)
- mobilePhone: (union of string or nil)
- email: (union of email or emptystring or nil)
Contact specific email address
- secondaryEmail: (union of email or emptystring or nil)
- passive: (integer)
Contact status can be active or passive. 0=Active 1=InActive
- secondaryDepartment: (union of string or nil)
Contact's secondary department
- secondaryAddress: (union of string or nil)
Contact specific address
- secondaryPostalCode: (union of string or nil)
- secondaryCity: (union of string or nil)
- secondaryState: (union of string or nil)
- secondaryCountry: (union of integer or nil)
- campaigns: (union of integer or nil)
- skype: (union of string or nil)
Contact's skype name
- googleTalk: (union of string or nil)
Contact's google talk address
- linkedIn: (union of string or nil)
Contact's linkedIn address
- twitter: (union of string or nil)
Contact's twitter account name
- facebook: (union of string or nil)
Contact's facebook address
- blog: (union of string or nil)
Contact's blog
- description: (union of string or nil)
Contact's description
Example:
{
"lastName": "Tester",
"secondaryAddress": null,
"secondaryEmail": "",
"accountName": "PlanMill Oy",
"description": null,
"title": "Software Engineer",
"blog": "http://www.blog.com",
"secondaryPostalCode": null,
"skype": "skpe_id",
"twitter": "http://www.twitter.com",
"campaigns": null,
"secondaryCity": null,
"department": "Software Development",
"email": "mikko.tester@planmill.com",
"secondaryCountry": null,
"facebook": "http://www.facebook.com",
"secondaryState": null,
"linkedIn": "http://www.linkedin.com",
"languageCode": "en",
"passive": 0,
"firstName": "Mikko",
"mobilePhone": "+358-466-5556951",
"workPhone": "+358 10 322 9110",
"googleTalk": "gtalk_id",
"account": 51
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /contacts/{contact_id}
Remove a contact from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- contact_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for the updatable fields of the contact
View details of a single meta.
get /contacts/{contact_id}/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- contact_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"request": {
"caption": "",
"format": "int",
"description": "",
"values": null
},
"private": {
"caption": "Private",
"format": "short",
"description": "",
"enumeration": "Enumeration values.Sales management.Actions.View status",
"values": {
"No": "0",
"Yes": "1"
}
},
"performers": {
"caption": "Performer(s)",
"values": {
"Admin, Test": "2833",
"testi, testi": "2981"
},
"format": "string",
"description": ""
},
"reminder": {
"caption": "Reminder",
"format": "short",
"description": "",
"maxlength": "80",
"enumeration": "Enumeration values.Sales management.Actions.Reminder",
"values": {
"14 days before due date": "5",
"No": "0",
"1 days before due date": "2",
"3 days before due date": "3",
"7 days before due date": "4",
"Same day as due date": "1",
"30 days before due date": "6"
}
},
"subject": {
"caption": "Subject",
"format": "string",
"description": "",
"maxlength": "255",
"values": null
},
"dueDate": {
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"caption": "Due date",
"format": "string",
"description": "",
"maxlength": "10",
"values": null
},
"start": {
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"caption": "Start date",
"format": "string",
"description": "",
"maxlength": "10",
"values": null
},
"description": {
"caption": "",
"format": "string",
"description": "",
"values": null
},
"project": {
"caption": "",
"format": "int",
"description": "",
"values": null
},
"opportunity": {
"caption": "",
"format": "int",
"description": "",
"values": null
},
"type": {
"caption": "Type",
"format": "short",
"description": "",
"enumeration": "Enumeration values.Sales management.Actions.Type",
"values": {
"Call": "1",
"To do": "10",
"Demo": "3",
"Email": "4",
"Meeting": "7",
"Webinar": "11",
"Correspondence": "2",
"Event": "5",
"Fax": "6",
"Presentation": "9",
"-": "0"
}
},
"priority": {
"caption": "Priority",
"format": "short",
"description": "",
"enumeration": "Enumeration values.Sales management.Actions.Priority",
"values": {
"1. High": "1",
"3. Low": "3",
"2. Medium": "2"
}
},
"salesOrder": {
"caption": "",
"format": "int",
"description": "",
"values": null
},
"responsible": {
"caption": "Responsible person",
"values": {
"Admin, Test": 2833,
"testi, testi": "2801981"
},
"format": "int",
"description": ""
},
"contact": {
"caption": "",
"format": "int",
"description": "",
"values": null
},
"campaign": {
"caption": "",
"format": "int",
"description": "",
"values": null
},
"location": {
"caption": "Location",
"format": "string",
"description": "",
"maxlength": "255",
"values": null
},
"id": {
"caption": "",
"format": "int",
"description": "",
"values": null
},
"status": {
"caption": "Status",
"format": "short",
"description": "",
"enumeration": "Enumeration values.Sales management.Actions.Status",
"values": {
"3. In progress - waiting for more info": "2",
"5. Completed": "40",
"4. Suspended": "3",
"1. Received": "0",
"2. In progress": "1"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available attachments in PlanMill. This is a read-only collection.
Get a list of attachments
get /contacts/{contact_id}/attachments
Get a list of attachments
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- contact_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
[
{
"size": 8497,
"createdBy": 50,
"created": "2022-01-13T13:05:10.837+0200",
"name": "attached_file_test.txt",
"modified": "2022-01-13T13:18:25.353+0200",
"id": 1543
},
{
"size": 146169,
"createdBy": 50,
"created": "2022-01-13T13:18:25.353+0200",
"name": "attached_file.txt",
"modified": "2022-01-13T13:18:25.353+0200",
"id": 1545
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Attach existing file to user.( Tips use file id from api/1.5/tempfile )
put /contacts/{contact_id}/attachments/{attachment_id}
Attach existing file to user.( Tips use file id from api/1.5/tempfile )
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- contact_id: required(string)
- attachment_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/contracts
Collection of available contracts in PlanMill. See contracts/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Get a list of contracts. See contracts/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
To add a new contract. See contracts/meta for list of columns and formats.
get /contracts
Get a list of contracts. See contracts/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- interval?: (string)
Interval type, e.g. start, finish, created, or modified. It is required in combination with intervalstart or intervalfinish
- intervalstart?: (string)
Start date of the interval in UTC format, intervalfinish required
Example:
2019-03-01T00:00:00.000+0200
- intervalfinish?: (string)
Finish date of the interval in UTC format, intervalstart required
Example:
2019-03-01T00:00:00.000+0200
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (string)
Sorts the results using string that is a JSON attribute
HTTP status code 200
Body
Media type: application/json
Type: array of contract_getId
Items: contract_getId
- contactId: (integer)
Unique identifier of the contact person of the contract
- customerId: (union of integer or nil)
Unique identifier of the customer of the contract
- customerName: (union of string or nil)
Name of the customer of the contract
- description: (union of string or nil)
Description of the contract
- name: (string)
Name of the contract
- operationalId: (union of integer or string or nil)
Operational Id of the contract
- opportunityId: (union of integer or nil)
Unique identifier of the opportunity of the contract
- projectId: (union of integer or nil)
Unique identifier of the project of the contract
- responsibleId: (union of integer or nil)
Unique identifier of the responsable user of the contract
- status: (union of integer or nil)
Status integer code of contract.
- supplierId: (union of integer or nil)
Unique identifier of the contact person of the supplier of the contract
- termOfNotice: (union of integer or nil)
Term of Notice integer code of contract in days
- type: (union of integer or nil)
Type integer code of the contract
- validFrom: required(datetime)
Start of validity period of the contract
- validUntil: (union of datetime or nil)
End of validity period of the contract
- id: required(integer)
Unique identifier of the contract
- created: required(datetime)
When contract was created
- createdBy: required(integer)
Unique identifier of the user who created the contract
- modified: (union of datetime or nil)
When contract was last time modified
- modifiedBy: (union of integer or nil)
Unique identifier of the user who modified contract last time
Example:
[
{
"contactId": 356,
"created": "2023-12-07T00:00:00.000+0200",
"createdBy": 356,
"description": "<p>Test description</p>",
"id": 1701,
"name": "Test contract",
"operationalId": 834,
"opportunityId": 1546,
"projectId": 213,
"responsibleId": 356,
"status": 10,
"supplierId": 356,
"termOfNotice": 30,
"type": 3,
"validFrom": "2023-12-07T00:00:00.000+0200",
"validUntil": "2023-12-28T00:00:00.000+0200"
},
{
"contactId": 356,
"created": "2023-12-08T00:00:00.000+0200",
"createdBy": 356,
"description": "<p>Description of second contract</p>",
"id": 1702,
"name": "Second est contract",
"operationalId": 900,
"opportunityId": 1646,
"projectId": 213,
"responsibleId": 356,
"status": 10,
"supplierId": 356,
"termOfNotice": 10,
"type": 3,
"validFrom": "2023-12-08T00:00:00.000+0200",
"validUntil": "2023-12-27T00:00:00.000+0200"
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /contracts
To add a new contract. See contracts/meta for list of columns and formats.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: object
Properties- contactId: (integer)
Unique identifier of the contact person of the contract
- customerId: (union of integer or nil)
Unique identifier of the customer of the contract
- customerName: (union of string or nil)
Name of the customer of the contract
- description: (union of string or nil)
Description of the contract
- name: (string)
Name of the contract
- operationalId: (union of integer or string or nil)
Operational Id of the contract
- opportunityId: (union of integer or nil)
Unique identifier of the opportunity of the contract
- projectId: (union of integer or nil)
Unique identifier of the project of the contract
- responsibleId: (union of integer or nil)
Unique identifier of the responsable user of the contract
- status: (union of integer or nil)
Status integer code of contract.
- supplierId: (union of integer or nil)
Unique identifier of the contact person of the supplier of the contract
- termOfNotice: (union of integer or nil)
Term of Notice integer code of contract in days
- type: (union of integer or nil)
Type integer code of the contract
- validFrom: required(datetime)
Start of validity period of the contract
- validUntil: (union of datetime or nil)
End of validity period of the contract
- id: (integer)
Unique identifier of the contract
Example:
{
"contactId": 356,
"description": "<p>Test description</p>",
"name": "Test contract",
"operationalId": 834,
"opportunityId": 1546,
"projectId": 213,
"responsibleId": 356,
"supplierId": 356,
"status": 10,
"termOfNotice": 30,
"type": 3,
"validFrom": "2023-12-07T00:00:00.000+0200",
"validUntil": "2023-12-28T00:00:00.000+0200",
"id": 1580,
"created": "2023-12-07T00:00:00.000+0200",
"createdBy": 356,
"modified": "2023-12-08T00:00:00.000+0200",
"modifiedBy": 356
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for contracts. Includes resource's fields names and type and related filters
View details of a single meta.
get /contracts/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"filters": [
{
"type": "string",
"name": "searchkey",
"caption": ""
},
{
"type": "string",
"name": "viewby",
"value": "0",
"caption": "View by",
"values": {
"0": "My contracts",
"1": "My team's contracts",
"2": "All contracts",
"3": "All valid contracts",
"4": "All invalid contracts"
}
},
{
"type": "interval",
"name": "interval",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"values": {
"Contract.ValidUntil": "Valid until",
"Contract.SignedDate": "Signed date",
"Contract.ValidFrom": "Valid from",
"Contract.Modified": "Modified",
"Contract.Created": "Created"
}
},
{
"type": "string",
"name": "rowcount",
"value": "100",
"caption": "Rows",
"values": {
"100": "100",
"25": "25",
"50": "50",
"150": "150",
"250": "250",
"75": "75"
}
},
{
"type": "multivalue",
"name": "Contract.ResponsibleId",
"value": "-1",
"caption": "Responsible person",
"values": {
"-1": "All",
"356": "User (update), First",
"50": "PlanMill, Maintenance-user (Inactive)"
}
},
{
"type": "multivalue",
"name": "status",
"value": "-1",
"caption": "Status",
"values": {
"-1": "All",
"10": "1. Draft"
}
},
{
"type": "multivalue",
"name": "customerId",
"value": "-1",
"caption": "Customer",
"values": {
"353": "Your organisation legal trading name (update)",
"-1": "All"
}
},
{
"type": "multivalue",
"name": "Supplier.Id",
"value": "-1",
"caption": "Supplier",
"values": {
"-1": "All",
"51": "PlanMill Oy"
}
},
{
"type": "multivalue",
"name": "type",
"value": "-1",
"caption": "Type",
"values": {
"3": "Sales contract",
"-1": "All"
}
},
{
"type": "multivalue",
"name": "ProductName",
"value": "-1",
"caption": "Product",
"values": {
"-1": "All"
}
}
],
"fields": {
"supplierId": {
"format": "",
"caption": ""
},
"contactId": {
"format": "",
"caption": ""
},
"created": {
"format": "mediumdate",
"caption": "Created"
},
"description": {
"format": "",
"caption": ""
},
"validFrom": {
"format": "mediumdate",
"caption": "Valid from"
},
"type": {
"values": {
"1": "NDA",
"2": "SLA",
"3": "Sales contract",
"-1": "-",
"4": "Delivery contract",
"5": "Purchase agreement",
"6": "Continuous services",
"7": "Frame agreement",
"8": "Finance agreement"
},
"format": "Enumeration values.Sales management.Contracts.Type",
"caption": "Type"
},
"operationalId": {
"format": "text",
"caption": "Contract ID"
},
"termOfNotice": {
"values": {
"1080": "3 Years",
"14": "14 Days",
"-1": "-",
"1440": "4 Years",
"180": "6 Months",
"150": "5 Months",
"360": "12 Months",
"120": "4 Months",
"1800": "5 Years",
"540": "18 Months",
"720": "2 Years",
"7": "7 Days",
"90": "3 Months",
"60": "2 Months",
"30": "30 Days"
},
"format": "Enumeration values.Sales management.Contracts.TermOfNotice",
"caption": "Term of notice"
},
"customerName": {
"format": "text",
"caption": "Customer"
},
"opportunityId": {
"format": "",
"caption": ""
},
"createdBy": {
"format": "",
"caption": ""
},
"name": {
"format": "text",
"caption": "Name"
},
"customerId": {
"format": "",
"caption": "Customer Internal ID"
},
"validUntil": {
"format": "shortdate",
"caption": "Valid until"
},
"modified": {
"format": "mediumdate",
"caption": "Modified"
},
"responsibleId": {
"format": "",
"caption": "Responsible person Internal ID"
},
"modifiedBy": {
"format": "",
"caption": ""
},
"id": {
"format": "text",
"caption": "Contract.Id"
},
"projectId": {
"format": "",
"caption": ""
},
"status": {
"values": {
"70": "7. Terminated",
"60": "6. Unsigned",
"50": "5. Signed",
"40": "4. Rejected",
"30": "3. Accepted",
"20": "2. Ready for acceptance",
"10": "1. Draft"
},
"format": "Enumeration values.Sales management.Contracts.Status",
"caption": "Status"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single contract in PlanMill.
View details of a single contract. See contracts/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Update an existing resource contract to PlanMill. See contracts/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Remove a contract from PlanMill.
get /contracts/{contract_id}
View details of a single contract. See contracts/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- contract_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- contactId: (integer)
Unique identifier of the contact person of the contract
- customerId: (union of integer or nil)
Unique identifier of the customer of the contract
- customerName: (union of string or nil)
Name of the customer of the contract
- description: (union of string or nil)
Description of the contract
- name: (string)
Name of the contract
- operationalId: (union of integer or string or nil)
Operational Id of the contract
- opportunityId: (union of integer or nil)
Unique identifier of the opportunity of the contract
- projectId: (union of integer or nil)
Unique identifier of the project of the contract
- responsibleId: (union of integer or nil)
Unique identifier of the responsable user of the contract
- status: (union of integer or nil)
Status integer code of contract.
- supplierId: (union of integer or nil)
Unique identifier of the contact person of the supplier of the contract
- termOfNotice: (union of integer or nil)
Term of Notice integer code of contract in days
- type: (union of integer or nil)
Type integer code of the contract
- validFrom: required(datetime)
Start of validity period of the contract
- validUntil: (union of datetime or nil)
End of validity period of the contract
- id: required(integer)
Unique identifier of the contract
- created: required(datetime)
When contract was created
- createdBy: required(integer)
Unique identifier of the user who created the contract
- modified: (union of datetime or nil)
When contract was last time modified
- modifiedBy: (union of integer or nil)
Unique identifier of the user who modified contract last time
Example:
{
"contactId": 356,
"description": "<p>Test description</p>",
"name": "Test contract",
"operationalId": 834,
"opportunityId": 1546,
"projectId": 213,
"responsibleId": 356,
"supplierId": 356,
"status": 10,
"termOfNotice": 30,
"type": 3,
"validFrom": "2023-12-07T00:00:00.000+0200",
"validUntil": "2023-12-28T00:00:00.000+0200",
"id": 1580,
"created": "2023-12-07T00:00:00.000+0200",
"createdBy": 356,
"modified": "2023-12-08T00:00:00.000+0200",
"modifiedBy": 356
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /contracts/{contract_id}
Update an existing resource contract to PlanMill. See contracts/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- contract_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: object
Properties- contactId: (integer)
Unique identifier of the contact person of the contract
- customerId: (union of integer or nil)
Unique identifier of the customer of the contract
- customerName: (union of string or nil)
Name of the customer of the contract
- description: (union of string or nil)
Description of the contract
- name: (string)
Name of the contract
- operationalId: (union of integer or string or nil)
Operational Id of the contract
- opportunityId: (union of integer or nil)
Unique identifier of the opportunity of the contract
- projectId: (union of integer or nil)
Unique identifier of the project of the contract
- responsibleId: (union of integer or nil)
Unique identifier of the responsable user of the contract
- status: (union of integer or nil)
Status integer code of contract.
- supplierId: (union of integer or nil)
Unique identifier of the contact person of the supplier of the contract
- termOfNotice: (union of integer or nil)
Term of Notice integer code of contract in days
- type: (union of integer or nil)
Type integer code of the contract
- validFrom: required(datetime)
Start of validity period of the contract
- validUntil: (union of datetime or nil)
End of validity period of the contract
Example:
{
"contactId": 356,
"description": "<p>Test description</p>",
"name": "Test contract",
"operationalId": 835,
"projectId": 213,
"responsibleId": 356,
"status": 10,
"supplierId": 356,
"termOfNotice": 30,
"type": 3,
"validFrom": "2023-12-07T00:00:00.000+0200",
"validUntil": "2023-12-28T00:00:00.000+0200"
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /contracts/{contract_id}
Remove a contract from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- contract_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for the updatable fields of the contract
View details of a single meta.
get /contracts/{contract_id}/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- contract_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"supplierId": {
"type": "string",
"caption": "",
"format": "int",
"description": "",
"values": null
},
"contactId": {
"type": "string",
"caption": "",
"format": "int",
"description": "",
"values": null
},
"created": {
"type": "string",
"caption": "",
"format": "string",
"description": "",
"values": null
},
"description": {
"type": "string",
"caption": "",
"format": "string",
"description": "",
"values": null
},
"validFrom": {
"type": "string",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"caption": "Valid from",
"format": "string",
"description": "",
"values": null
},
"operationalId": {
"type": "string",
"caption": "Contract ID",
"format": "string",
"description": "",
"maxlength": "100",
"values": null
},
"type": {
"type": "string",
"caption": "Type",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Sales management.Contracts.Type",
"values": {
"Continuous services": "6",
"SLA": "2",
"NDA": "1",
"Frame agreement": "7",
"Sales contract": "3",
"-": "-1",
"Purchase agreement": "5",
"Finance agreement": "8",
"Delivery contract": "4"
}
},
"termOfNotice": {
"type": "string",
"value": "30",
"caption": "Term of notice",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Sales management.Contracts.TermOfNotice",
"values": {
"2 Years": "720",
"12 Months": "360",
"14 Days": "14",
"5 Months": "150",
"6 Months": "180",
"4 Months": "120",
"3 Years": "1080",
"-": "-1",
"5 Years": "1800",
"30 Days": "30",
"2 Months": "60",
"3 Months": "90",
"18 Months": "540",
"7 Days": "7",
"4 Years": "1440"
}
},
"customerName": {
"type": "string",
"caption": "Customer",
"format": "string",
"description": "",
"values": null
},
"opportunityId": {
"type": "string",
"caption": "",
"format": "int",
"description": "",
"values": null
},
"createdBy": {
"type": "string",
"caption": "",
"format": "int",
"description": "",
"values": null
},
"name": {
"type": "string",
"caption": "Name",
"format": "string",
"description": "",
"maxlength": "255",
"values": null
},
"customerId": {
"type": "string",
"caption": "",
"format": "int",
"description": "",
"values": null
},
"validUntil": {
"type": "string",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"caption": "Valid until",
"format": "string",
"description": "",
"values": null
},
"modified": {
"type": "string",
"caption": "",
"format": "string",
"description": "",
"values": null
},
"responsibleId": {
"type": "string",
"caption": "Responsible person",
"values": {
"356": "User (update), First",
"User (update), First": 356
},
"format": "int",
"description": ""
},
"modifiedBy": {
"type": "string",
"caption": "",
"format": "int",
"description": "",
"values": null
},
"id": {
"type": "string",
"caption": "",
"format": "int",
"description": "",
"values": null
},
"projectId": {
"type": "string",
"caption": "",
"format": "int",
"description": "",
"values": null
},
"status": {
"type": "string",
"caption": "Status",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Sales management.Contracts.Status",
"values": {
"5. Signed": "50",
"3. Accepted": "30",
"2. Ready for acceptance": "20",
"1. Draft": "10",
"6. Unsigned": "60",
"7. Terminated": "70",
"4. Rejected": "40"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single contractitem in PlanMill. This is a read-only item.
View details of a single contractitem.
get /contracts/{contract_id}/contractitems
View details of a single contractitem.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- contract_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: array of contractitem
Items: contractitem
- billingType: required(union of integer or nil)
Billing type of the contract item
- competenceId: (union of integer or nil)
Unique identifier of a competence related to the contract item
- contractId: required(integer)
Id of the contract of the item
- costCenter: (union of integer or nil)
Unique identifier of the cost center of the contract item
- currency: (union of integer or nil)
Currency conversion rate at the time of creation of the contract
- description: (union of string or nil)
Description of the contract
- discount: (union of number or nil)
Discount rate of the contract item
- id: required(integer)
Unique identifier of the contract
- invoiceProcess: (union of integer or nil)
Invoice process of the contract item
- invoicingPeriod: (union of integer or nil)
Invoicing period type of the contract item
- name: required(string)
Name of the contract item, usually product name
- operationalId: (union of integer or string or nil)
Operational Id of the contract item
- orderNumber: (union of integer or nil)
Sales orde number of the contract item
- orderStatus: (union of integer or nil)
Status of the corresponding sales order
- personId: (union of integer or nil)
Unique identifier of a person related to the contract item
- productId: (union of integer or nil)
Unique identifier of the product of the item
- quantity: (union of number or nil)
Quantity of the product in contract item
- revenueType: (union of integer or nil)
Revenue type of the contract item
- salesAccount: (union of integer or nil)
Sales account of the contract item
- sellingPrice: (union of number or nil)
Selling price of the contract item
- taskId: (union of integer or nil)
Unique identificator of the corresponding task
- unit: (union of integer or nil)
Unit of the product in contract item
- validFrom: required(string)
Start of validity period of the contract
- validUntil: (union of string or nil)
End of validity period of the contract
- created: (union of string or nil)
When contract was created
- createdBy: required(integer)
Unique identifier of the user who created the contract
- modified: (union of string or nil)
When contract was last time modified
- modifiedBy: (union of integer or nil)
Unique identifier of the user who modified contract last time
- warrantyPeriod: (union of integer or nil)
Warranty period of the contract item in days
- vat: (union of integer or nil)
VAT of the contract item
Example:
[
{
"productId": 1314,
"billingType": 1,
"competenceId": -1,
"costCenter": -1,
"contractId": 1558,
"created": "2023-12-15 11:13:39.6",
"createdBy": 356,
"description": "<p>Test description</p>",
"id": 2701,
"invoiceProcess": 2,
"invoicingPeriod": 110,
"modified": "2023-12-18 13:26:32.043",
"modifiedBy": 356,
"name": "Test contract item",
"operationalId": "",
"orderStatus": 10,
"quantity": 1,
"revenueType": 4,
"sellingPrice": 101,
"taskId": -1,
"unit": 3,
"vat": 24,
"validFrom": "2023-12-07T00:00:00.000+0200",
"validUntil": "2023-12-28T00:00:00.000+0200"
},
{
"productId": 1314,
"billingType": 1,
"competenceId": -1,
"costCenter": -1,
"contractId": 1558,
"created": "2023-12-15 11:14:39.6",
"createdBy": 356,
"description": "<p>Second test description</p>",
"id": 2702,
"invoiceProcess": 2,
"invoicingPeriod": 110,
"modified": "2023-12-18 13:28:32.043",
"modifiedBy": 356,
"name": "Second test contract item",
"operationalId": "",
"orderStatus": 10,
"quantity": 2,
"revenueType": 4,
"sellingPrice": 202,
"taskId": -1,
"unit": 3,
"vat": 24,
"validFrom": "2023-12-07T00:00:00.000+0200",
"validUntil": "2023-12-28T00:00:00.000+0200"
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/enumerations
Enumerations available in PlanMill
View details of a single enumeration.
get /enumerations
View details of a single enumeration.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- name: required(string)
Name of enumeration
Example:
Employee directory.Appraisals.Status
- section: required(string)
Category of enumeration
Example:
Employee directory.Appraisals
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"Enumeration values.Employee directory.Appraisals.Status": {
"10": "Preliminary",
"20": "Employee writes comments",
"30": "Ready for meeting",
"40": "Final version for comments",
"50": "Final version, requires additional discussion",
"60": "Final version, accepted"
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/exitcriteria
Kanban board exit criteria from PlanMill
Get a list of exitcriteria
get /exitcriteria
Get a list of exitcriteria
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"name": "Test exit criteria",
"boardlist": 4775,
"description": null,
"id": 4785
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single exitcriterion in PlanMill.
View details of single exit criteria
Update an existing resource exitcriterion to PlanMill. See exitcriteria/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Remove a exitcriterion from PlanMill.
get /exitcriteria/{exit_criteria_id}
View details of single exit criteria
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- exit_criteria_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: exitcriterion
Example:
{
"name": "Test exit criteria",
"boardlist": 4775,
"description": null,
"id": 4785
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /exitcriteria/{exit_criteria_id}
Update an existing resource exitcriterion to PlanMill. See exitcriteria/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- exit_criteria_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: exitcriterion
Example:
{
"name": "Test exit criteria",
"boardlist": 4775,
"description": null,
"id": 4785
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /exitcriteria/{exit_criteria_id}
Remove a exitcriterion from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- exit_criteria_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/exitcriteriastatuses
Kanban board exit criteria status from PlanMill
Get a list of exitcriteriastatuses
get /exitcriteriastatuses
Get a list of exitcriteriastatuses
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"id": 4722,
"exitCriterion": 4710,
"object": 4715,
"status": 2
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single exitcriteriastatus in PlanMill.
View details of single exit criteria status
Update an existing resource exitcriteriastatus to PlanMill. See exitcriteriastatuses/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Remove a exitcriteriastatus from PlanMill.
get /exitcriteriastatuses/{exit_criteria_status_id}
View details of single exit criteria status
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- exit_criteria_status_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: exitcriteriastatus
Example:
{
"id": 4722,
"exitCriterion": 4710,
"object": 4715,
"status": 2
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /exitcriteriastatuses/{exit_criteria_status_id}
Update an existing resource exitcriteriastatus to PlanMill. See exitcriteriastatuses/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- exit_criteria_status_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: exitcriteriastatus
Example:
{
"id": 4722,
"exitCriterion": 4710,
"object": 4715,
"status": 2
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /exitcriteriastatuses/{exit_criteria_status_id}
Remove a exitcriteriastatus from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- exit_criteria_status_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available comments in PlanMill. This is a read-only collection.
Get a list of comments
get /exitcriteriastatuses/{exit_criteria_status_id}/comments
Get a list of comments
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- exit_criteria_status_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
[
{
"personName": "Tester, Mikko",
"data": "API call comment test",
"person": 4600,
"created": "2015-09-22T00:29:02.260+0300",
"pictureLink": "",
"id": 4655
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/expenses
Collection of available expenses in PlanMill. See expenses/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Get a list of expenses. See expenses/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Add a new expense to PlanMill or update existing (if id is given). See expenses/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /expenses
Get a list of expenses. See expenses/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort: (string)
Sorts the results using string that is a JSON attribute
- interval: (string)
Interval type, e.g. start, finish, created, or modified. It is required in combination with intervalstart or intervalfinish
- intervalstart: (string)
Start date of the interval in UTC format, intervalfinish required
Example:
2021-08-05T00:00:00.000+0200
- intervalfinish: (string)
Finish date of the interval in UTC format, intervalstart required
Example:
2021-08-05T00:00:00.000+0200
HTTP status code 200
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all expense entities",
"oneOf": [
{
"type": "array",
"items": { "$ref": "#/definitions/expenseArray" }
},
{
"$ref": "#/definitions/expenseSingle"
}
],
"definitions": {
"expenseSingle": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal id of an expense"
},
"task": {
"type": "integer",
"description": "Id of an expense task"
},
"journey": {
"type": ["integer", "null"],
"description": "Id of an expense journey"
},
"acceptor": {
"type": ["integer", "null"],
"description": "Id of an expense acceptor person"
},
"name": {
"type": "string",
"description": "Name of an expense"
},
"expenseOwner": {
"type": "integer",
"description": "Owner of an expense"
},
"project": {
"type": "integer",
"description": "Id of an expense project"
},
"description": {
"type": ["string", "null"],
"description": "Description of an expense"
},
"currency": {
"type": ["string", "null"],
"description": "Id of a expense currency"
},
"type": {
"type": ["integer", "null"],
"description": "Type of an expense; 0=Travel, 7=Other, 10=Advanced payment"
},
"billableStatus": {
"type": "integer",
"description": "Billable status of an expense; 1=Billable, 3=Non-billable"
},
"currencyCode": {
"type": "string",
"description": "Currency code of an expense"
},
"status": {
"type": "string",
"description": "Status of an expense"
}
}
},
"expenseArray": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal ID of a time report"
},
"date": {
"type": ["string", "null"],
"description": "Date of creation of an expense"
},
"journey": {
"type": ["integer", "null"],
"description": "Id of a journey"
},
"description": {
"type": ["string", "null"],
"description": "Description of an expense"
},
"totalInclVAT": {
"type": ["number", "null"],
"description": ""
},
"project": {
"type": ["integer", "null"],
"description": "Id of a project"
},
"sentToBank": {
"type": ["integer", "null"],
"description": ""
},
"billableStatus": {
"type": "integer",
"description": "Billable status of an expense; 1=Billable, 3=Non-billable"
},
"type": {
"type": ["integer", "null"],
"description": "Type of an expense; 0=Travel, 7=Other, 10=Advanced payment"
},
"name": {
"type": "string",
"description": "Name of an expense"
},
"modified": {
"type": ["string", "null"],
"description": "Date of modification of an expense"
},
"projectName": {
"type": ["string", "null"],
"description": "Name of a project"
},
"paymentDate": {
"type": ["string", "null"],
"description": ""
},
"debt": {
"type": ["number", "null"],
"description": ""
},
"status": {
"type": "integer",
"description": "Status of an expense"
}
}
}
}
}
Example:
[
{
"date": "2016-03-04T00:00:00.000+0200",
"journey": null,
"description": "example expense 2",
"totalInclVAT": 10,
"project": 2969,
"sentToBank": null,
"billableStatus": 3,
"type": 7,
"name": "test expense 2",
"modified": "2016-03-02T11:51:08.383+0200",
"id": 2983,
"projectName": "test project - expense",
"paymentDate": null,
"debt": 10,
"status": 0,
"expenseOwner": 356
},
{
"date": "2016-03-02T00:00:00.000+0200",
"journey": 2975,
"description": "example expense",
"totalInclVAT": 288.45,
"project": 2969,
"sentToBank": null,
"billableStatus": 3,
"type": 0,
"name": "test expense",
"modified": "2016-03-02T11:43:02.813+0200",
"id": 2972,
"projectName": "test project - expense",
"paymentDate": null,
"debt": 288.45,
"status": 2,
"expenseOwner": 356
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /expenses
Add a new expense to PlanMill or update existing (if id is given). See expenses/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all expense entities",
"oneOf": [
{
"type": "array",
"items": { "$ref": "#/definitions/expenseArray" }
},
{
"$ref": "#/definitions/expenseSingle"
}
],
"definitions": {
"expenseSingle": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal id of an expense"
},
"task": {
"type": "integer",
"description": "Id of an expense task"
},
"journey": {
"type": ["integer", "null"],
"description": "Id of an expense journey"
},
"acceptor": {
"type": ["integer", "null"],
"description": "Id of an expense acceptor person"
},
"name": {
"type": "string",
"description": "Name of an expense"
},
"expenseOwner": {
"type": "integer",
"description": "Owner of an expense"
},
"project": {
"type": "integer",
"description": "Id of an expense project"
},
"description": {
"type": ["string", "null"],
"description": "Description of an expense"
},
"currency": {
"type": ["string", "null"],
"description": "Id of a expense currency"
},
"type": {
"type": ["integer", "null"],
"description": "Type of an expense; 0=Travel, 7=Other, 10=Advanced payment"
},
"billableStatus": {
"type": "integer",
"description": "Billable status of an expense; 1=Billable, 3=Non-billable"
},
"currencyCode": {
"type": "string",
"description": "Currency code of an expense"
},
"status": {
"type": "string",
"description": "Status of an expense"
}
}
},
"expenseArray": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal ID of a time report"
},
"date": {
"type": ["string", "null"],
"description": "Date of creation of an expense"
},
"journey": {
"type": ["integer", "null"],
"description": "Id of a journey"
},
"description": {
"type": ["string", "null"],
"description": "Description of an expense"
},
"totalInclVAT": {
"type": ["number", "null"],
"description": ""
},
"project": {
"type": ["integer", "null"],
"description": "Id of a project"
},
"sentToBank": {
"type": ["integer", "null"],
"description": ""
},
"billableStatus": {
"type": "integer",
"description": "Billable status of an expense; 1=Billable, 3=Non-billable"
},
"type": {
"type": ["integer", "null"],
"description": "Type of an expense; 0=Travel, 7=Other, 10=Advanced payment"
},
"name": {
"type": "string",
"description": "Name of an expense"
},
"modified": {
"type": ["string", "null"],
"description": "Date of modification of an expense"
},
"projectName": {
"type": ["string", "null"],
"description": "Name of a project"
},
"paymentDate": {
"type": ["string", "null"],
"description": ""
},
"debt": {
"type": ["number", "null"],
"description": ""
},
"status": {
"type": "integer",
"description": "Status of an expense"
}
}
}
}
}
Example:
{
"journey": null,
"acceptor": null,
"project": 4210,
"description": "",
"type": 0,
"billableStatus": 3,
"task": -1,
"name": "test expense 1",
"expenseOwner": 2297,
"currency": "1",
"id": 4211,
"currencyCode": "EUR",
"status": 3
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for expenses. Includes resource's fields names and type and related filters
View details of a single meta.
get /expenses/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"filters": [
{
"name": "searchkey",
"caption": ""
},
{
"name": "status",
"caption": "Expense status",
"values": {
"0": "Preliminary",
"2": "Reported",
"3": "Inspected",
"4": "Accepted",
"6": "Paid",
"7": "Rejected",
"9": "Locked",
"-1": "All"
}
},
{
"name": "project",
"caption": "Project",
"values": {
"2969": "test project - expense",
"-1": "All"
}
},
{
"name": "period",
"caption": "Period",
"values": {
"0": "All",
"1": "This FQ",
"2": "Next FQ",
"3": "This and next FQ",
"4": "Last FQ",
"5": "This FY",
"6": "Next FY",
"7": "This and next FY",
"8": "Last FY",
"9": "This month",
"10": "Next month",
"11": "Last month",
"12": "Last 30 days",
"13": "Last 60 days",
"14": "Last 90 days",
"15": "Last 120 days",
"16": "Last 180 days",
"17": "Next 30 days",
"18": "Next 60 days",
"19": "Next 90 days",
"20": "Next 120 days",
"21": "Next 180 days",
"22": "This & last FQ",
"23": "This and last FY",
"24": "This and next month",
"25": "This and last month",
"26": "Last 14 days",
"30": "This week",
"31": "Last week",
"32": "This and last week",
"33": "Next week",
"34": "This and next week",
"40": "Today",
"41": "Yesterday",
"42": "Today and yesterday",
"43": "Tomorrow",
"44": "Today and tomorrow"
}
},
{
"name": "interval",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"values": {
"Expense.Created": "Created",
"Expense.Date": "Date",
"Expense.Modified": "Modified"
}
},
{
"name": "rowcount",
"caption": "Rows",
"values": {
"25": "25",
"50": "50",
"75": "75",
"100": "100",
"150": "150",
"250": "250"
}
},
{
"name": "type",
"caption": "Type",
"values": {
"0": "Travel",
"7": "Other",
"10": "Advance payment",
"-1": "All"
}
},
{
"name": "billableStatus",
"caption": "Billable status",
"values": {
"1": "Billable",
"3": "Non-billable",
"4": "In billing",
"5": "Draft invoice",
"6": "Invoiced",
"-1": "All"
}
}
],
"fields": {
"date": {
"format": "shortdate",
"caption": "Date"
},
"journey": {
"format": "text",
"caption": "Expense.JourneyId"
},
"description": {
"format": "text",
"caption": "Description"
},
"totalInclVAT": {
"format": "currency",
"caption": "Total incl. VAT"
},
"project": {
"format": "text",
"caption": "PMVProject.Id"
},
"sentToBank": {
"format": "Enumeration values.Finance control.Expense summary.Expenses.Sent status",
"caption": "Sent to bank"
},
"billableStatus": {
"format": "Enumeration values.Expense.Billable status",
"caption": "Billable status"
},
"type": {
"format": "Enumeration values.Expense.Type",
"caption": "Type"
},
"name": {
"format": "text",
"caption": "Purpose"
},
"modified": {
"format": "mediumdate",
"caption": "Modified"
},
"id": {
"format": "text",
"caption": "Expense.Id"
},
"projectName": {
"format": "text",
"caption": "Project"
},
"paymentDate": {
"format": "shortdate",
"caption": "Payment date"
},
"debt": {
"format": "currency",
"caption": "Outstanding debt"
},
"status": {
"format": "Enumeration values.Expense.Status",
"caption": "Status"
},
"expenseOwner": {
"format": "integer",
"caption": "PersonHasExpense"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single expense in PlanMill.
View details of a single expense. See expenses/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Update an existing resource expense to PlanMill. See expenses/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Remove a expense from PlanMill.
get /expenses/{expense_id}
View details of a single expense. See expenses/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- expense_id: required(string)
Headers
- Accept: (string)
Get expense in PDF format
Example:
Accept: application/pdf
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all expense entities",
"oneOf": [
{
"type": "array",
"items": { "$ref": "#/definitions/expenseArray" }
},
{
"$ref": "#/definitions/expenseSingle"
}
],
"definitions": {
"expenseSingle": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal id of an expense"
},
"task": {
"type": "integer",
"description": "Id of an expense task"
},
"journey": {
"type": ["integer", "null"],
"description": "Id of an expense journey"
},
"acceptor": {
"type": ["integer", "null"],
"description": "Id of an expense acceptor person"
},
"name": {
"type": "string",
"description": "Name of an expense"
},
"expenseOwner": {
"type": "integer",
"description": "Owner of an expense"
},
"project": {
"type": "integer",
"description": "Id of an expense project"
},
"description": {
"type": ["string", "null"],
"description": "Description of an expense"
},
"currency": {
"type": ["string", "null"],
"description": "Id of a expense currency"
},
"type": {
"type": ["integer", "null"],
"description": "Type of an expense; 0=Travel, 7=Other, 10=Advanced payment"
},
"billableStatus": {
"type": "integer",
"description": "Billable status of an expense; 1=Billable, 3=Non-billable"
},
"currencyCode": {
"type": "string",
"description": "Currency code of an expense"
},
"status": {
"type": "string",
"description": "Status of an expense"
}
}
},
"expenseArray": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal ID of a time report"
},
"date": {
"type": ["string", "null"],
"description": "Date of creation of an expense"
},
"journey": {
"type": ["integer", "null"],
"description": "Id of a journey"
},
"description": {
"type": ["string", "null"],
"description": "Description of an expense"
},
"totalInclVAT": {
"type": ["number", "null"],
"description": ""
},
"project": {
"type": ["integer", "null"],
"description": "Id of a project"
},
"sentToBank": {
"type": ["integer", "null"],
"description": ""
},
"billableStatus": {
"type": "integer",
"description": "Billable status of an expense; 1=Billable, 3=Non-billable"
},
"type": {
"type": ["integer", "null"],
"description": "Type of an expense; 0=Travel, 7=Other, 10=Advanced payment"
},
"name": {
"type": "string",
"description": "Name of an expense"
},
"modified": {
"type": ["string", "null"],
"description": "Date of modification of an expense"
},
"projectName": {
"type": ["string", "null"],
"description": "Name of a project"
},
"paymentDate": {
"type": ["string", "null"],
"description": ""
},
"debt": {
"type": ["number", "null"],
"description": ""
},
"status": {
"type": "integer",
"description": "Status of an expense"
}
}
}
}
}
Example:
{
"journey": null,
"acceptor": null,
"project": 4210,
"description": "",
"type": 0,
"billableStatus": 3,
"task": -1,
"name": "test expense 1",
"expenseOwner": 2297,
"currency": "1",
"id": 4211,
"currencyCode": "EUR",
"status": 3
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /expenses/{expense_id}
Update an existing resource expense to PlanMill. See expenses/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- expense_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all expense entities",
"oneOf": [
{
"type": "array",
"items": { "$ref": "#/definitions/expenseArray" }
},
{
"$ref": "#/definitions/expenseSingle"
}
],
"definitions": {
"expenseSingle": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal id of an expense"
},
"task": {
"type": "integer",
"description": "Id of an expense task"
},
"journey": {
"type": ["integer", "null"],
"description": "Id of an expense journey"
},
"acceptor": {
"type": ["integer", "null"],
"description": "Id of an expense acceptor person"
},
"name": {
"type": "string",
"description": "Name of an expense"
},
"expenseOwner": {
"type": "integer",
"description": "Owner of an expense"
},
"project": {
"type": "integer",
"description": "Id of an expense project"
},
"description": {
"type": ["string", "null"],
"description": "Description of an expense"
},
"currency": {
"type": ["string", "null"],
"description": "Id of a expense currency"
},
"type": {
"type": ["integer", "null"],
"description": "Type of an expense; 0=Travel, 7=Other, 10=Advanced payment"
},
"billableStatus": {
"type": "integer",
"description": "Billable status of an expense; 1=Billable, 3=Non-billable"
},
"currencyCode": {
"type": "string",
"description": "Currency code of an expense"
},
"status": {
"type": "string",
"description": "Status of an expense"
}
}
},
"expenseArray": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal ID of a time report"
},
"date": {
"type": ["string", "null"],
"description": "Date of creation of an expense"
},
"journey": {
"type": ["integer", "null"],
"description": "Id of a journey"
},
"description": {
"type": ["string", "null"],
"description": "Description of an expense"
},
"totalInclVAT": {
"type": ["number", "null"],
"description": ""
},
"project": {
"type": ["integer", "null"],
"description": "Id of a project"
},
"sentToBank": {
"type": ["integer", "null"],
"description": ""
},
"billableStatus": {
"type": "integer",
"description": "Billable status of an expense; 1=Billable, 3=Non-billable"
},
"type": {
"type": ["integer", "null"],
"description": "Type of an expense; 0=Travel, 7=Other, 10=Advanced payment"
},
"name": {
"type": "string",
"description": "Name of an expense"
},
"modified": {
"type": ["string", "null"],
"description": "Date of modification of an expense"
},
"projectName": {
"type": ["string", "null"],
"description": "Name of a project"
},
"paymentDate": {
"type": ["string", "null"],
"description": ""
},
"debt": {
"type": ["number", "null"],
"description": ""
},
"status": {
"type": "integer",
"description": "Status of an expense"
}
}
}
}
}
Example:
{
"journey": null,
"acceptor": null,
"project": 4210,
"description": "",
"type": 0,
"billableStatus": 3,
"task": -1,
"name": "test expense 1",
"expenseOwner": 2297,
"currency": "1",
"id": 4211,
"currencyCode": "EUR",
"status": 3
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /expenses/{expense_id}
Remove a expense from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- expense_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available items in PlanMill. See items/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Get a list of items. See items/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Add a new item to PlanMill or update existing (if id is given). See items/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /expenses/{expense_id}/items
Get a list of items. See items/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- expense_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (string)
Sorts the results using string that is a JSON attribute
- interval?: (string)
Interval type, e.g. start, finish, created, or modified. It is required in combination with intervalstart or intervalfinish
- intervalstart?: (string)
Start date of the interval in UTC format, intervalfinish required
Example:
2021-08-05T00:00:00.000+0200
- intervalfinish?: (string)
Finish date of the interval in UTC format, intervalstart required
Example:
2021-08-05T00:00:00.000+0200
HTTP status code 200
Body
Media type: application/json
Type: item
Example:
[
{
"quantity": 175,
"start": "2016-03-02T00:00:00.000+0200",
"vat": 0,
"description": "Private car + Passengers(1) (Hämeentie 19, Helsinki - Teekkarinkatu, Tampere)",
"type": 350,
"expense": 2972,
"unit": "km",
"exchangeRate": 1,
"advancePayment": 0,
"paymentMethod": 0,
"finish": null,
"id": 2986,
"debt": 1,
"currencyCode": "EUR"
},
{
"quantity": 1,
"start": "2016-03-02T00:00:00.000+0200",
"vat": null,
"description": "One night stay at Tampere hotel",
"type": 3,
"expense": 2972,
"unit": "-",
"exchangeRate": 1,
"advancePayment": 0,
"paymentMethod": 1,
"finish": "2016-03-03T00:00:00.000+0200",
"id": 2973,
"debt": 1,
"currencyCode": "EUR"
},
{
"quantity": 2,
"start": "2016-03-02T00:00:00.000+0200",
"vat": 0,
"description": "",
"type": 200,
"expense": 2972,
"unit": "-",
"exchangeRate": 1,
"advancePayment": 0,
"paymentMethod": 0,
"finish": "2016-03-03T00:00:00.000+0200",
"id": 2985,
"debt": 1,
"currencyCode": "EUR"
},
{
"quantity": 175,
"start": "2016-03-03T00:00:00.000+0200",
"vat": 0,
"description": "Private car + Passengers(1) (Teekkarinkatu, Tampere - Hämeentie 19, Helsinki)",
"type": 350,
"expense": 2972,
"unit": "km",
"exchangeRate": 1,
"advancePayment": 0,
"paymentMethod": 0,
"finish": null,
"id": 2987,
"debt": 1,
"currencyCode": "EUR"
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /expenses/{expense_id}/items
Add a new item to PlanMill or update existing (if id is given). See items/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- expense_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: item
Example:
{
"quantity": 1,
"start": "2016-03-02T00:00:00.000+0200",
"vat": null,
"description": "One night stay at Tampere hotel",
"type": 3,
"expense": 2972,
"typeCode": "",
"unit": "-",
"exchangeRate": 1,
"generated": "0",
"advancePayment": 0,
"paymentMethod": 1,
"finish": "2016-03-03T00:00:00.000+0200",
"currency": 1,
"id": 2973,
"debt": 1,
"currencyCode": "EUR",
"foreignCountryCode": ""
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single item in PlanMill.
View details of a single item. See items/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Update an existing resource item to PlanMill. See items/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Remove a item from PlanMill.
get /expenses/{expense_id}/items/{expense_item_id}
View details of a single item. See items/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- expense_id: required(string)
- expense_item_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: item
Example:
{
"quantity": 1,
"start": "2016-03-02T00:00:00.000+0200",
"vat": null,
"description": "One night stay at Tampere hotel",
"type": 3,
"expense": 2972,
"typeCode": "",
"unit": "-",
"exchangeRate": 1,
"generated": "0",
"advancePayment": 0,
"paymentMethod": 1,
"finish": "2016-03-03T00:00:00.000+0200",
"currency": 1,
"id": 2973,
"debt": 1,
"currencyCode": "EUR",
"foreignCountryCode": ""
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /expenses/{expense_id}/items/{expense_item_id}
Update an existing resource item to PlanMill. See items/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- expense_id: required(string)
- expense_item_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: item
Example:
{
"quantity": 1,
"start": "2016-03-02T00:00:00.000+0200",
"vat": null,
"description": "One night stay at Tampere hotel",
"type": 3,
"expense": 2972,
"typeCode": "",
"unit": "-",
"exchangeRate": 1,
"generated": "0",
"advancePayment": 0,
"paymentMethod": 1,
"finish": "2016-03-03T00:00:00.000+0200",
"currency": 1,
"id": 2973,
"debt": 1,
"currencyCode": "EUR",
"foreignCountryCode": ""
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /expenses/{expense_id}/items/{expense_item_id}
Remove a item from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- expense_id: required(string)
- expense_item_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for the updatable fields of the expense
View details of a single meta.
get /expenses/{expense_id}/items/{expense_item_id}/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- expense_id: required(string)
- expense_item_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"filters": null,
"fields": {
"quantity": {
"format": "number",
"caption": "QTY"
},
"start": {
"format": "mediumdate",
"caption": "Start"
},
"vat": {
"format": "number",
"caption": null
},
"description": {
"format": "text",
"caption": "Description"
},
"type": {
"format": "Expense sheet.XHTML.Single item.Types",
"caption": "Type"
},
"expense": {
"format": "number",
"caption": null
},
"unit": {
"format": null,
"caption": "Unit"
},
"exchangeRate": {
"format": "number",
"caption": "Exchange rate"
},
"advancePayment": {
"format": "number",
"caption": null
},
"paymentMethod": {
"format": "Enumeration values.Expense.Expense item payment",
"caption": "Payment"
},
"finish": {
"format": "mediumdate",
"caption": "Finish"
},
"id": {
"format": "number",
"caption": null
},
"debt": {
"format": "number",
"caption": null
},
"currencyCode": {
"format": "text",
"caption": null
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for the updatable fields of the expense
Get a list of meta
get /expenses/{expense_id}/items/meta
Get a list of meta
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- expense_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"quantity": {
"caption": "Quantity",
"format": "double",
"values": null
},
"start": {
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"caption": "Start",
"format": "string",
"maxlength": "10",
"values": null
},
"vat": {
"format": "float",
"values": null
},
"description": {
"caption": "Description",
"values": null
},
"type": {
"caption": "Type",
"values": {
"1": "Other- VAT 24 %",
"2": "Advance payment",
"3": "Accommodation",
"5": "Other",
"70": "Taxi",
"71": "Train",
"72": "Parking",
"73": "Air fare",
"74": "Public transport",
"80": "Representation",
"81": "Purchase",
"82": "Daily allowance - full day, Finland (2007)",
"83": "Daily allowance - partial day, Finland (2007-2008)",
"84": "Daily allowance, Sweden (2007)",
"85": "Daily allowance, Denmark (2007)",
"86": "Daily allowance, Norway (2007)",
"87": "Daily allowance, Austria (2007-2008)",
"89": "Daily allowance, Switzerland (2007-2008)",
"90": "Daily allowance, UK (2007)",
"91": "Daily allowance, USA (2009)",
"92": "Daily allowance, Other",
"93": "Car usage - private car (2007)",
"96": "Car usage - company car (2007)",
"97": "Car usage - passenger (2008)",
"98": "Motor bike usage (2007)",
"99": "Meal money (2007)",
"100": "Daily allowance - full day, Finland (2008)",
"101": "Daily allowance, Sweden (2008)",
"102": "Daily allowance, Denmark (2009)",
"103": "Daily allowance, Norway (2009)",
"104": "Daily allowance, Germany(2010)",
"105": "Daily allowance, UK (2009)",
"106": "Car usage - private car (2008)",
"107": "Car usage - company car (2008)",
"108": "Motor bike usage (2008)",
"109": "Meal money (2008)",
"110": "Daily allowance, Germany (2007)",
"112": "Daily allowance - full day, Finland (2009)",
"113": "Daily allowance - partial day, Finland(2012)",
"114": "Daily allowance, Sweden (2009)",
"115": "Daily allowance, Austria (2009)",
"116": "Daily allowance, Switzerland (2009)",
"117": "Car usage - private car (2010)",
"118": "Car usage - company car(2010)",
"119": "Car usage - passenger",
"120": "Motor bike usage(2011)",
"121": "Meal money (2009)",
"122": "Daily allowance - full day, Finland(2010)",
"123": "Meal money(2010)",
"124": "Car usage - limited car benefit(2011)",
"125": "Daily allowance, Denmark(2012)",
"126": "Daily allowance, Norway(2011)",
"127": "Daily allowance, UK(2010)",
"128": "Daily allowance, Sweden(2010)",
"129": "Daily allowance, Austria(2010)",
"130": "Daily allowance, Switzerland(2010)",
"131": "Daily allowance, USA(2012)",
"132": "Daily allowance - full day, Finland(2011)",
"133": "Meal money(2011)",
"134": "Car usage - private car(2011)",
"135": "Car usage - company car(2011)",
"136": "Daily allowance, Sweden(2012)",
"137": "Daily allowance, Germany(2011)",
"138": "Daily allowance, Switzerland(2011)",
"139": "Daily allowance, UK(2012)",
"140": "Daily allowance, Austria(2011)",
"141": "Daily allowance, UK London(2013)",
"143": "Motor bike usage(2012)",
"144": "Car usage - limited car benefit(2012)",
"145": "Daily allowance, Norway(2012)",
"146": "Daily allowance - full day, Finland(2012)",
"147": "Meal money(2012)",
"148": "Car usage - private car(2013)",
"149": "Car usage - company car(2013)",
"150": "Daily allowance, Germany",
"151": "Daily allowance, Switzerland(2012)",
"152": "Daily allowance, Austria",
"153": "Daily allowance - partial day, Finland(2013)",
"154": "Daily allowance - full day, Finland(2013)",
"155": "Daily allowance, Denmark",
"156": "Daily allowance, Norway(2013)",
"157": "Daily allowance, Sweden (2014)",
"158": "Daily allowance, Switzerland (2015)",
"159": "Daily allowance, UK(2013)",
"160": "Daily allowance, USA(2013)",
"161": "Meal money(2013)",
"162": "Motor bike usage (2015)",
"163": "Car usage - limited car benefit(2014)",
"164": "Daily allowance - partial day, Finland (2014)",
"165": "Daily allowance - full day, Finland (2014)",
"166": "Car usage - private car (2014)",
"167": "Meal money (2014)",
"168": "Daily allowance, Norway (2014)",
"169": "Daily allowance, UK (2014)",
"170": "Daily allowance, UK London (2014)",
"171": "Daily allowance, USA (2014)",
"172": "Car usage - company car",
"173": "Daily allowance, Netherlands",
"174": "Daily allowance, France",
"175": "Night travel allowance",
"179": "Daily allowance - partial day, Finland (2015)",
"180": "Daily allowance - full day, Finland (2015)",
"181": "Car usage - private car (2015)",
"182": "Meal money",
"183": "Daily allowance, Sweden (2015)",
"184": "Daily allowance, Norway",
"185": "Daily allowance, UK (2015)",
"186": "Daily allowance, UK London (2015)",
"192": "Car usage - limited car benefit (2015)",
"193": "Daily allowance, USA (2015)",
"194": "Car usage - company car (2015)",
"195": "Daily allowance, Other",
"199": "Daily allowance - partial day, Finland",
"200": "Daily allowance - full day, Finland",
"201": "Daily allowance, Switzerland",
"202": "Motor bike usage",
"203": "Car usage - private car",
"204": "Daily allowance, Sweden",
"205": "Daily allowance, UK",
"206": "Daily allowance, UK London",
"207": "Car usage - limited car benefit",
"208": "Daily allowance, USA",
"209": "Car usage - company car",
"325": "Foreign daily allowance",
"330": "Other- VAT 14 %",
"340": "Other- VAT 10 %",
"350": "Own transport",
"360": "Public transport",
"370": "Other- VAT 0 %",
"7000": "Domestic - Train VAT 10%",
"7005": "Domestic - Representation VAT 0%",
"7010": "Domestic - Public transport VAT 10%",
"7015": "Domestic - Air fare VAT 10%",
"7020": "Domestic - Accommodation’s breakfast VAT 14%",
"7025": "Domestic - Accommodation VAT 10%",
"7030": "Domestic - Conference costs VAT 14%",
"7035": "Domestic - Conference costs VAT 24%",
"7040": "Domestic - Parking VAT 24%",
"7045": "Domestic - Taxi VAT 10%",
"7047": "Domestic - Other cost VAT 0%",
"7050": "Domestic - Other cost VAT 10%",
"7055": "Domestic - Other cost VAT 14%",
"7060": "Domestic - Other cost VAT 24%",
"7065": "Foreign - Representation VAT 0%",
"7070": "Foreign - Air fare VAT 0%",
"7075": "Foreign - Accommodation VAT 0%",
"7080": "Foreign - Conference costs (no representation) VAT 0%",
"7085": "Foreign - Taxi VAT 0%",
"7090": "Foreign - Public transport VAT 0%",
"7095": "Foreign - Other cost VAT 0%",
"7100": "Foreign - Train VAT 0%",
"7105": "Foreign - Books VAT 0%",
"7110": "Domestic - Books VAT 10%",
"7115": "Domestic - Postage VAT 24%",
"7120": "Domestic - Telecommunications VAT 24%",
"7125": "Domestic - Office supplies VAT 24%",
"7130": "Domestic - Foodstuffs VAT 14%",
"7135": "Domestic - Staff costs VAT 24%",
"7140": "Domestic - Telecommunications VAT 0%"
},
"format": "int"
},
"expense": {
"values": null
},
"typeCode": {
"caption": "TypeCode",
"format": "string",
"maxlength": "80",
"values": null
},
"unit": {
"caption": "Unit",
"maxlength": "80",
"values": null
},
"exchangeRate": {
"caption": "Exchange rate",
"format": "double",
"description": "",
"values": null
},
"generated": {
"format": "string",
"values": null
},
"advancePayment": {
"values": null
},
"paymentMethod": {
"caption": "Payment",
"enumeration": "Enumeration values.Expense.Expense item payment",
"values": {
"Invoice (non-debt)": "4",
"Own credit card": "3",
"Advance payment": "5",
"Company credit card (non-debt)": "2",
"Company expense (non-debt)": "7",
"Cash": "1",
"-": "0"
}
},
"finish": {
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"caption": "Finish",
"format": "string",
"maxlength": "10",
"values": null
},
"currency": {
"caption": "",
"format": "int",
"description": "",
"values": null
},
"id": {
"values": null
},
"debt": {
"values": null
},
"currencyCode": {
"caption": "To",
"format": "string",
"description": "",
"values": null
},
"foreignCountryCode": {
"caption": "ForeignCountryCode",
"format": "string",
"maxlength": "2",
"values": null
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Increment the status of expenses
Inspected = 3, Accepted = 4, Paid = 6, Rejected = 7
post /expenses/{expense_id}/status
Inspected = 3, Accepted = 4, Paid = 6, Rejected = 7
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- expense_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: status
Example:
{
"status": 7
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"status": 7
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for the updatable fields of the expense
View details of a single meta.
get /expenses/{expense_id}/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- expense_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"task": {
"caption": "Task",
"values": {
"": "-"
}
},
"journey": {
"values": null
},
"acceptor": {
"caption": "Acceptor",
"format": "int",
"values": null
},
"name": {
"caption": "Purpose",
"maxlength": "255",
"values": null
},
"project": {
"caption": "Project",
"values": {
"2820": "Test project (13004)",
"2969": "test project - expense (13005)",
"": "-",
"test project - expense (13005)": 2969,
"Test project (13004)": 2820
}
},
"description": {
"caption": "Description",
"values": null
},
"currency": {
"caption": "currencyid",
"format": "string",
"description": "",
"values": null
},
"id": {
"values": null
},
"type": {
"caption": "Type",
"enumeration": "Enumeration values.Expense.Type",
"values": {
"Travel": "0",
"Advance payment": "10",
"Other": "7"
}
},
"billableStatus": {
"caption": "Billable status",
"values": {
"1": "1",
"3": "3"
}
},
"currencyCode": {
"format": "string",
"description": "",
"values": null
},
"expenseOwner": {
"format": "integer",
"description": "id of the person the that owns the expense",
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available attachments in PlanMill. This is a read-only collection.
Get a list of attachments
get /expenses/{expense_id}/attachments
Get a list of attachments
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- expense_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
[
{
"size": 8497,
"createdBy": 50,
"created": "2022-01-13T13:05:10.837+0200",
"name": "attached_file_test.txt",
"modified": "2022-01-13T13:18:25.353+0200",
"id": 1543
},
{
"size": 146169,
"createdBy": 50,
"created": "2022-01-13T13:18:25.353+0200",
"name": "attached_file.txt",
"modified": "2022-01-13T13:18:25.353+0200",
"id": 1545
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
attachment_id is returned by /tempfiles endpoint on file upload.
View details of single attachment.
put /expenses/{expense_id}/attachments/{attachment_id}
attachment_id is returned by /tempfiles endpoint on file upload.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- expense_id: required(string)
- attachment_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
get /expenses/{expense_id}/attachments/{attachment_id}
View details of single attachment.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- expense_id: required(string)
- attachment_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
Contents of file
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/hooks
The currently available subscribable events are listed here along with usage guidelines
Get a list of hooks. See hooks/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Add a new hook to PlanMill or update existing (if id is given). See hooks/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /hooks
Get a list of hooks. See hooks/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- hook: required(string)
Event that is being triggered
- eventUser: required(integer)
User identifier that is triggering the event
- eventProject: required(integer)
Project identifier for which the event has been triggered
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (string)
Sorts the results using string that is a JSON attribute
- interval?: (string)
Interval type, e.g. start, finish, created, or modified. It is required in combination with intervalstart or intervalfinish
- intervalstart?: (string)
Start date of the interval in UTC format, intervalfinish required
Example:
2021-08-05T00:00:00.000+0200
- intervalfinish?: (string)
Finish date of the interval in UTC format, intervalstart required
Example:
2021-08-05T00:00:00.000+0200
HTTP status code 200
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all hook subscriptions",
"items": { "$ref": "#/definitions/hooks" },
"definitions": {
"hook": {
"type": "object",
"required": [ "hook", "url" ],
"additionalProperties": false,
"properties": {
"id": {
"type": "number",
"description": "Unique subscription identifier"
},
"hook": {
"type": "string",
"description": "Event identifier"
},
"url": {
"type": "string",
"description": "Subscription URL that will be posted with data when event is triggered"
},
"eventUser": {
"type": ["number", "null"]
},
"eventProject": {
"type": ["number", "null"]
}
}
}
}
}
Example:
[
{
"id": 2851,
"hook": "timereport.delete",
"subject": "Timereport Delete",
"eventUser": 356,
"eventProject": 213
},
{
"id": 2836,
"hook": "timereport.delete",
"subject": "Timereport Delete",
"eventUser": 356,
"eventProject": 213
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /hooks
Add a new hook to PlanMill or update existing (if id is given). See hooks/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all hook subscriptions",
"items": { "$ref": "#/definitions/hooks" },
"definitions": {
"hook": {
"type": "object",
"required": [ "hook", "url" ],
"additionalProperties": false,
"properties": {
"id": {
"type": "number",
"description": "Unique subscription identifier"
},
"hook": {
"type": "string",
"description": "Event identifier"
},
"url": {
"type": "string",
"description": "Subscription URL that will be posted with data when event is triggered"
},
"eventUser": {
"type": ["number", "null"]
},
"eventProject": {
"type": ["number", "null"]
}
}
}
}
}
Example:
{
"hook": "account.update",
"eventUser": -1,
"id": 1409,
"eventProject": -1,
"type": 1,
"url": "https://endurable-hound.glitch.me/hook"
}
Triggered hook would look as below
{
"hook": "account.update",
"resource": {
"lineOfBusiness": null,
"shippingCity": "",
"businessId": "",
"vatId": "",
"invoiceEmail": "",
"shippingPostalCode": "",
"type": 8,
"blog": "",
"twitter": "",
"shippingCountry": 0,
"rfReferenceNumber": 0,
"invoiceChannel": -1,
"billingCountry": 0,
"id": 1320,
"invoiceAppendix": 0,
"supplierAccount": null,
"billingState": "",
"serviceLevel": 0,
"customerSatisfaction": null,
"autoReplyRequestMails": 0,
"combineInvoices": 0,
"reverseCharge": null,
"phone": "",
"name": "Your first prospect name (update)",
"billingReference": "",
"invoiceTemplate": "",
"shippingState": "",
"termsOfPayment": 14,
"eInvoicingAddress": null,
"handlingFee": null,
"invoiceVat": 24,
"description": "",
"industry": -1,
"parentAccount": null,
"ceo": null,
"parentAccountName": null,
"shippingReference": "",
"turnover": null,
"email": "",
"owner": 50,
"website": "",
"facebook": "",
"staff": null,
"passive": 0,
"invoiceNetOperator": null,
"billingPostalCode": "",
"firstInvoiceNumber": null,
"shippingAddress": "",
"billingAddress": "",
"billingCity": ""
},
"subject": "Your first prospect name (update)",
"eventUser": 50,
"Id": 1320
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single hook in PlanMill.
View details of a single hook. See hooks/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Update an existing resource hook to PlanMill. See hooks/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Remove a hook from PlanMill.
get /hooks/{hook_id}
View details of a single hook. See hooks/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- hook_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all hook subscriptions",
"items": { "$ref": "#/definitions/hooks" },
"definitions": {
"hook": {
"type": "object",
"required": [ "hook", "url" ],
"additionalProperties": false,
"properties": {
"id": {
"type": "number",
"description": "Unique subscription identifier"
},
"hook": {
"type": "string",
"description": "Event identifier"
},
"url": {
"type": "string",
"description": "Subscription URL that will be posted with data when event is triggered"
},
"eventUser": {
"type": ["number", "null"]
},
"eventProject": {
"type": ["number", "null"]
}
}
}
}
}
Example:
{
"hook": "account.update",
"eventUser": -1,
"id": 1409,
"eventProject": -1,
"type": 1,
"url": "https://endurable-hound.glitch.me/hook"
}
Triggered hook would look as below
{
"hook": "account.update",
"resource": {
"lineOfBusiness": null,
"shippingCity": "",
"businessId": "",
"vatId": "",
"invoiceEmail": "",
"shippingPostalCode": "",
"type": 8,
"blog": "",
"twitter": "",
"shippingCountry": 0,
"rfReferenceNumber": 0,
"invoiceChannel": -1,
"billingCountry": 0,
"id": 1320,
"invoiceAppendix": 0,
"supplierAccount": null,
"billingState": "",
"serviceLevel": 0,
"customerSatisfaction": null,
"autoReplyRequestMails": 0,
"combineInvoices": 0,
"reverseCharge": null,
"phone": "",
"name": "Your first prospect name (update)",
"billingReference": "",
"invoiceTemplate": "",
"shippingState": "",
"termsOfPayment": 14,
"eInvoicingAddress": null,
"handlingFee": null,
"invoiceVat": 24,
"description": "",
"industry": -1,
"parentAccount": null,
"ceo": null,
"parentAccountName": null,
"shippingReference": "",
"turnover": null,
"email": "",
"owner": 50,
"website": "",
"facebook": "",
"staff": null,
"passive": 0,
"invoiceNetOperator": null,
"billingPostalCode": "",
"firstInvoiceNumber": null,
"shippingAddress": "",
"billingAddress": "",
"billingCity": ""
},
"subject": "Your first prospect name (update)",
"eventUser": 50,
"Id": 1320
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /hooks/{hook_id}
Update an existing resource hook to PlanMill. See hooks/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- hook_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all hook subscriptions",
"items": { "$ref": "#/definitions/hooks" },
"definitions": {
"hook": {
"type": "object",
"required": [ "hook", "url" ],
"additionalProperties": false,
"properties": {
"id": {
"type": "number",
"description": "Unique subscription identifier"
},
"hook": {
"type": "string",
"description": "Event identifier"
},
"url": {
"type": "string",
"description": "Subscription URL that will be posted with data when event is triggered"
},
"eventUser": {
"type": ["number", "null"]
},
"eventProject": {
"type": ["number", "null"]
}
}
}
}
}
Example:
{
"hook": "account.update",
"eventUser": -1,
"id": 1409,
"eventProject": -1,
"type": 1,
"url": "https://endurable-hound.glitch.me/hook"
}
Triggered hook would look as below
{
"hook": "account.update",
"resource": {
"lineOfBusiness": null,
"shippingCity": "",
"businessId": "",
"vatId": "",
"invoiceEmail": "",
"shippingPostalCode": "",
"type": 8,
"blog": "",
"twitter": "",
"shippingCountry": 0,
"rfReferenceNumber": 0,
"invoiceChannel": -1,
"billingCountry": 0,
"id": 1320,
"invoiceAppendix": 0,
"supplierAccount": null,
"billingState": "",
"serviceLevel": 0,
"customerSatisfaction": null,
"autoReplyRequestMails": 0,
"combineInvoices": 0,
"reverseCharge": null,
"phone": "",
"name": "Your first prospect name (update)",
"billingReference": "",
"invoiceTemplate": "",
"shippingState": "",
"termsOfPayment": 14,
"eInvoicingAddress": null,
"handlingFee": null,
"invoiceVat": 24,
"description": "",
"industry": -1,
"parentAccount": null,
"ceo": null,
"parentAccountName": null,
"shippingReference": "",
"turnover": null,
"email": "",
"owner": 50,
"website": "",
"facebook": "",
"staff": null,
"passive": 0,
"invoiceNetOperator": null,
"billingPostalCode": "",
"firstInvoiceNumber": null,
"shippingAddress": "",
"billingAddress": "",
"billingCity": ""
},
"subject": "Your first prospect name (update)",
"eventUser": 50,
"Id": 1320
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /hooks/{hook_id}
Remove a hook from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- hook_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/integrations
Get a list of available integration templates and statuses.
get /integrations
Get a list of available integration templates and statuses.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Body
Media type: application/json
Type: any
Example:
{
"Asiakastieto.DecisionMaker": {
"sourceFields": [
"[ignore]",
"account.businessId",
"account.name",
"contact.title",
"[ignore]",
"contact.firstName",
"[ignore]",
"contact.lastName",
"contact.workPhone",
"[ignore]",
"contact.department",
"contact.email"
],
"name": "Asiakastieto Decisionmaker",
"active": true,
"step": 30
},
"Default.SalesOrderItem": {
"sourceFields": [
"salesorder.operationalId",
"salesorderitem.id",
"[ignore]",
"[ignore]",
"[ignore]",
"[ignore]",
"salesorderitem.sellingPrice",
"[ignore]",
"[ignore]",
"[ignore]",
"[ignore]",
"[ignore]",
"[ignore]",
"[ignore]"
],
"name": "Salesorder item",
"active": false
},
"Asiakastieto.Prospect": {
"sourceFields": [
"[ignore]",
"account.id",
"[ignore]",
"[ignore]",
"[ignore]",
"[ignore]",
"[ignore]",
"[ignore]",
"[ignore]",
"account.businessId",
"account.name",
"account.shippingAddress",
"account.shippingPostalCode",
"account.shippingCity",
"account.billingAddress",
"account.billingPostalCode",
"account.billingCity",
"account.phone",
"[ignore]",
"[ignore]",
"account.lineOfBusiness",
"[ignore]",
"account.staff",
"account.turnover",
"[ignore]",
"account.email",
"account.website",
"[passive]"
],
"name": "Asiakastieto Prospect",
"active": false
},
"Default.PricebookItem": {
"sourceFields": [
"priceBook.name",
"priceBook.currency",
"priceBook.languageCode",
"priceBook.supplier",
"priceBook.owner",
"priceBook.passive",
"priceBook.searchKeywords",
"priceBook.validFrom",
"pricebookitem.name",
"[productname]",
"masterProduct.operationalId",
"[type]",
"pricebookitem.sellingPrice",
"pricebookitem.unit",
"pricebookitem.billingType",
"pricebookitem.targetEffort",
"pricebookitem.searchKeywords",
"[description]",
"pricebookitem.invoicingPeriod",
"pricebookitem.vat",
"[costcenter]",
"pricebookitem.revenueType",
"pricebookitem.salesAccount",
"pricebookitem.discount",
"pricebookitem.invoiceProcess"
],
"name": "Price book item",
"active": true,
"step": 20
},
"Default.Purchases": {
"sourceFields": [
"[ignore]",
"[ignore]",
"purchase.project",
"task.project",
"task.name",
"purchase.id",
"purchase.name",
"purchase.date",
"purchase.billableStatus",
"purchase.status",
"purchase.plannedAmount",
"purchase.actualAmount",
"purchase.type",
"purchase.accountName",
"purchase.description"
],
"name": "Purchases",
"active": false
},
"Default.Task": {
"sourceFields": [
"project.operationalId",
"project.name",
"task.name",
"task.start",
"task.finish",
"task.type",
"task.billableStatus",
"task.status",
"task.targetEffort",
"task.unitPrice",
"task.description",
"[taskEstimated]"
],
"name": "Task",
"active": false
},
"Lead.Action": {
"sourceFields": [
"[ignore]",
"[ignore]",
"action.contact",
"[ignore]",
"[ignore]",
"[ignore]",
"action.priority",
"action.private",
"action.reminder",
"action.status",
"action.type",
"action.project",
"[ignore]",
"action.opportunity",
"action.request",
"[ignore]",
"action.responsible",
"action.dueDate",
"action.subject",
"action.description",
"action.start",
"action.location",
"action.salesOrder",
"[ignore]"
],
"name": "Lead Action",
"active": false
}
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Using specific saved integration settings for importing or exporting a set of data to like file containing information of different companies to PlanMill as accounts.
Begins a new integration process for this template with a given file.
Cancels the current integration process for this template.
Previews data transformation with a given amount of rows.
post /integrations/{template}
Begins a new integration process for this template with a given file.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- template: required(string)
source.template
Example:
Asiakastieto.DecisionMaker
Query Parameters
- file: (integer)
Id of the file to be used in the integration.
- delim: (string)
Delimiter character used in the source CSV file. Optional but might be needed to be supplied if the delimiter cannot be detected.
- quote: (string - default: (double quote))
Quote character used in the source CSV file
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /integrations/{template}
Cancels the current integration process for this template.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- template: required(string)
source.template
Example:
Asiakastieto.DecisionMaker
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
get /integrations/{template}
Previews data transformation with a given amount of rows.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- template: required(string)
source.template
Example:
Asiakastieto.DecisionMaker
Query Parameters
- ignoreFirstRow: required(string - default: false)
Ignore the first row of a file. Useful with CSV files with header rows.
- rows: required(integer - default: 10)
Number of rows to preview
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"sourceFields": [
"contact.lastName",
"contact.firstName",
"contact.account",
"contact.title",
"contact.mobilePhone",
"contact.email"
],
"targetRows": [
[
"ROW1COL1",
"ROW1COL2",
"9999999",
"ROW1COL4",
"123456",
"regressionb@accountb.com"
],
[
"ROW2COL1",
"ROW2COL2",
"123456",
"ROW2COL4",
"123456",
"a@b.com"
],
[
"ROW3COL1",
"ROW3COL2",
"123456",
"ROW3COL4",
"123456",
"a@b.com"
],
[
"ROW4COL1",
"ROW4COL2",
"123456",
"ROW4COL4",
"123456",
"a@b.com"
],
[
"ROW5COL1",
"ROW5COL2",
"123456",
"ROW5COL4",
"123456",
"a@b.com"
],
[
"ROW6COL1",
"ROW6COL2",
"123456",
"ROW6COL4",
"123456",
"a@b.com"
],
[
"ROW7COL1",
"ROW7COL2",
"123456",
"ROW7COL4",
"123456",
"a@b.com"
],
[
"ROW8COL1",
"ROW8COL2",
"123456",
"ROW8COL4",
"123456",
"a@b.com"
],
[
"ROW9COL1",
"ROW9COL2",
"123456",
"ROW9COL4",
"123456",
"a@b.com"
],
[
"ROW10COL1",
"ROW10COL2",
"123456",
"ROW10COL4",
"123456",
"a@b.com"
]
],
"sourceRows": [
[
"ROW1COL1",
"ROW1COL2",
"9999999",
"ROW1COL4",
"123456",
"regressionb@accountb.com"
],
[
"ROW2COL1",
"ROW2COL2",
"123456",
"ROW2COL4",
"123456",
"a@b.com"
],
[
"ROW3COL1",
"ROW3COL2",
"123456",
"ROW3COL4",
"123456",
"a@b.com"
],
[
"ROW4COL1",
"ROW4COL2",
"123456",
"ROW4COL4",
"123456",
"a@b.com"
],
[
"ROW5COL1",
"ROW5COL2",
"123456",
"ROW5COL4",
"123456",
"a@b.com"
],
[
"ROW6COL1",
"ROW6COL2",
"123456",
"ROW6COL4",
"123456",
"a@b.com"
],
[
"ROW7COL1",
"ROW7COL2",
"123456",
"ROW7COL4",
"123456",
"a@b.com"
],
[
"ROW8COL1",
"ROW8COL2",
"123456",
"ROW8COL4",
"123456",
"a@b.com"
],
[
"ROW9COL1",
"ROW9COL2",
"123456",
"ROW9COL4",
"123456",
"a@b.com"
],
[
"ROW10COL1",
"ROW10COL2",
"123456",
"ROW10COL4",
"123456",
"a@b.com"
]
],
"targetFields": [
"contact.lastName",
"contact.firstName",
"contact.account",
"contact.title",
"contact.mobilePhone",
"contact.email"
]
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Transforms source file to insertable data. Returns a list of any omitted rows due to invalid field data.
put /integrations/{template}/transform
Transforms source file to insertable data. Returns a list of any omitted rows due to invalid field data.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- template: required(string)
source.template
Example:
Asiakastieto.DecisionMaker
Query Parameters
- ignoreFirstRow: required(string - default: false)
Ignore the first row of a file. Useful with CSV files with header rows.
HTTP status code 202
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Returns errors occurred during transformation. Uses pagination.
get /integrations/{template}/transform/errors
Returns errors occurred during transformation. Uses pagination.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- template: required(string)
source.template
Example:
Asiakastieto.DecisionMaker
Query Parameters
- from: required(integer - default: 1)
The row number of the first error row to return.
- rows: required(integer - default: 100)
The amount of rows to return.
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[{
"row" : "1",
"message" : "Transformation failed",
"fields" : {
"pricebookitem.vat" : "Could not parse value to a double.",
"pricebookitem.sellingPrice" : "Could not parse value to an integer.",
"pricebook.owner" : "Please enter a valid number.",
"pricebookitem.targetEffort" : "Could not parse value to an integer.",
"priceBook.validFrom" : "Failed to parse date with format dd.MM.yyyy",
"pricebook.validFrom" : "Please enter a valid date.",
"pricebook.passive" : "Please enter a valid number.",
"pricebookitem.invoicingPeriod" : "Enumeration value for key 'PBI Invoicing period' not found.",
"priceBook.passive" : "Could not parse value to an integer.",
"priceBook.supplier" : "Could not parse value to an integer.",
"pricebookitem.discount" : "Could not parse value to a double.",
"pricebookitem.salesAccount" : "Could not parse value to an integer.",
"pricebook.supplier" : "Please enter a valid number.",
"pricebookitem.revenueType" : "Could not parse value to an integer.",
"priceBook.currency" : "Enumeration value for key 'PB Currency' not found.",
"pricebookitem.unit" : "Enumeration value for key 'PBI Unit' not found.",
"pricebook.currency" : "Please enter a valid number."
}
}]
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Compares candidate data with existing objects in PlanMill and returns an appropriate update or insert dataset.
put /integrations/{template}/comparison
Compares candidate data with existing objects in PlanMill and returns an appropriate update or insert dataset.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- template: required(string)
source.template
Example:
Asiakastieto.DecisionMaker
HTTP status code 202
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Lists all conflicts by their given import row. In the case that a given import row matches multiple existing objects in the system they are collected as conflicts to be resolved.
Resolve matches to multiple existing objects by specifying the preferred object id for each conflict
get /integrations/{template}/comparison/conflicts
Lists all conflicts by their given import row. In the case that a given import row matches multiple existing objects in the system they are collected as conflicts to be resolved.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- template: required(string)
source.template
Example:
Asiakastieto.DecisionMaker
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"conflicts": [
{
"matchedFields": ["businessId"],
"matchedValues": ["7777777"],
"conflictId": 1,
"matchedObjects": [
{
"businessId": "7777777",
"revenueLastYear": "0",
"ownerName": "Owner, Thomas",
"rfReferenceNumber": "0",
"billingCountry": "73",
"modified": "2015-07-07T10:43:22.643+0300",
"activeContacts": "0",
"id": "2293",
"owner": "2252",
"created": "2015-07-06T10:43:22.480+0300",
"revenueThisYear": "0",
"passive": "0",
"combineInvoices": "0",
"createdBy": "User, First",
"billingPostalCode": "500",
"name": "Test Account 1",
"billingAddress": "Hämeentie 19",
"billingCity": "Helsinki"
},
{
"shippingCity": "Helsinki",
"businessId": "7777777",
"invoiceVat": "24",
"revenueLastYear": "0",
"industry": "-1",
"shippingPostalCode": "12323",
"type": "8",
"ownerName": "Owner, Thomas",
"shippingCountry": "0",
"rfReferenceNumber": "0",
"billingCountry": "73",
"modified": "2015-07-07T10:43:29.853+0300",
"activeContacts": "0",
"id": "2305",
"owner": "2252",
"created": "2015-07-07T10:43:29.853+0300",
"revenueThisYear": "0",
"serviceLevel": "0",
"passive": "0",
"combineInvoices": "0",
"phone": "12323",
"createdBy": "User, First",
"billingPostalCode": "1343",
"name": "Test Account 2",
"shippingAddress": "TEST",
"billingAddress": "Hämeentie 19",
"termsOfPayment": "14",
"billingCity": "Helsinki"
},
{
"shippingCity": "Helsinki",
"businessId": "7777777",
"invoiceVat": "24",
"revenueLastYear": "0",
"industry": "-1",
"shippingPostalCode": "12323",
"type": "8",
"ownerName": "938",
"shippingCountry": "73",
"rfReferenceNumber": "0",
"billingCountry": "73",
"modified": "2015-07-06T17:44:54.717+0300",
"activeContacts": "0",
"id": "1021",
"owner": "938",
"created": "2015-07-06T17:44:54.717+0300",
"revenueThisYear": "0",
"serviceLevel": "0",
"passive": "0",
"combineInvoices": "0",
"phone": "12323",
"createdBy": "938",
"billingPostalCode": "1343",
"name": "Test Account 3",
"shippingAddress": "Kuitinkatu 2",
"billingAddress": "Hämeentie 19",
"termsOfPayment": "14",
"billingCity": "Helsinki"
}
],
"objectType": "account",
"object": {
"shippingCity": "Espoo",
"phone": "12323",
"billingPostalCode": "1343",
"businessId": "7777777",
"name": "Test Account 4",
"shippingAddress": "Kuitinkatu 2",
"shippingPostalCode": "12323",
"billingAddress": "Hämeentie 19",
"billingCity": "Helsinki"
}
}
]
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
put /integrations/{template}/comparison/conflicts
Resolve matches to multiple existing objects by specifying the preferred object id for each conflict
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- template: required(string)
source.template
Example:
Asiakastieto.DecisionMaker
Body
Media type: application/json
Type: any
Example:
{
"1" : "2839618",
"2" : "-1"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Imports prepared comparison dataset into PlanMill.
post /integrations/{template}/import
Imports prepared comparison dataset into PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- template: required(string)
source.template
Example:
Asiakastieto.DecisionMaker
Query Parameters
- mode: required(one of insert, update, merge)
Importing mode. Insert will only import new objects, update will only update existing objects and merge will do both
- noComparison: required(boolean - default: false)
Perform import without comparison by directly using the transformation result
HTTP status code 202
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Returns errors occurred during transformation. Uses pagination.
get /integrations/{template}/import/errors
Returns errors occurred during transformation. Uses pagination.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- template: required(string)
source.template
Example:
Asiakastieto.DecisionMaker
Query Parameters
- from: required(integer - default: 1)
The row number of the first error row to return.
- rows: required(integer - default: 100)
The amount of rows to return.
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/invoices
Collection of available invoices in PlanMill. This is a read-only collection.
Get a list of invoices
get /invoices
Get a list of invoices
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- cyear?: (string)
Get invoices for specified month. If parameter is missing, always return invoices for current month. Filter is using invoiceDate field.
Example:
07/2021
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: array of invoice
Items: invoice
- id: (integer)
Id of an invoice
- dueDate: (datetime)
duedate of an invoice
- yourReference: (union of string or nil)
- ourReference: (string)
- customerName: (union of string or nil)
- customer: (union of integer or nil)
- invoiceDate: (string)
Date and time of an invoice
- reference: (union of integer or nil)
- billingAddress: (string)
- delayInterest: (integer)
- invoiceCurrency: (integer)
Currency rate of invoice. Multiply Invoiced amount with this rate for amounts in actual invoiced currency
- comment: (union of string or nil)
- invoiceAppendix: (union of integer or nil)
- description: (union of string or nil)
- showSubTotals: (integer)
- invoiceXSL: (string)
Xsl file of an invoice
- noticeTime: (integer)
length of notice time
- shippingAddress: (union of string or nil)
- supplier: (integer)
- invoiceNumber: (union of integer or nil)
- termsOfPayment: (integer)
- sentToAccounting: (union of integer or string or nil)
- paymentStatus: (integer)
Status of payment
- invoicedAmount: (union of number or nil)
Total invoiced amount including VAT in base currency.
- InvoicedAmountVAT: (number)
Total VAT amount in base currency
- invoiceVAT: (integer)
VAT of an invoice
- delivered: (union of string or nil)
- invoiceNetAddress: (union of integer or nil)
- invoiceNetOperator: (union of string or nil)
- invoiceChannel: (union of integer or nil)
- created: (datetime)
Created date of an invoice
- invoiceEmail: (union of email or emptystring or nil)
Invoice delivery email
- paidAmount: (integer)
- supplierName: (string)
- VATid: (union of string or nil)
- currencyCode: (string)
ISO 4217 currency code
- creditedInvoice: (number)
Only present if invoice is a credit note. Id of the original invoice for which this is crediting.
Example:
[
{
"VATid": "SE556018557001",
"billingAddress": "BOX 689\r\n136 26 HANINGE\r\nSweden",
"comment": "Thomas, Hood /11.11.2020 10:08\r\n\r\n\r\nMuutettu alv 0% , Laskutus Ruotsiin \r\nSopimus Valtti-MEGroup - signed (Desktop, Web, Mobile)\r\n\r\n\r\nThomas, Hood / 8/2020\r\n\r\n\r\nLuotu ja muokattu",
"created": "2021-06-03T15:22:10.983+0300",
"customer": 2229443,
"customerName": "DLP Drinks Logistics Partner Ab",
"delayInterest": 8,
"delivered": "2021-06-03 15:22:42.777",
"description": null,
"dueDate": "2021-06-15T00:00:00.000+0300",
"id": 62902,
"invoiceAppendix": 0,
"invoiceChannel": 4,
"invoiceCurrency": 1,
"invoiceDate": "2021-06-01 00:00:00.0",
"invoiceEmail": "ekonomi@dlp.se",
"invoiceNetAddress": null,
"invoiceNetOperator": null,
"invoiceNumber": 120503,
"invoiceVAT": 0,
"invoiceXSL": "planmill_sv_eur.xsl",
"invoicedAmount": 2129.19,
"noticeTime": 8,
"ourReference": "Thomas Hood, +358 50 482 3128",
"paidAmount": 0,
"paymentStatus": 5,
"reference": 11305030,
"sentToAccounting": "03.06.2021",
"shippingAddress": "DLP Drinks Logistics Partner Ab\r\nDåntorpsvägen 32\r\nSE-136 50 Jordbro\r\nSweden",
"showSubTotals": 0,
"supplier": 353,
"supplierName": "PlanMill Oy",
"termsOfPayment": 14,
"yourReference": "DLP"
},
{
"VATid": null,
"billingAddress": "Jaakonkatu 3\r\n01620 Vantaa",
"comment": null,
"created": "2021-06-04T13:10:54.647+0300",
"customer": 1980425,
"customerName": "Med Group Oy",
"delayInterest": 8,
"delivered": "2021-06-04 13:51:31.003",
"description": null,
"dueDate": "2021-06-15T00:00:00.000+0300",
"id": 65785,
"invoiceAppendix": 0,
"invoiceChannel": 2,
"invoiceCurrency": 1,
"invoiceDate": "2021-06-01 00:00:00.0",
"invoiceEmail": "",
"invoiceNetAddress": 3720801200,
"invoiceNetOperator": "BAWCFI22",
"invoiceNumber": 120783,
"invoiceVAT": 24,
"invoiceXSL": "planmill_fi_eur.xsl",
"invoicedAmount": 2351.65,
"noticeTime": 8,
"ourReference": "Timo Niskanen",
"paidAmount": 0,
"paymentStatus": 5,
"reference": 1058100001202335,
"sentToAccounting": "04.06.2021",
"shippingAddress": "",
"showSubTotals": 0,
"supplier": 353,
"supplierName": "Valtti Kumppanit Oy",
"termsOfPayment": 14,
"yourReference": null
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single invoice in PlanMill. This is a read-only item.
View details of a single invoice.
get /invoices/{invoice_id}
View details of a single invoice.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- invoice_id: required(string)
Headers
- Accept: (one of application/pdf, application/xml)
Get invoice in PDF and XML formats. PDF-format works with Invoice + appendix and XML-format works with Finvoice
Example:
Accept: application/pdf
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- id: (integer)
Id of an invoice
- dueDate: (datetime)
duedate of an invoice
- yourReference: (union of string or nil)
- ourReference: (string)
- customerName: (union of string or nil)
- customer: (union of integer or nil)
- invoiceDate: (string)
Date and time of an invoice
- reference: (union of integer or nil)
- billingAddress: (string)
- delayInterest: (integer)
- invoiceCurrency: (integer)
Currency rate of invoice. Multiply Invoiced amount with this rate for amounts in actual invoiced currency
- comment: (union of string or nil)
- invoiceAppendix: (union of integer or nil)
- description: (union of string or nil)
- showSubTotals: (integer)
- invoiceXSL: (string)
Xsl file of an invoice
- noticeTime: (integer)
length of notice time
- shippingAddress: (union of string or nil)
- supplier: (integer)
- invoiceNumber: (union of integer or nil)
- termsOfPayment: (integer)
- sentToAccounting: (union of integer or string or nil)
- paymentStatus: (integer)
Status of payment
- handlingFee: (union of number or nil)
Handling fee of an invoice
- handlingFeeAccount: (integer)
Handling fee of an invoice account
- VAT: (union of integer or nil)
- salesExecutive: (union of integer or nil)
- reverseCharge: (integer)
Status of payment
Example:
{
"handlingFeeAccount": 3700,
"invoiceAppendix": 0,
"invoiceNumber": 120884,
"invoiceXSL": "planmill_fi_eur.xsl",
"paymentStatus": 5,
"salesExecutive": 2534285,
"sentToAccounting": 1
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available invoiceitems in PlanMill. This is a read-only collection.
Get a list of invoiceitems
get /invoices/invoiceitems
Get a list of invoiceitems
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
HTTP status code 200
Body
Media type: application/json
Type: array of invoiceitem
Items: invoiceitem
- id: (integer)
Unique identifier of invoice item.
- invoiceId: (integer)
Unique identifier of the invoice of the item.
- invoicePositionId: (integer)
Unique identifier of the corresponding invoice position.
- vat: (union of number or nil)
VAT of the item.
- status: (union of integer or nil)
Status of the item.
- type: (union of integer or nil)
Type of the item.
- amount: (union of number or nil)
Amount of the item.
- unitPrice: (union of number or nil)
Unit price of the item.
- account: (union of integer or nil)
Account of the item.
- item: (union of string or nil)
Description of the item.
- unit: (union of integer or nil)
Unit of the item.
- performer: (union of string or nil)
Depends on case. In case of expense, user who created the expense.
- discount: (union of number or nil)
Discount of the item.
- task: (union of string or nil)
Name of the task of the invoice.
- revenueType: (union of integer or nil)
Revenue type of the item.
- orderNumber: (union of integer or nil)
Number of the corresponding order.
- creditInvoicePositionId: (union of integer or nil)
Invoice position of the corresponding credit note.
- salesOrderItemId: (union of integer or nil)
Unique identifier of the corresponding sales order item.
- costCenter: (union of integer or nil)
Cost center type of the item.
- taskId: (union of integer or nil)
Unique identifier of the task of the invoice.
Example:
[
{
"id": 62902,
"invoiceId": 62900,
"invoicePositionId": 62901,
"vat": 24.0,
"status": 2,
"type": 2,
"amount": 1.0,
"unitPrice": 65.50,
"account": 61899,
"item": "Consulting service",
"unit": 3,
"performer": "356",
"discount": 0.0,
"task": "Customer visit",
"revenueType": 1,
"orderNumber": 61986,
"creditInvoicePositionId": null,
"salesOrderItemId": 61987,
"costCenter": 2,
"taskId": 61988
},
{
"id": 61902,
"invoiceId": 61900,
"invoicePositionId": 61901,
"vat": 24.0,
"status": 2,
"type": 2,
"amount": 4.5,
"unitPrice": 65.50,
"account": 61899,
"item": "Service desk",
"unit": 3,
"performer": "356",
"discount": 0.0,
"task": "Customer visit",
"revenueType": 1,
"orderNumber": 60986,
"creditInvoicePositionId": null,
"salesOrderItemId": 60987,
"costCenter": 2,
"taskId": 61988
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available invoicepositions in PlanMill. See invoicepositions/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Get a list of invoicepositions. See invoicepositions/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /invoices/invoicepositions
Get a list of invoicepositions. See invoicepositions/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- interval?: (string)
Interval type, created, modified, periodStartDate or plannedDate. It is required in combination with intervalstart or intervalfinish
- intervalstart?: (string)
Start date of the interval in UTC format, intervalfinish required
Example:
2019-03-01T00:00:00.000+0200
- intervalfinish?: (string)
Finish date of the interval in UTC format, intervalstart required
Example:
2019-03-01T00:00:00.000+0200
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
HTTP status code 200
Body
Media type: application/json
Type: array of invoiceposition
Items: invoiceposition
- id: (integer)
Unique identifier of invoiceposition.
- invoiceId: (integer)
Unique identifier of the invoice of the position.
- name: (union of string or nil)
Name of the position.
- plannedAmount: (union of number or nil)
Planned amount of the invoiceposition.
- actualAmount: (union of number or nil)
Actual amount of the invoiceposition.
- invoicedAmount: (union of number or nil)
Invoiced amount of the invoiceposition.
- plannedEffort: (union of number or nil)
Planned effort of the invoiceposition.
- actualEffort: (union of number or nil)
Actual effort of the invoiceposition.
- unitPrice: (union of number or nil)
Unit price of the invoiceposition.
- status: (union of integer or nil)
Status of the item.
- plannedDate: (union of string or nil)
Planned date of the invoiceposition.
- description: (union of string or nil)
Description of the item.
- billingRule: (union of integer or nil)
Billing rule of the item.
- type: (union of integer or nil)
Type of the item.
- comment: (union of string or nil)
Comment of the position.
- periodStartDate: (union of string or nil)
Start date of the invoiceposition period
- periodLength: (union of integer or nil)
length of the invoice position period.
- quantity: (union of number or nil)
Quantity of the invoiceposition.
- unit: (union of integer or nil)
Unit of the invoiceposition.
- salesOrderItemId: (union of integer or nil)
Unique identifier of the corresponding sales order item.
- salesOrderId: (union of integer or nil)
Unique identifier of the salesorder of the invoice position.
- projectId: (union of integer or nil)
Unique identifier of the project of the task.
- costCenter: (union of integer or nil)
Cost center of the position.
- productOperationalId: (union of integer or nil)
Operational id of the product of the invoiceposition.
- created: (string)
Date when the invoice position was created.
- createdBy: (union of string or integer or nil)
Unique identifier of the person who created invoice position.
- modified: (union of string or nil)
Date when the invoice position was modified last time.
- modifiedBy: (union of string or integer or nil)
Unique identifier of the person who did latest modification to invoice position.
Example:
[
{ "actualAmount": 159.5,
"actualEffort": 2,
"billingRule": 1,
"comment": "Customer service",
"id": 62902,
"invoicedAmount": 0,
"name": "Windows installation",
"periodLength": 1,
"periodStartDate": "2023-07-01 00:00:00.0",
"plannedAmount": 159.5,
"plannedDate": "2023-06-30 00:00:00.0",
"plannedEffort": 0,
"productOperationalId": 2,
"invoiceId": 62900,
"status": 2,
"type": 4,
"unitPrice": 4,
"salesOrderId": 1547,
"salesOrderItemId": 61987,
"costCenter": 2,
"projectId": 61988,
"created": "2021-07-05 13:23:54.837",
"createdBy": 356,
"modified": "2021-07-05 13:23:54.837",
"modifiedBy": 356
},
{
"actualAmount": 156.5,
"actualEffort": 2,
"billingRule": 1,
"comment": "Customer service",
"id": 62902,
"invoicedAmount": 0,
"name": "Linux installation",
"periodLength": 1,
"periodStartDate": "2023-07-01 00:00:00.0",
"plannedAmount": 156.5,
"plannedDate": "2023-06-30 00:00:00.0",
"plannedEffort": 0,
"productOperationalId": 2,
"invoiceId": 62800,
"status": 2,
"type": 4,
"unitPrice": 4,
"salesOrderId": 1547,
"salesOrderItemId": 61967,
"costCenter": 2,
"projectId": 61988,
"created": "2021-07-05 13:23:54.837",
"createdBy": 356,
"modified": "2021-07-05 13:23:54.837",
"modifiedBy": 356
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/languages
Language strings used for localization available in PlanMill
View details of a single language.
get /languages
View details of a single language.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- name: required(string)
Name of language string
Example:
System.Generic.Table.No rows found.Create a new product
- section: required(string)
Category of language
Example:
System
- lang: required(string)
Language code ('en', 'fi') to get language string in desired language
Example:
en
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
[
{
"System.Generic.Table.No rows found.Create a new product": "Create a new product",
"System.Errors.Delete.Cannot delete request": "Cannot delete request",
"System.Generic.Table.No rows found.Create a new contact": "Create a new contact",
"System.Generic.Table.No rows found.Create a new absence": "Create a new absence"
},
{
"System.Generic.Table.No rows found.Create a new product": "Luo uusi tuote",
"System.Errors.Delete.Cannot delete request": "Palvelupyyntö ei voi poistaa",
"System.Generic.Table.No rows found.Create a new contact": "Luo uusi kontakti",
"System.Generic.Table.No rows found.Create a new absence": "Luo uusi poissaolo"
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/me
Current user information in PlanMill
View details of a single me.
get /me
View details of a single me.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for current user",
"oneOf": [
{
"$ref": "#/definitions/me"
}
],
"definitions": {
"me": {
"type": "object",
"required": ["firstName", "id", "currency", "language"],
"properties": {
"firstName": {
"type": "string",
"description": "Current user's first name"
},
"lastName": {
"type": "string",
"description": "Current user's last name"
},
"photo":{
"type": ["string", "null"],
"description": "Current user's photo"
},
"currency": {
"type" : "integer",
"description": "Current user's currency type"
},
"language": {
"type": "string",
"description": "Current user's language"
},
"effortUnit": {
"type": "integer",
"description": "Current user's effort unit"
},
"id": {
"type": "integer",
"description": "Current user's id"
}
}
}
}
}
Example:
{
"firstName": "Hannu",
"lastName": "Karpo",
"photo": null,
"currency": 1,
"language": "en",
"effortUnit": 2,
"id": 2843684
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/mails
Mail information in PlanMill
Get a list of mails
get /mails
Get a list of mails
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
[
{
"senderName": "Tester, First",
"sender": 3081,
"subject": "This is the first request mail",
"created": "2015-08-11T16:39:38.340+0300",
"id": 1991,
"primaryTo": "tester.mikko@planmill.com"
},
{
"senderName": "Tester, Second",
"sender": 1680,
"subject": "This is the first request mail",
"created": "2015-08-11T16:39:37.967+0300",
"id": 1992,
"primaryTo": "test@test.com"
},
{
"senderName": "noreply@planmill.com",
"sender": null,
"subject": "Execution reports for /release1541_temp",
"created": "2015-09-06T08:02:07.187+0300",
"id": 4130,
"primaryTo": null
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available attachments in PlanMill. This is a read-only collection.
Get a list of attachments
get /mails/{mail_id}/attachments
Get a list of attachments
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- mail_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
[
{
"size": 8497,
"createdBy": 50,
"created": "2022-01-13T13:05:10.837+0200",
"name": "attached_file_test.txt",
"modified": "2022-01-13T13:18:25.353+0200",
"id": 1543
},
{
"size": 146169,
"createdBy": 50,
"created": "2022-01-13T13:18:25.353+0200",
"name": "attached_file.txt",
"modified": "2022-01-13T13:18:25.353+0200",
"id": 1545
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single attachment in PlanMill. This is a read-only item.
View details of a single attachment.
get /mails/{mail_id}/attachments/{attachment_id}
View details of a single attachment.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- mail_id: required(string)
- attachment_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
Contents of file
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/opportunities
Collection of available opportunities in PlanMill. See opportunities/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Get a list of opportunities. See opportunities/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Add a new opportunity to PlanMill or update existing (if id is given). See opportunities/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /opportunities
Get a list of opportunities. See opportunities/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (string)
Sorts the results using string that is a JSON attribute
- interval?: (string)
Interval type, e.g. start, finish, created, or modified. It is required in combination with intervalstart or intervalfinish
- intervalstart?: (string)
Start date of the interval in UTC format, intervalfinish required
Example:
2021-08-05T00:00:00.000+0200
- intervalfinish?: (string)
Finish date of the interval in UTC format, intervalstart required
Example:
2021-08-05T00:00:00.000+0200
HTTP status code 200
Body
Media type: application/json
Type: array of opportunity
Items: opportunity
- subject: (string)
Name of an opportunity
- closed: (datetime)
Closed date of an opportunity
- probability: (integer)
Probability to win an opportunity
- status: (union of integer or nil)
Status of an opportunity
- stage: (integer)
Stage of an opportunity
- source: (integer)
Source of an opportunity
- reason: (integer)
Reason of an opportunity
- partnerContact: (union of integer or nil)
Partner contact name / Account
- nextStep: (integer)
Nextstep of an opportunity
- request: (union of integer or nil)
Request of an opportunity
- campaign: (union of integer or nil)
Campaign of an opportunity
- type: (integer)
Business type of an opportunity
- competitor: (union of integer or nil)
competitor of an opportunity
- id: (integer)
Internal ID of opportunity
- keyContact: (union of string or nil)
Person lastName
- account: (union of integer or nil)
Id of account
- accountName: (union of string or nil)
Name of account
- responsibleName: (union of string or integer)
Name of responsible person
- revenue: (union of number or nil)
Revenue of opportunity
- expectedRevenue: (union of number or nil)
Expected revenue of opportunity
- created: (datetime)
Created of opportunity
- country: (union of integer or nil)
Country of opportunity
- person: (union of integer or nil)
Person id
- attachmentCount: (integer)
Count attachment
- itemCount: (integer)
Count item
Example:
[
{
"country": 73,
"reason": 0,
"request": null,
"accountName": "PlanMill Oy",
"subject": "Product A for 1000 users",
"nextStep": 0,
"source": 0,
"type": 0,
"keyContact": "PlanMill, Maintenance-user",
"revenue": 0,
"partnerContact": null,
"competitor": null,
"id": 1530,
"responsibleName": "User (update), First",
"expectedRevenue": 0,
"created": "2022-02-16T15:48:47.207+0200",
"probability": 0,
"itemCount": 0,
"stage": 10,
"person": 50,
"closed": "2022-02-17T00:00:00.000+0200",
"campaign": null,
"attachmentCount": 0,
"account": 51,
"status": 0
},
{
"country": 73,
"reason": 0,
"request": null,
"accountName": "Test Oy",
"subject": "Product B for 100 users",
"nextStep": 0,
"source": 0,
"type": 0,
"keyContact": "Acme, Andy",
"revenue": 0,
"partnerContact": null,
"competitor": null,
"id": 1526,
"responsibleName": "Hood, Thomas",
"expectedRevenue": 0,
"created": "2022-02-15T14:23:52.610+0200",
"probability": 10,
"itemCount": 0,
"stage": 10,
"person": 50,
"closed": "2022-02-17T00:00:00.000+0200",
"campaign": 1529,
"attachmentCount": 1,
"account": 51,
"status": 0
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /opportunities
Add a new opportunity to PlanMill or update existing (if id is given). See opportunities/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8)
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: object
Properties- subject: required(string)
Name of an opportunity
- closed: required(datetime)
Closed date of an opportunity
- contact: required(integer)
Contact person id of an opportunity
- responsible: required(integer)
Responsible person id of an opportunity
- probability: (integer)
Probability to win an opportunity
- status: (union of integer or nil)
Status of an opportunity
- stage: (integer)
Stage of an opportunity
- source: (integer)
Source of an opportunity
- reason: (integer)
Reason of an opportunity
- partnerContact: (union of integer or nil)
Partner contact name / Account
- nextStep: (integer)
Nextstep of an opportunity
- request: (union of integer or nil)
Request of an opportunity
- campaign: (union of integer or nil)
Campaign of an opportunity
- type: (integer)
Business type of an opportunity
- competitor: (union of integer or nil)
competitor of an opportunity
- project: (union of integer or nil)
Project id of an opportunity
- priority: (integer)
Priority level of an opportunity
- description: (union of string or nil)
Description of an opportunity
Example:
{
"reason": 0,
"request": 1078552,
"subject": "Create opportunity",
"probability": 10,
"project": 1046,
"description": "Opportunity",
"source": 0,
"priority": 2,
"type": 0,
"stage": 10,
"competitor": -1,
"partnerContact": null,
"responsible": 356,
"contact": 50,
"closed": "2022-02-17T00:00:00.000+0200",
"nextStep": 0,
"campaign": 1529,
"status": 0
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for opportunities. Includes resource's fields names and type and related filters
View details of a single meta.
get /opportunities/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"filters": [
{
"type": "string",
"name": "freetextsearch",
"caption": ""
},
{
"type": "string",
"name": "viewtemplate",
"value": "0",
"caption": "View by",
"values": {
"11": "All suspended opportunities",
"12": "All won opportunities",
"13": "All lost opportunities",
"14": "All closed opportunities",
"15": "All recently created opportunities - last 7 days",
"16": "All recently created opportunities - last 14 days",
"17": "All recently created opportunities - last 30 days",
"18": "All recently modified opportunities - last 7 days",
"19": "My recently closed opportunities - last 90 days",
"0": "My open opportunities",
"1": "My suspended opportunities",
"2": "My won opportunities",
"3": "My lost opportunities",
"4": "My closed opportunities",
"5": "My recently created opportunities - last 7 days",
"6": "My recently created opportunities - last 14 days",
"7": "My recently created opportunities - last 30 days",
"8": "My recently modified opportunities - last 7 days",
"9": "All opportunities",
"20": "All recently closed opportunities - last 90 days",
"10": "All open opportunities"
}
},
{
"type": "multivalue",
"name": "campaignFilter",
"value": "-1",
"caption": "Campaign",
"values": {
"-1": "All",
"1529": "tinbit test"
}
},
{
"type": "multivalue",
"name": "partner",
"value": "-1",
"caption": "Partner",
"values": {
"353": "Your organisation legal trading name (update)",
"-1": "All",
"-2": "All partner related",
"-3": "No partner related"
}
},
{
"type": "multivalue",
"name": "product",
"value": "-1",
"caption": "Product",
"values": {
"1314": "Fixed one-time service",
"-1": "All"
}
},
{
"type": "multivalue",
"name": "source",
"value": "-1",
"caption": "Source",
"values": {
"11": "Web site",
"12": "Newspaper & Magazine",
"13": "Referral - customer",
"-1": "All",
"0": "-",
"1": "Advertisement",
"2": "Direct mail",
"3": "Email",
"4": "Event - seminar",
"5": "Event - trade show",
"6": "Event - other",
"7": "List - purchased",
"8": "List - rented",
"9": "Referral - employee",
"20": "Other",
"10": "Referral - external"
}
},
{
"type": "multivalue",
"name": "Opportunity.BusinessUnit",
"value": "-1",
"caption": "Business unit",
"values": {
"1": "1. Value",
"2": "2. Value",
"3": "3. Value",
"-1": "All",
"4": "4. Value",
"5": "5. Value"
}
},
{
"type": "interval",
"name": "interval",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"values": {
"Opportunity.Created": "Created",
"Opportunity.FinishDate": "Close date",
"Opportunity.Modified": "Modified"
}
},
{
"type": "string",
"name": "rowcount",
"value": "100",
"caption": "Rows",
"values": {
"100": "100",
"25": "25",
"50": "50",
"150": "150",
"250": "250",
"75": "75"
}
},
{
"type": "string",
"name": "status",
"value": "-1",
"caption": "Status",
"values": {
"0": "Open",
"1": "Suspended",
"2": "Won",
"3": "Lost",
"-1": "All"
}
},
{
"type": "multivalue",
"name": "responsible",
"value": "-1",
"caption": "Owner",
"values": {
"-1": "All",
"356": "User (update), First"
}
},
{
"type": "multivalue",
"name": "stage",
"value": "-1",
"caption": "Stage",
"values": {
"100": "5. Closed",
"25": "2. Validated",
"-1": "All",
"50": "3. Qualified",
"75": "4. Quoted",
"10": "1. Identified"
}
},
{
"type": "multivalue",
"name": "country",
"value": "-1",
"caption": "Country",
"values": {
"-1": "All",
"73": "Finland"
}
},
{
"type": "multivalue",
"name": "account",
"value": "-1",
"caption": "Account",
"values": {
"-1": "All",
"51": "PlanMill Oy"
}
},
{
"type": "multivalue",
"name": "type",
"value": "-1",
"caption": "Business type",
"values": {
"0": "New",
"1": "Existing",
"-1": "All"
}
},
{
"type": "multivalue",
"name": "competitorFilter",
"value": "-1",
"caption": "Competitor",
"values": {
"-1": "All"
}
}
],
"fields": {
"country": {
"values": {
"110": "Kiribati",
"231": "Yugoslavia (removed)",
"232": "Congo-Kinshasa",
"111": "Korea, Republic of (South Korea)",
"112": "Korea, Democratic People's Republic of (North Korea)",
"233": "Zambia",
"113": "Kuwait",
"234": "Zimbabwe",
"114": "Kyrgyzstan",
"235": "Yemen",
"115": "Latvia",
"236": "\u00C5land Islands",
"237": "Antarctica",
"116": "Lao People's Democratic Republic",
"238": "Bouvet Island",
"117": "Lebanon",
"239": "Guadeloupe",
"118": "Lesotho",
"119": "Liberia",
"10": "Armenia",
"11": "Aruba",
"13": "Australia",
"15": "Austria",
"16": "Azerbaijan",
"17": "Bahamas",
"18": "Barbados",
"19": "Bahrain",
"240": "Guernsey",
"241": "Heard Island and McDonald Islands",
"120": "Lithuania",
"0": "-",
"121": "Libyan Arab Jamahiriya",
"242": "Montenegro",
"1": "Afghanistan",
"122": "Liechtenstein",
"243": "Norfolk Island",
"2": "Albania",
"123": "Luxembourg",
"244": "Palestinian Territory, Occupied",
"3": "Algeria",
"245": "East Timor",
"124": "Macau",
"4": "American Samoa",
"246": "Isle of Man",
"125": "Macedonia, The former Yugoslav Republic of",
"5": "Andorra",
"247": "Jersey",
"126": "Madagascar",
"6": "Angola",
"127": "Malawi",
"248": "Pitcairn",
"7": "Anguilla",
"128": "Malaysia",
"249": "Saint Barth\u00E9lemy",
"8": "Antigua and Barbuda",
"129": "Maldives",
"9": "Argentina",
"20": "Bangladesh",
"21": "Belarus",
"22": "Belgium",
"23": "Belize",
"24": "Benin",
"25": "Bermuda",
"26": "Bhutan",
"27": "Virgin Islands, British",
"28": "Bolivia",
"29": "Bosnia and Herzegovina",
"1000": "Other",
"250": "Saint Lucia",
"130": "Mali",
"251": "Saint Martin",
"131": "Malta",
"252": "Saint Vincent and the Grenadines",
"132": "Marshall Islands",
"253": "South Georgia and the South Sandwich Islands",
"133": "Martinique",
"254": "Svalbard and Jan Mayen",
"134": "Mauritania",
"255": "Turks and Caicos Islands",
"135": "Mauritius",
"256": "Western Sahara",
"136": "Mayotte",
"257": "United States Minor Outlying Islands",
"258": "French Southern territories",
"137": "Mexico",
"259": "Christmas Island",
"138": "Micronesia, Federated States of",
"139": "Moldova, Republic of",
"30": "Botswana",
"31": "Brazil",
"33": "Brunei Darussalam",
"34": "Bulgaria",
"35": "Burkina Faso",
"36": "Burundi",
"37": "Cambodia",
"38": "Cameroon",
"39": "Canada",
"260": "Cocos (Keeling) Islands",
"261": "Cura\u00E7ao",
"140": "Monaco",
"141": "Mongolia",
"262": "Sint Maarten (Part of Netherlands)",
"263": "Bonaire, Sint Eustatius and Saba",
"142": "Montserrat",
"143": "Morocco",
"264": "South Sudan",
"144": "Mozambique",
"145": "Myanmar",
"146": "Namibia",
"147": "Nauru",
"148": "Nepal",
"149": "Netherlands",
"40": "Cape Verde",
"42": "Cayman Islands",
"44": "Central African Republic",
"45": "Chad",
"46": "Chile",
"47": "China",
"48": "Taiwan, Province of China",
"49": "Colombia",
"150": "Netherlands Antilles (removed)",
"152": "New Caledonia",
"153": "New Zealand",
"154": "Nicaragua",
"155": "Niger",
"156": "Nigeria",
"157": "Niue",
"159": "Northern Mariana Islands",
"50": "Comoros",
"51": "Congo-Brazzaville",
"52": "Cook Islands",
"53": "Costa Rica",
"54": "Croatia",
"55": "Cuba",
"56": "Cyprus",
"57": "Czech Republic",
"58": "Denmark",
"59": "British Indian Ocean Territory",
"160": "Norway",
"161": "Oman",
"162": "Pakistan",
"163": "Palau",
"164": "Panama",
"165": "Papua New Guinea",
"166": "Paraguay",
"167": "Peru",
"168": "Philippines",
"169": "Poland",
"60": "Dominica",
"61": "Dominican Republic",
"62": "Djibouti",
"63": "Ecuador",
"64": "Egypt",
"65": "El Salvador",
"66": "Equatorial Guinea",
"67": "Eritrea",
"68": "Estonia",
"69": "Ethiopia",
"170": "Portugal",
"171": "Puerto Rico",
"172": "Qatar",
"173": "R\u00E9union",
"174": "Romania",
"175": "Russian Federation",
"176": "Rwanda",
"178": "San Marino",
"179": "Sao Tome and Principe",
"70": "Falkland Islands (Malvinas)",
"71": "Faroe Islands",
"72": "Fiji",
"73": "Finland",
"74": "France",
"76": "French Guiana",
"77": "Gabon",
"78": "Gambia",
"79": "Georgia",
"180": "Saudi Arabia",
"181": "Senegal",
"182": "Serbia",
"183": "Seychelles",
"184": "Sierra Leone",
"185": "Singapore",
"186": "Slovakia",
"187": "Slovenia",
"188": "Solomon Islands",
"189": "Somalia",
"80": "Germany",
"81": "Ghana",
"82": "Gibraltar",
"83": "Greece",
"84": "Greenland",
"85": "Grenada",
"86": "Guam",
"87": "Guatemala",
"88": "Guinea",
"89": "Guinea-Bissau",
"190": "South Africa",
"191": "Spain",
"192": "Sri Lanka",
"193": "Saint Helena",
"194": "Saint Kitts and Nevis",
"195": "Saint Pierre and Miquelon",
"196": "Sudan",
"197": "Suriname",
"198": "Swaziland",
"199": "Sweden",
"90": "Guyana",
"91": "Haiti",
"92": "Honduras",
"93": "Hong Kong",
"94": "Hungary",
"95": "Iceland",
"96": "India",
"97": "Indonesia",
"98": "Iran, Islamic Republic of",
"99": "Iraq",
"200": "Switzerland",
"201": "Syrian Arab Republic",
"202": "French Polynesia",
"204": "Tajikistan",
"205": "Tanzania, United Republic of",
"206": "Thailand",
"207": "Togo",
"208": "Tokelau",
"209": "Tonga",
"210": "Trinidad and Tobago",
"211": "Tunisia",
"212": "Turkey",
"213": "Turkmenistan",
"214": "Tuvalu",
"215": "Uganda",
"216": "Ukraine",
"217": "United Arab Emirates",
"218": "United Kingdom",
"219": "Uruguay",
"220": "United States",
"100": "Ireland",
"221": "Uzbekistan",
"101": "Israel",
"222": "Vanuatu",
"223": "Holy See (Vatican City State)",
"102": "Italy",
"103": "C\u00F4te d'Ivoire",
"224": "Venezuela",
"104": "Jamaica",
"225": "Viet Nam",
"105": "Japan",
"226": "Virgin Islands, U.S.",
"106": "Jordan",
"227": "Wallis and Futuna",
"107": "Kazakstan",
"228": "Samoa",
"108": "Kenya"
},
"format": "Enumeration values.Location.CountryId",
"caption": "Country"
},
"reason": {
"values": {
"0": "-",
"1": "Installed base",
"2": "Price",
"3": "Relationship",
"4": "Track record",
"5": "No current project",
"6": "No budget",
"7": "Not qualified",
"8": "Lost to competition",
"9": "Lost to no decision",
"10": "Other"
},
"format": "Enumeration values.Sales management.Opportunities.Reason lost",
"caption": "Reason won\/lost"
},
"request": {
"format": "text",
"caption": "Request Internal ID"
},
"accountName": {
"format": "text",
"caption": "Account"
},
"subject": {
"format": "text",
"caption": "Name"
},
"source": {
"values": {
"11": "Web site",
"12": "Newspaper & Magazine",
"13": "Referral - customer",
"0": "-",
"1": "Advertisement",
"2": "Direct mail",
"3": "Email",
"4": "Event - seminar",
"5": "Event - trade show",
"6": "Event - other",
"7": "List - purchased",
"8": "List - rented",
"9": "Referral - employee",
"20": "Other",
"10": "Referral - external"
},
"format": "Enumeration values.Sales management.Opportunities.Source",
"caption": "Source"
},
"type": {
"values": {
"0": "New",
"1": "Existing"
},
"format": "Enumeration values.Sales management.Opportunities.Business type",
"caption": "Business type"
},
"keyContact": {
"format": "text",
"caption": "Contact"
},
"revenue": {
"format": "currency",
"caption": "Total contract value (TCV)"
},
"partnerContact": {
"format": "text",
"caption": "Partner.Id"
},
"competitor": {
"format": "text",
"caption": "CompetitorAccount.Id"
},
"id": {
"format": "checkbox",
"caption": ""
},
"responsibleName": {
"format": "text",
"caption": "Owner"
},
"expectedRevenue": {
"format": "currency",
"caption": "Expected"
},
"created": {
"format": "mediumdate",
"caption": "Created"
},
"probability": {
"values": {
"0": "0%",
"100": "100%",
"25": "25%",
"50": "50%",
"75": "75%",
"10": "10%"
},
"format": "Enumeration values.Sales management.Opportunities.Probability",
"caption": "Probability"
},
"itemCount": {
"format": "text",
"caption": "Products and services"
},
"stage": {
"values": {
"100": "5. Closed",
"25": "2. Validated",
"50": "3. Qualified",
"75": "4. Quoted",
"10": "1. Identified"
},
"format": "Enumeration values.Sales management.Opportunities.Sales stage",
"caption": "Stage"
},
"person": {
"format": "text",
"caption": "Person.Id"
},
"closed": {
"format": "shortdate",
"caption": "Close date"
},
"nextStep": {
"values": {
"0": "-",
"1": "Demo",
"2": "Follow up",
"3": "Visit",
"4": "Qualify",
"5": "Quote",
"6": "RFP",
"7": "Call"
},
"format": "Enumeration values.Sales management.Opportunities.Next step",
"caption": "Next step"
},
"campaign": {
"format": "text",
"caption": "Opportunity.CampaignId"
},
"attachmentCount": {
"format": "text",
"caption": "Attachments"
},
"account": {
"format": "text",
"caption": "Account Internal ID"
},
"status": {
"values": {
"0": "Open",
"1": "Suspended",
"2": "Won",
"3": "Lost"
},
"format": "Enumeration values.Sales management.Opportunities.Status",
"caption": "Status"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single opportunity in PlanMill.
View details of a single opportunity. See opportunities/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Update an existing resource opportunity to PlanMill. See opportunities/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Remove a opportunity from PlanMill.
get /opportunities/{opportunity_id}
View details of a single opportunity. See opportunities/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- opportunity_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- subject: (string)
Name of an opportunity
- closed: (datetime)
Closed date of an opportunity
- probability: (integer)
Probability to win an opportunity
- status: (union of integer or nil)
Status of an opportunity
- stage: (integer)
Stage of an opportunity
- source: (integer)
Source of an opportunity
- reason: (integer)
Reason of an opportunity
- partnerContact: (union of integer or nil)
Partner contact name / Account
- nextStep: (integer)
Nextstep of an opportunity
- request: (union of integer or nil)
Request of an opportunity
- campaign: (union of integer or nil)
Campaign of an opportunity
- type: (integer)
Business type of an opportunity
- competitor: (union of integer or nil)
competitor of an opportunity
- project: (union of integer or nil)
Project id of an opportunity
- contact: (integer)
Contact person id of an opportunity
- responsible: (integer)
Responsible person id of an opportunity
- priority: (integer)
Priority level of an opportunity
- description: (union of string or nil)
Description of an opportunity
- id: (integer)
Internal ID of opportunity
Example:
{
"reason": 0,
"request": 1078552,
"subject": "Create opportunity",
"probability": 10,
"project": 1046,
"description": "Opportunity",
"source": 0,
"priority": 2,
"type": 0,
"id": 1903,
"stage": 10,
"competitor": -1,
"partnerContact": null,
"responsible": 356,
"contact": 50,
"closed": "2022-02-17T00:00:00.000+0200",
"nextStep": 0,
"campaign": 1529,
"status": 0
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /opportunities/{opportunity_id}
Update an existing resource opportunity to PlanMill. See opportunities/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- opportunity_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: object
Properties- subject: (string)
Name of an opportunity
- closed: (datetime)
Closed date of an opportunity
- probability: (integer)
Probability to win an opportunity
- status: (union of integer or nil)
Status of an opportunity
- stage: (integer)
Stage of an opportunity
- source: (integer)
Source of an opportunity
- reason: (integer)
Reason of an opportunity
- partnerContact: (union of integer or nil)
Partner contact name / Account
- nextStep: (integer)
Nextstep of an opportunity
- request: (union of integer or nil)
Request of an opportunity
- campaign: (union of integer or nil)
Campaign of an opportunity
- type: (integer)
Business type of an opportunity
- competitor: (union of integer or nil)
competitor of an opportunity
- project: (union of integer or nil)
Project id of an opportunity
- contact: (integer)
Contact person id of an opportunity
- responsible: (integer)
Responsible person id of an opportunity
- priority: (integer)
Priority level of an opportunity
- description: (union of string or nil)
Description of an opportunity
Example:
{
"reason": 0,
"request": 1078552,
"subject": "Create opportunity",
"probability": 10,
"project": 1046,
"description": "Opportunity",
"source": 0,
"priority": 2,
"type": 0,
"stage": 10,
"competitor": -1,
"partnerContact": null,
"responsible": 356,
"contact": 50,
"closed": "2022-02-17T00:00:00.000+0200",
"nextStep": 0,
"campaign": 1529,
"status": 0
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /opportunities/{opportunity_id}
Remove a opportunity from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- opportunity_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available attachments in PlanMill. This is a read-only collection.
Get a list of attachments
get /opportunities/{opportunity_id}/attachments
Get a list of attachments
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- opportunity_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
[
{
"size": 8497,
"createdBy": 50,
"created": "2022-01-13T13:05:10.837+0200",
"name": "attached_file_test.txt",
"modified": "2022-01-13T13:18:25.353+0200",
"id": 1543
},
{
"size": 146169,
"createdBy": 50,
"created": "2022-01-13T13:18:25.353+0200",
"name": "attached_file.txt",
"modified": "2022-01-13T13:18:25.353+0200",
"id": 1545
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
attachment_id is returned by /tempfiles endpoint on file upload.
View details of single attachment.
put /opportunities/{opportunity_id}/attachments/{attachment_id}
attachment_id is returned by /tempfiles endpoint on file upload.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- opportunity_id: required(string)
- attachment_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
get /opportunities/{opportunity_id}/attachments/{attachment_id}
View details of single attachment.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- opportunity_id: required(string)
- attachment_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
Contents of file
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for the updatable fields of the sales orders
View details of a single meta.
get /opportunities/{opportunity_id}/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- opportunity_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"reason": {
"type": "string",
"caption": "Reason won\/lost",
"format": "int",
"enumeration": "Enumeration values.Sales management.Opportunities.Reason lost",
"values": {
"Not qualified": "7",
"Installed base": "1",
"No current project": "5",
"Lost to competition": "8",
"Lost to no decision": "9",
"Price": "2",
"Relationship": "3",
"No budget": "6",
"-": "0",
"Track record": "4",
"Other": "10"
}
},
"request": {
"type": "string",
"caption": "",
"format": "int",
"description": "",
"values": null
},
"subject": {
"type": "string",
"caption": "Name",
"format": "string",
"maxlength": "255",
"values": null
},
"probability": {
"type": "string",
"value": "10",
"caption": "Probability",
"format": "int",
"enumeration": "Enumeration values.Sales management.Opportunities.Probability",
"values": {
"25%": "25",
"100%": "100",
"0%": "0",
"10%": "10",
"75%": "75",
"50%": "50"
}
},
"project": {
"type": "string",
"caption": "",
"format": "int",
"description": "",
"values": null
},
"description": {
"type": "string",
"caption": "",
"format": "string",
"description": "",
"values": null
},
"source": {
"type": "string",
"caption": "Source",
"format": "int",
"enumeration": "Enumeration values.Sales management.Opportunities.Source",
"values": {
"Event - seminar": "4",
"Email": "3",
"Event - trade show": "5",
"-": "0",
"Direct mail": "2",
"Referral - customer": "13",
"Newspaper & Magazine": "12",
"Referral - external": "10",
"List - purchased": "7",
"List - rented": "8",
"Advertisement": "1",
"Referral - employee": "9",
"Web site": "11",
"Event - other": "6",
"Other": "20"
}
},
"priority": {
"type": "string",
"value": "2",
"caption": "Priority",
"format": "int",
"enumeration": "Enumeration values.Sales management.Opportunities.Priority",
"values": {
"High": "3",
"Low": "1",
"Medium": "2"
}
},
"type": {
"type": "string",
"caption": "Business type",
"format": "int",
"enumeration": "Enumeration values.Sales management.Opportunities.Business type",
"values": {
"New": "0",
"Existing": "1"
}
},
"stage": {
"type": "string",
"value": "10",
"description": "When changing the sales stage the Probability field is automatically changed to reflect the sales stage.",
"caption": "Sales stage",
"format": "int",
"maxlength": "80",
"enumeration": "Enumeration values.Sales management.Opportunities.Sales stage probability mapping",
"values": {
"25": "25",
"Closed - lost": "190",
"Open \/ Closed - won": "170",
"3. Qualified": "50",
"2. Validated": "25",
"1. Identified": "10",
"4. Quoted": "75",
"Open": "160",
"5. Closed": "100",
"100": "100",
"Closed - won": "150",
"50": "50",
"Suspended": "180",
"75": "75",
"10": "10"
}
},
"competitor": {
"type": "string",
"caption": "Competitor",
"format": "int",
"values": null
},
"partnerContact": {
"type": "string",
"caption": "",
"format": "int",
"description": "",
"values": null
},
"responsible": {
"type": "string",
"caption": "Owner",
"values": {
"356": "User (update), First",
"User (update), First": 356
},
"format": "int"
},
"contact": {
"type": "string",
"caption": "",
"format": "int",
"description": "",
"values": null
},
"closed": {
"type": "string",
"description": "The expected close date for the opportunity.",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"caption": "Close date",
"format": "string",
"values": null
},
"nextStep": {
"type": "string",
"caption": "Next step",
"format": "int",
"enumeration": "Enumeration values.Sales management.Opportunities.Next step",
"values": {
"Quote": "5",
"Call": "7",
"Follow up": "2",
"Demo": "1",
"Qualify": "4",
"Visit": "3",
"-": "0",
"RFP": "6"
}
},
"campaign": {
"type": "string",
"caption": "",
"format": "int",
"description": "",
"values": null
},
"id": {
"type": "string",
"caption": "",
"format": "int",
"description": "",
"values": null
},
"status": {
"type": "string",
"description": "The status field is used to describe in which state the opportunity is, e.g. Open or Won.",
"caption": "Status",
"format": "int",
"enumeration": "Enumeration values.Sales management.Opportunities.Status filter",
"values": {
"Lost": "3",
"Closed - won": "4",
"Closed": "3",
"Won": "2",
"Closed - lost": "5",
"Suspended": "2",
"Open": "1"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available items in PlanMill. See items/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Get a list of opportunity items. See opportunities/{opportunity_id}/items/meta for list of filters, columns and formats
Add a new opportunity item to PlanMill or update existing (if id is given). See opportunities/{opportunity_id}/items/meta for list of columns and formats
get /opportunities/{opportunity_id}/items
Get a list of opportunity items. See opportunities/{opportunity_id}/items/meta for list of filters, columns and formats
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- opportunity_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (string)
Sorts the results using string that is a JSON attribute
- interval?: (string)
Interval type, e.g. start, finish, created, or modified. It is required in combination with intervalstart or intervalfinish
- intervalstart?: (string)
Start date of the interval in UTC format, intervalfinish required
Example:
2021-08-05T00:00:00.000+0200
- intervalfinish?: (string)
Finish date of the interval in UTC format, intervalstart required
Example:
2021-08-05T00:00:00.000+0200
HTTP status code 200
Body
Media type: application/json
Type:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all opportunity items entities",
"oneOf": [
{
"type": "array",
"items": { "$ref": "#/definitions/opportunityItem" }
},
{
"$ref": "#/definitions/opportunityItem"
}
],
"definitions": {
"opportunityItem": {
"required": ["name", "billingType", "invoicingPeriod"],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal Id of an opportunity item"
},
"opportunity": {
"type": "integer",
"description": "Id of a parent opportunity"
},
"product": {
"type": "integer",
"description": "Id of a product related to opportunity item"
},
"operationalId": {
"type": "null",
"description": "Operational id of an opportunity item"
},
"name": {
"type": "string",
"description": "Name of an opportunity item"
},
"quantity": {
"type": "integer",
"description": "Quantity of opportunity items"
},
"unit": {
"type": "integer",
"description": "Unit for billing an opportunity item"
},
"billingType": {
"type": "integer",
"description": "Billing type of an opportunity item"
},
"sellingPrice": {
"type": "number",
"description": "Unit price of an opportunity item"
},
"VAT": {
"type": "integer",
"description": "VTA percentage of an opportunity item"
},
"validFrom": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Start date of an opportunity item"
},
"validUntil": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "End date of an opportunity item"
},
"warrantyPeriod": {
"type": ["integer", "null"],
"description": "Warranty period of an opportunity item"
},
"task": {
"type": ["integer", "null"],
"description": "Id of a task related to opportunity item"
},
"orderStatus": {
"type": ["integer", "null"],
"description": ""
},
"invoicingPeriod": {
"type": "integer",
"description": "Invoicing period of an opportunity item"
},
"costCenter": {
"type": ["integer", "null"],
"description": ""
},
"revenueType": {
"type": ["integer", "null"],
"description": "Revenue type of an opportunity item"
},
"person": {
"type": ["integer", "null"],
"description": "Id of person related to opportunity item"
},
"competence": {
"type": ["integer", "null"],
"description": "Id of a competence of a person related to opportunity item"
},
"discount": {
"type": "integer",
"description": "Discount on an opportunity item"
},
"invoiceProcess": {
"type": ["integer", "null"],
"description": "Invoice generation Process"
},
"contractPeriod": {
"type": ["integer", "null"],
"description": "Contract period of an opportunity item"
},
"generatePriceType": {
"type": "integer",
"description": ""
},
"selfCost": {
"type": "integer",
"description": ""
}
}
}
}
}
Example:
[
{
"invoiceProcess": null,
"generatePriceType": 0,
"VAT": 24,
"revenueType": 7,
"discount": 0,
"orderStatus": null,
"validFrom": "2015-06-25T18:10:00.000+0300",
"operationalId": null,
"competence": null,
"sellingPrice": 800,
"warrantyPeriod": null,
"billingType": 1,
"id": 2841503,
"product": 2841500,
"quantity": 1,
"invoicingPeriod": 110,
"costCenter": null,
"opportunity": 2841498,
"contractPeriod": null,
"unit": 3,
"task": null,
"person": null,
"name": "Opportunity Item",
"validUntil": null,
"selfCost": 0
},
{
"invoiceProcess": null,
"generatePriceType": 0,
"VAT": 23,
"revenueType": 7,
"discount": 0,
"orderStatus": null,
"validFrom": "2015-06-24T18:10:00.000+0300",
"operationalId": null,
"competence": 2727418,
"sellingPrice": 800,
"warrantyPeriod": 7,
"billingType": 1,
"id": 2841505,
"product": 2841500,
"quantity": 1,
"invoicingPeriod": 110,
"costCenter": null,
"opportunity": 2841498,
"contractPeriod": 10,
"unit": 3,
"task": 2835263,
"person": 2384531,
"name": "Test opportunity item",
"validUntil": "2015-06-25T18:10:00.000+0300",
"selfCost": 0
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /opportunities/{opportunity_id}/items
Add a new opportunity item to PlanMill or update existing (if id is given). See opportunities/{opportunity_id}/items/meta for list of columns and formats
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- opportunity_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all opportunity items entities",
"oneOf": [
{
"type": "array",
"items": { "$ref": "#/definitions/opportunityItem" }
},
{
"$ref": "#/definitions/opportunityItem"
}
],
"definitions": {
"opportunityItem": {
"required": ["name", "billingType", "invoicingPeriod"],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal Id of an opportunity item"
},
"opportunity": {
"type": "integer",
"description": "Id of a parent opportunity"
},
"product": {
"type": "integer",
"description": "Id of a product related to opportunity item"
},
"operationalId": {
"type": "null",
"description": "Operational id of an opportunity item"
},
"name": {
"type": "string",
"description": "Name of an opportunity item"
},
"quantity": {
"type": "integer",
"description": "Quantity of opportunity items"
},
"unit": {
"type": "integer",
"description": "Unit for billing an opportunity item"
},
"billingType": {
"type": "integer",
"description": "Billing type of an opportunity item"
},
"sellingPrice": {
"type": "number",
"description": "Unit price of an opportunity item"
},
"VAT": {
"type": "integer",
"description": "VTA percentage of an opportunity item"
},
"validFrom": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Start date of an opportunity item"
},
"validUntil": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "End date of an opportunity item"
},
"warrantyPeriod": {
"type": ["integer", "null"],
"description": "Warranty period of an opportunity item"
},
"task": {
"type": ["integer", "null"],
"description": "Id of a task related to opportunity item"
},
"orderStatus": {
"type": ["integer", "null"],
"description": ""
},
"invoicingPeriod": {
"type": "integer",
"description": "Invoicing period of an opportunity item"
},
"costCenter": {
"type": ["integer", "null"],
"description": ""
},
"revenueType": {
"type": ["integer", "null"],
"description": "Revenue type of an opportunity item"
},
"person": {
"type": ["integer", "null"],
"description": "Id of person related to opportunity item"
},
"competence": {
"type": ["integer", "null"],
"description": "Id of a competence of a person related to opportunity item"
},
"discount": {
"type": "integer",
"description": "Discount on an opportunity item"
},
"invoiceProcess": {
"type": ["integer", "null"],
"description": "Invoice generation Process"
},
"contractPeriod": {
"type": ["integer", "null"],
"description": "Contract period of an opportunity item"
},
"generatePriceType": {
"type": "integer",
"description": ""
},
"selfCost": {
"type": "integer",
"description": ""
}
}
}
}
}
Example:
{
"invoiceProcess": null,
"generatePriceType": 0,
"VAT": 23,
"revenueType": 7,
"discount": 0,
"orderStatus": null,
"validFrom": "2015-06-24T18:10:00.000+0300",
"operationalId": null,
"competence": 2727418,
"sellingPrice": 800,
"warrantyPeriod": 7,
"billingType": 1,
"id": 2841505,
"product": 2841500,
"quantity": 1,
"invoicingPeriod": 110,
"costCenter": null,
"opportunity": 2841498,
"contractPeriod": 10,
"unit": 3,
"task": 2835263,
"person": 2384531,
"name": "Test opportunity item",
"validUntil": "2015-06-25T18:10:00.000+0300",
"selfCost": 0
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single item in PlanMill.
View details of single item of single opportunity item.
Update an existing resource single item of single opportunity to PlanMill.
Remove a item from PlanMill.
get /opportunities/{opportunity_id}/items/{opportunity_item_id}
View details of single item of single opportunity item.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- opportunity_id: required(string)
- opportunity_item_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: item
Example:
{
"invoiceProcess": null,
"generatePriceType": 0,
"VAT": 23,
"revenueType": 7,
"discount": 0,
"orderStatus": null,
"validFrom": "2015-06-24T18:10:00.000+0300",
"operationalId": null,
"competence": 2727418,
"sellingPrice": 800,
"warrantyPeriod": 7,
"billingType": 1,
"id": 2841505,
"product": 2841500,
"quantity": 1,
"invoicingPeriod": 110,
"costCenter": null,
"opportunity": 2841498,
"contractPeriod": 10,
"unit": 3,
"task": 2835263,
"person": 2384531,
"name": "Test opportunity item",
"validUntil": "2015-06-25T18:10:00.000+0300",
"selfCost": 0
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /opportunities/{opportunity_id}/items/{opportunity_item_id}
Update an existing resource single item of single opportunity to PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- opportunity_id: required(string)
- opportunity_item_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: item
Example:
{
"invoiceProcess": null,
"generatePriceType": 0,
"VAT": 23,
"revenueType": 7,
"discount": 0,
"orderStatus": null,
"validFrom": "2015-06-24T18:10:00.000+0300",
"operationalId": null,
"competence": 2727418,
"sellingPrice": 800,
"warrantyPeriod": 7,
"billingType": 1,
"id": 2841505,
"product": 2841500,
"quantity": 1,
"invoicingPeriod": 110,
"costCenter": null,
"opportunity": 2841498,
"contractPeriod": 10,
"unit": 3,
"task": 2835263,
"person": 2384531,
"name": "Test opportunity item",
"validUntil": "2015-06-25T18:10:00.000+0300",
"selfCost": 0
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /opportunities/{opportunity_id}/items/{opportunity_item_id}
Remove a item from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- opportunity_id: required(string)
- opportunity_item_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/portfolios
Collection of available portfolios in PlanMill. See portfolios/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Get a list of portfolios. See portfolios/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Add a new portfolio to PlanMill. See portfolios/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /portfolios
Get a list of portfolios. See portfolios/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (string)
Sorts the results using string that is a JSON attribute
HTTP status code 200
Body
Media type: application/json
Type: array of portfolio
Items: portfolio
- name: (string)
Portfolio's name.
- parent: (union of integer or nil)
Portfolio parent Id.
- id: (integer)
Internal ID of a portfolio.
Example:
[
{
"id": 584043,
"name": "Portfolio A"
},
{
"id": 584063,
"name": "Portfolio B"
},
{
"id": 584067,
"name": "Portfolio C"
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /portfolios
Add a new portfolio to PlanMill. See portfolios/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8)
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: object
Properties- name: required(string)
Portfolio's name.
- parent: (union of integer or nil)
Portfolio parent Id.
Example:
{
"name": "Test Portfolio A",
"parent": 210
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single portfolio in PlanMill.
View details of a single portfolio. See portfolios/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Update an existing resource portfolio to PlanMill. See portfolios/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /portfolios/{portfolio_id}
View details of a single portfolio. See portfolios/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- portfolio_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- name: (string)
Portfolio's name.
- parent: (union of integer or nil)
Portfolio parent Id.
- id: (integer)
Internal ID of a portfolio.
Example:
{
"id": 584043,
"name": "Test Portfolio A",
"parent": 210
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /portfolios/{portfolio_id}
Update an existing resource portfolio to PlanMill. See portfolios/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- portfolio_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: object
Properties- name: (string)
Portfolio's name.
- parent: (union of integer or nil)
Portfolio parent Id.
Example:
{
"name": "Test Portfolio A",
"parent": 210
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/pricebooks
To manage and list all pricebooks in a company. See /meta -endpoint.
Get a list of pricebooks. See pricebooks/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Add a new pricebook to PlanMill or update existing (if id is given). See pricebooks/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /pricebooks
Get a list of pricebooks. See pricebooks/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- id: (integer)
Filters products for a specified pricebook id
Example:
id={pricebook id}
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (string)
Sorts the results using string that is a JSON attribute
- interval?: (string)
Interval type, e.g. start, finish, created, or modified. It is required in combination with intervalstart or intervalfinish
- intervalstart?: (string)
Start date of the interval in UTC format, intervalfinish required
Example:
2021-08-05T00:00:00.000+0200
- intervalfinish?: (string)
Finish date of the interval in UTC format, intervalstart required
Example:
2021-08-05T00:00:00.000+0200
HTTP status code 200
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all pricebook entities",
"oneOf": [{
"type": "array",
"items": {
"$ref": "#/definitions/pricebookArray"
}
},
{
"$ref": "#/definitions/pricebookSingle"
}],
"definitions": {
"pricebookSingle": {
"type": "object",
"required": ["currency","owner","name"],
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Name of the pricebook"
},
"id": {
"type": "integer",
"description": "Internal ID of the PriceBook"
},
"passive": {
"type": "integer",
"description": "Passive status"
},
"operationalId": {
"type": ["string","null"],
"description": "Optional external ID of the PriceBook"
},
"currency": {
"type": "integer",
"description": "All PriceBook items will use the PriceBook currency id"
},
"languageCode": {
"type": ["string","null"],
"description": "PriceBook may be bound to a given language-local for management handling and filtering"
},
"supplier": {
"type": ["integer","null"],
"description": "PriceBook may be limited to a given Supplier (My company)"
},
"description": {
"type": ["string","null"],
"description": "PriceBook description"
},
"publishToStore": {
"type": "integer",
"description": "If pricebooks are published to a thirdparty system"
},
"owner": {
"type": ["integer","null"],
"description": "PriceBook owner person id"
},
"validFrom": {
"type": ["string","null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "PriceBook valid from date"
},
"validUntil": {
"type": ["string","null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "PriceBook valid until date"
},
"searchKeywords": {
"type": ["string","null"],
"description": "Indexed keywords"
}
}
},
"pricebookArray": {
"type": "object",
"required": ["currency","owner","name"],
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Name of the pricebook"
},
"id": {
"type": "integer",
"description": "Internal ID of the PriceBook"
},
"passive": {
"type": "integer",
"description": "Passive status"
},
"operationalId": {
"type": ["string","null"],
"description": "Optional external ID of the PriceBook"
},
"publishToStore": {
"type": "integer",
"description": "If pricebooks are published to a thirdparty system"
},
"currency": {
"type": "integer",
"description": "All PriceBook items will use the PriceBook currency id"
},
"currencyCode": {
"type": "string",
"description": "All PriceBook items will use the PriceBook currency"
},
"languageCode": {
"type": ["string","null"],
"description": "PriceBook may be bound to a given language-local for management handling and filtering"
},
"description": {
"type": ["string","null"],
"description": "PriceBook description"
},
"owner": {
"type": ["integer","null"],
"description": "PriceBook owner person id"
},
"validFrom": {
"type": ["string","null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "PriceBook valid from date"
},
"validUntil": {
"type": ["string","null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "PriceBook valid until date"
},
"searchKeywords": {
"type": ["string","null"],
"description": "Indexed keywords"
},
"created": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))"
},
"createdBy": {
"type": "integer",
"description": ""
},
"modified": {
"type": ["string","null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))"
},
"modifiedBy": {
"type": ["integer","null"],
"description": ""
}
}
}
}
}
Example:
[
{
"owner": 50,
"searchKeywords": "book",
"created": "2019-01-07T11:47:41.893+0200",
"description": "desc",
"validFrom": "2018-12-28T00:00:00.000+0200",
"languageCode": "en",
"operationalId": "SKU001",
"publishToStore": 0,
"passive": 0,
"createdBy": 50,
"name": "Price book API",
"validUntil": "2020-12-29T00:00:00.000+0200",
"modified": null,
"currency": 1,
"modifiedBy": null,
"id": 3811,
"currencyCode": "EUR"
},
{
"owner": 356,
"searchKeywords": "book",
"created": "2019-01-07T11:48:21.467+0200",
"description": "desc",
"validFrom": "2018-12-28T00:00:00.000+0200",
"languageCode": "en",
"operationalId": "SKU002",
"publishToStore": 0,
"passive": 0,
"createdBy": 50,
"name": "Price book API",
"validUntil": "2025-12-29T00:00:00.000+0200",
"modified": null,
"currency": 1,
"modifiedBy": null,
"id": 3812,
"currencyCode": "EUR"
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /pricebooks
Add a new pricebook to PlanMill or update existing (if id is given). See pricebooks/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all pricebook entities",
"oneOf": [{
"type": "array",
"items": {
"$ref": "#/definitions/pricebookArray"
}
},
{
"$ref": "#/definitions/pricebookSingle"
}],
"definitions": {
"pricebookSingle": {
"type": "object",
"required": ["currency","owner","name"],
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Name of the pricebook"
},
"id": {
"type": "integer",
"description": "Internal ID of the PriceBook"
},
"passive": {
"type": "integer",
"description": "Passive status"
},
"operationalId": {
"type": ["string","null"],
"description": "Optional external ID of the PriceBook"
},
"currency": {
"type": "integer",
"description": "All PriceBook items will use the PriceBook currency id"
},
"languageCode": {
"type": ["string","null"],
"description": "PriceBook may be bound to a given language-local for management handling and filtering"
},
"supplier": {
"type": ["integer","null"],
"description": "PriceBook may be limited to a given Supplier (My company)"
},
"description": {
"type": ["string","null"],
"description": "PriceBook description"
},
"publishToStore": {
"type": "integer",
"description": "If pricebooks are published to a thirdparty system"
},
"owner": {
"type": ["integer","null"],
"description": "PriceBook owner person id"
},
"validFrom": {
"type": ["string","null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "PriceBook valid from date"
},
"validUntil": {
"type": ["string","null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "PriceBook valid until date"
},
"searchKeywords": {
"type": ["string","null"],
"description": "Indexed keywords"
}
}
},
"pricebookArray": {
"type": "object",
"required": ["currency","owner","name"],
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Name of the pricebook"
},
"id": {
"type": "integer",
"description": "Internal ID of the PriceBook"
},
"passive": {
"type": "integer",
"description": "Passive status"
},
"operationalId": {
"type": ["string","null"],
"description": "Optional external ID of the PriceBook"
},
"publishToStore": {
"type": "integer",
"description": "If pricebooks are published to a thirdparty system"
},
"currency": {
"type": "integer",
"description": "All PriceBook items will use the PriceBook currency id"
},
"currencyCode": {
"type": "string",
"description": "All PriceBook items will use the PriceBook currency"
},
"languageCode": {
"type": ["string","null"],
"description": "PriceBook may be bound to a given language-local for management handling and filtering"
},
"description": {
"type": ["string","null"],
"description": "PriceBook description"
},
"owner": {
"type": ["integer","null"],
"description": "PriceBook owner person id"
},
"validFrom": {
"type": ["string","null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "PriceBook valid from date"
},
"validUntil": {
"type": ["string","null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "PriceBook valid until date"
},
"searchKeywords": {
"type": ["string","null"],
"description": "Indexed keywords"
},
"created": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))"
},
"createdBy": {
"type": "integer",
"description": ""
},
"modified": {
"type": ["string","null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))"
},
"modifiedBy": {
"type": ["integer","null"],
"description": ""
}
}
}
}
}
Example:
{
"id": 3081,
"name": "First pricebook",
"validFrom": "2015-08-13T15:14:00.000+0300",
"validUntil": "2015-08-13T15:14:00.000+0300",
"currency": 1,
"languageCode": "en",
"supplier": 7401,
"ownerId": 6551,
"operationalId": "SKU001",
"searchKeywords": "pets",
"description": "Fluffy",
"publishToStore": 1
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for products. Includes resource's fields names and type and related filters.
View details of a single meta.
get /pricebooks/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"filters": [
{
"type": "string",
"name": "freetextsearch",
"caption": ""
},
{
"type": "string",
"name": "viewtemplate",
"value": "10",
"caption": "View by",
"values": {
"0": "All price books",
"10": "All active price books",
"20": "{All inactive price books}",
"30": "All recently created price books - last 7 days",
"40": "All recently created price books - last 14 days",
"50": "All recently created price books - last 30 days",
"60": "All recently modified price books - last 7 days",
"70": "All recently modified price books - last 14 days",
"80": "All recently modified price books - last 30 days"
}
},
{
"type": "string",
"name": "availabilityDate",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
},
{
"type": "string",
"name": "Supplier.Id",
"caption": "Supplier",
"values": {
"353": "Sample account",
"-1": "All"
}
},
{
"type": "string",
"name": "languageCode",
"caption": "Language",
"values": {
"-1": "All",
"en": "English"
}
},
{
"type": "string",
"name": "PriceBook.CurrencyId",
"caption": "Currency",
"values": {
"1": "EUR",
"-1": "All"
}
},
{
"type": "string",
"name": "DutyTypeProduct.DutyType",
"value": "-1",
"caption": "Duty type",
"values": {
"-1": "All"
}
},
{
"type": "string",
"name": "billingType",
"value": "-1",
"caption": "Billing type",
"values": {
"0": "Non-billable",
"1": "Fixed",
"2": "Time based",
"3": "Category based volume price",
"4": "Cumulative volume price",
"5": "Expenses and purchases",
"-1": "All"
}
}
],
"fields": {
"owner": {
"format": "",
"caption": null
},
"searchKeywords": {
"format": "",
"caption": null
},
"created": {
"format": "mediumdate",
"caption": "Created"
},
"description": {
"format": "text",
"caption": "Description"
},
"validFrom": {
"format": "shortdate",
"caption": "Valid from"
},
"languageCode": {
"values": {
"en-IE": "English - Ireland",
"ms-MY": "Malay - Malaysia",
"es-BO": "Spanish - Bolivia",
"en-ZA": "English - South Africa",
"ta-IN": "Tamil - India",
"el-GR": "Greek - Greece",
"nl-NL": "Dutch - The Netherlands",
"en-AU": "English - Australia",
"he-IL": "Hebrew - Israel",
"mk-MK": "Macedonian (FYROM)",
"syr-SY": "Syriac - Syria",
"en-ZW": "English - Zimbabwe",
"hu-HU": "Hungarian - Hungary",
"en-JM": "English - Jamaica",
"es-SV": "Spanish - El Salvador",
"tt-RU": "Tatar - Russia",
"es-CR": "Spanish - Costa Rica",
"es-CL": "Spanish - Chile",
"eu-ES": "Basque - Basque",
"fr-CA": "French - Canada",
"es-CO": "Spanish - Colombia",
"ar": "Arabic",
"pl-PL": "Polish - Poland",
"pt-PT": "Portuguese - Portugal",
"fr-BE": "French - Belgium",
"ky-KZ": "Kyrgyz - Kazakhstan",
"en-BZ": "English - Belize",
"nb-NO": "Norwegian (Bokmål) - Norway",
"es-HN": "Spanish - Honduras",
"hr-HR": "Croatian - Croatia",
"es-PR": "Spanish - Puerto Rico",
"zh-MO": "Chinese - Macau SAR",
"af-ZA": "Afrikaans - South Africa",
"gl-ES": "Galician - Galician",
"es-PY": "Spanish - Paraguay",
"Cy-az-AZ": "Azeri (Cyrillic) - Azerbaijan",
"de-AT": "German - Austria",
"is-IS": "Icelandic - Iceland",
"bg-BG": "Bulgarian - Bulgaria",
"Lt-sr-SP": "Serbian (Latin) - Serbia",
"cs-CZ": "Czech - Czech Republic",
"en-PH": "English - Philippines",
"zh-TW": "Chinese - Taiwan",
"ko-KR": "Korean - Korea",
"sk-SK": "Slovak - Slovakia",
"Lt-az-AZ": "Azeri (Latin) - Azerbaijan",
"ru-RU": "Russian - Russia",
"sq-AL": "Albanian - Albania",
"es-AR": "Spanish - Argentina",
"sv-SE": "Swedish - Sweden",
"mr-IN": "Marathi - India",
"da-DK": "Danish - Denmark",
"mn-MN": "Mongolian - Mongolia",
"de": "German",
"uk-UA": "Ukrainian - Ukraine",
"en-US": "English - United States",
"gu-IN": "Gujarati - India",
"lv-LV": "Latvian - Latvia",
"sa-IN": "Sanskrit - India",
"Cy-sr-SP": "Serbian (Cyrillic) - Serbia",
"zh-CN": "Chinese - China",
"nl-BE": "Dutch - Belgium",
"zh-CHT": "Chinese (Traditional)",
"ur-PK": "Urdu - Pakistan",
"te-IN": "Telugu - India",
"zh-CHS": "Chinese (Simplified)",
"hi-IN": "Hindi - India",
"hy-AM": "Armenian - Armenia",
"fo-FO": "Faroese - Faroe Islands",
"de-CH": "German - Switzerland",
"ja-JP": "Japanese - Japan",
"ka-GE": "Georgian - Georgia",
"es-GT": "Spanish - Guatemala",
"en": "English",
"nn-NO": "Norwegian (Nynorsk) - Norway",
"es": "Spanish",
"es-PE": "Spanish - Peru",
"en-NZ": "English - New Zealand",
"fa-IR": "Farsi - Iran",
"be-BY": "Belarusian - Belarus",
"zh-SG": "Chinese - Singapore",
"ro-RO": "Romanian - Romania",
"es-PA": "Spanish - Panama",
"et-EE": "Estonian - Estonia",
"it-CH": "Italian - Switzerland",
"tr-TR": "Turkish - Turkey",
"fr-FR": "French - France",
"vi-VN": "Vietnamese - Vietnam",
"en-GB": "English - United Kingdom",
"en-CB": "English - Caribbean",
"en-CA": "English - Canada",
"fi": "Finnish",
"div-MV": "Dhivehi - Maldives",
"lt-LT": "Lithuanian - Lithuania",
"fr": "French",
"sl-SI": "Slovenian - Slovenia",
"es-DO": "Spanish - Dominican Republic",
"kok-IN": "Konkani - India",
"pa-IN": "Punjabi - India",
"fr-CH": "French - Switzerland",
"kn-IN": "Kannada - India",
"es-EC": "Spanish - Ecuador",
"ca-ES": "Catalan - Catalan",
"de-DE": "German - Germany",
"zh-HK": "Chinese - Hong Kong SAR",
"en-TT": "English - Trinidad and Tobago",
"Cy-uz-UZ": "Uzbek (Cyrillic) - Uzbekistan",
"fr-MC": "French - Monaco",
"de-LI": "German - Liechtenstein",
"pt-BR": "Portuguese - Brazil",
"ms-BN": "Malay - Brunei",
"es-UY": "Spanish - Uruguay",
"sv-FI": "Swedish - Finland",
"sw-KE": "Swahili - Kenya",
"kk-KZ": "Kazakh - Kazakhstan",
"es-ES": "Spanish - Spain",
"es-VE": "Spanish - Venezuela",
"es-MX": "Spanish - Mexico",
"it-IT": "Italian - Italy",
"Lt-uz-UZ": "Uzbek (Latin) - Uzbekistan",
"id-ID": "Indonesian - Indonesia",
"de-LU": "German - Luxembourg",
"fr-LU": "French - Luxembourg",
"es-NI": "Spanish - Nicaragua",
"th-TH": "Thai - Thailand"
},
"format": "Enumeration values.System.LanguageLocale",
"caption": "Language"
},
"operationalId": {
"format": "text",
"caption": "ID"
},
"publishToStore": {
"values": {
"0": "No",
"1": "Yes"
},
"format": "Enumeration values.Administration.Jobs.Enabled",
"caption": "Publish to store"
},
"passive": {
"values": {
"0": "Active",
"1": "Inactive"
},
"format": "Enumeration values.Product catalog.Products.Status",
"caption": "Status"
},
"createdBy": {
"format": "",
"caption": null
},
"name": {
"format": "text",
"caption": "Name"
},
"validUntil": {
"format": "shortdate",
"caption": "Valid until"
},
"modified": {
"format": "mediumdate",
"caption": "Modified"
},
"currency": {
"format": "",
"caption": null
},
"modifiedBy": {
"format": "",
"caption": null
},
"id": {
"format": "",
"caption": null
},
"currencyCode": {
"format": "text",
"caption": "Currency"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single pricebook in PlanMill.
View details of a single pricebook. See pricebooks/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Update an existing resource pricebook to PlanMill. See pricebooks/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Remove a pricebook from PlanMill.
get /pricebooks/{pricebook_id}
View details of a single pricebook. See pricebooks/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- pricebook_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all pricebook entities",
"oneOf": [{
"type": "array",
"items": {
"$ref": "#/definitions/pricebookArray"
}
},
{
"$ref": "#/definitions/pricebookSingle"
}],
"definitions": {
"pricebookSingle": {
"type": "object",
"required": ["currency","owner","name"],
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Name of the pricebook"
},
"id": {
"type": "integer",
"description": "Internal ID of the PriceBook"
},
"passive": {
"type": "integer",
"description": "Passive status"
},
"operationalId": {
"type": ["string","null"],
"description": "Optional external ID of the PriceBook"
},
"currency": {
"type": "integer",
"description": "All PriceBook items will use the PriceBook currency id"
},
"languageCode": {
"type": ["string","null"],
"description": "PriceBook may be bound to a given language-local for management handling and filtering"
},
"supplier": {
"type": ["integer","null"],
"description": "PriceBook may be limited to a given Supplier (My company)"
},
"description": {
"type": ["string","null"],
"description": "PriceBook description"
},
"publishToStore": {
"type": "integer",
"description": "If pricebooks are published to a thirdparty system"
},
"owner": {
"type": ["integer","null"],
"description": "PriceBook owner person id"
},
"validFrom": {
"type": ["string","null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "PriceBook valid from date"
},
"validUntil": {
"type": ["string","null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "PriceBook valid until date"
},
"searchKeywords": {
"type": ["string","null"],
"description": "Indexed keywords"
}
}
},
"pricebookArray": {
"type": "object",
"required": ["currency","owner","name"],
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Name of the pricebook"
},
"id": {
"type": "integer",
"description": "Internal ID of the PriceBook"
},
"passive": {
"type": "integer",
"description": "Passive status"
},
"operationalId": {
"type": ["string","null"],
"description": "Optional external ID of the PriceBook"
},
"publishToStore": {
"type": "integer",
"description": "If pricebooks are published to a thirdparty system"
},
"currency": {
"type": "integer",
"description": "All PriceBook items will use the PriceBook currency id"
},
"currencyCode": {
"type": "string",
"description": "All PriceBook items will use the PriceBook currency"
},
"languageCode": {
"type": ["string","null"],
"description": "PriceBook may be bound to a given language-local for management handling and filtering"
},
"description": {
"type": ["string","null"],
"description": "PriceBook description"
},
"owner": {
"type": ["integer","null"],
"description": "PriceBook owner person id"
},
"validFrom": {
"type": ["string","null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "PriceBook valid from date"
},
"validUntil": {
"type": ["string","null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "PriceBook valid until date"
},
"searchKeywords": {
"type": ["string","null"],
"description": "Indexed keywords"
},
"created": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))"
},
"createdBy": {
"type": "integer",
"description": ""
},
"modified": {
"type": ["string","null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))"
},
"modifiedBy": {
"type": ["integer","null"],
"description": ""
}
}
}
}
}
Example:
{
"id": 3081,
"name": "First pricebook",
"validFrom": "2015-08-13T15:14:00.000+0300",
"validUntil": "2015-08-13T15:14:00.000+0300",
"currency": 1,
"languageCode": "en",
"supplier": 7401,
"ownerId": 6551,
"operationalId": "SKU001",
"searchKeywords": "pets",
"description": "Fluffy",
"publishToStore": 1
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /pricebooks/{pricebook_id}
Update an existing resource pricebook to PlanMill. See pricebooks/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- pricebook_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all pricebook entities",
"oneOf": [{
"type": "array",
"items": {
"$ref": "#/definitions/pricebookArray"
}
},
{
"$ref": "#/definitions/pricebookSingle"
}],
"definitions": {
"pricebookSingle": {
"type": "object",
"required": ["currency","owner","name"],
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Name of the pricebook"
},
"id": {
"type": "integer",
"description": "Internal ID of the PriceBook"
},
"passive": {
"type": "integer",
"description": "Passive status"
},
"operationalId": {
"type": ["string","null"],
"description": "Optional external ID of the PriceBook"
},
"currency": {
"type": "integer",
"description": "All PriceBook items will use the PriceBook currency id"
},
"languageCode": {
"type": ["string","null"],
"description": "PriceBook may be bound to a given language-local for management handling and filtering"
},
"supplier": {
"type": ["integer","null"],
"description": "PriceBook may be limited to a given Supplier (My company)"
},
"description": {
"type": ["string","null"],
"description": "PriceBook description"
},
"publishToStore": {
"type": "integer",
"description": "If pricebooks are published to a thirdparty system"
},
"owner": {
"type": ["integer","null"],
"description": "PriceBook owner person id"
},
"validFrom": {
"type": ["string","null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "PriceBook valid from date"
},
"validUntil": {
"type": ["string","null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "PriceBook valid until date"
},
"searchKeywords": {
"type": ["string","null"],
"description": "Indexed keywords"
}
}
},
"pricebookArray": {
"type": "object",
"required": ["currency","owner","name"],
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Name of the pricebook"
},
"id": {
"type": "integer",
"description": "Internal ID of the PriceBook"
},
"passive": {
"type": "integer",
"description": "Passive status"
},
"operationalId": {
"type": ["string","null"],
"description": "Optional external ID of the PriceBook"
},
"publishToStore": {
"type": "integer",
"description": "If pricebooks are published to a thirdparty system"
},
"currency": {
"type": "integer",
"description": "All PriceBook items will use the PriceBook currency id"
},
"currencyCode": {
"type": "string",
"description": "All PriceBook items will use the PriceBook currency"
},
"languageCode": {
"type": ["string","null"],
"description": "PriceBook may be bound to a given language-local for management handling and filtering"
},
"description": {
"type": ["string","null"],
"description": "PriceBook description"
},
"owner": {
"type": ["integer","null"],
"description": "PriceBook owner person id"
},
"validFrom": {
"type": ["string","null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "PriceBook valid from date"
},
"validUntil": {
"type": ["string","null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "PriceBook valid until date"
},
"searchKeywords": {
"type": ["string","null"],
"description": "Indexed keywords"
},
"created": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))"
},
"createdBy": {
"type": "integer",
"description": ""
},
"modified": {
"type": ["string","null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))"
},
"modifiedBy": {
"type": ["integer","null"],
"description": ""
}
}
}
}
}
Example:
{
"id": 3081,
"name": "First pricebook",
"validFrom": "2015-08-13T15:14:00.000+0300",
"validUntil": "2015-08-13T15:14:00.000+0300",
"currency": 1,
"languageCode": "en",
"supplier": 7401,
"ownerId": 6551,
"operationalId": "SKU001",
"searchKeywords": "pets",
"description": "Fluffy",
"publishToStore": 1
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /pricebooks/{pricebook_id}
Remove a pricebook from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- pricebook_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available items in PlanMill. This is a read-only collection.
Get a list of items
get /pricebooks/{pricebook_id}/items
Get a list of items
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- pricebook_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
[
{
"invoiceProcess": 1,
"minimumAmountToBeSold": 1000,
"masterProduct": 947,
"targetEffort": 20,
"revenueType": 1,
"description": "Price book for the product SOK1",
"discount": 0,
"operationalId": "OPP1",
"competence": null,
"priceBook": 3812,
"sellingPrice": 1000,
"warrantyPeriod": null,
"billingType": 1,
"modified": null,
"relatedToPerson": null,
"modifiedBy": null,
"id": 3817,
"salesAccount": 22,
"invoicingPeriod": 24,
"quantity": 16,
"costCenter": null,
"created": "2019-01-07T12:08:17.210+0200",
"vat": 24,
"shortDescription": "Price book item",
"contractPeriod": 2,
"unit": 1,
"task": null,
"createdBy": 50,
"name": "pricebook item api test",
"selfCost": 10.6
},
{
"invoiceProcess": 1,
"minimumAmountToBeSold": 1000,
"masterProduct": 947,
"targetEffort": 20,
"revenueType": 1,
"description": "Price book for the product SOK1",
"discount": 0,
"operationalId": "OPP3",
"competence": null,
"priceBook": 3812,
"sellingPrice": 1000,
"warrantyPeriod": null,
"billingType": 1,
"modified": null,
"relatedToPerson": null,
"modifiedBy": null,
"id": 3818,
"salesAccount": 22,
"invoicingPeriod": 24,
"quantity": 16,
"costCenter": 1,
"created": "2019-01-07T12:08:22.880+0200",
"vat": 24,
"shortDescription": "Price book item",
"contractPeriod": 2,
"unit": 1,
"task": null,
"createdBy": 50,
"name": "pricebook item api test",
"selfCost": 10.6
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for pricebook items. Includes resource's fields names and type and related filters.
View details of a single meta.
get /pricebooks/{pricebook_id}/items/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- pricebook_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"filters": null,
"fields": {
"invoiceProcess": {
"values": {
"1": "Automatic prices",
"2": "Automatic revenue items and prices",
"3": "Automatic draft invoices",
"4": "Automatic invoice confirmation"
},
"format": "Enumeration values.Product catalog.Products.Automatic invoice generation",
"caption": "Automatic invoice generation"
},
"minimumAmountToBeSold": {
"format": "number",
"caption": "Minimum amount to be sold"
},
"masterProduct": {
"format": "int",
"caption": null
},
"targetEffort": {
"format": "effortunit",
"caption": "Estimated work"
},
"revenueType": {
"values": {
"0": "Own New License",
"1": "Own Maintenance License",
"2": "3rd Party New License",
"3": "3rd Party Maint License",
"4": "Services",
"5": "Hosting",
"6": "Travel expenses",
"7": "Other",
"8": "Subscription",
"9": "3rd Party Subscription"
},
"format": "Enumeration values.Invoice position.Type",
"caption": "Revenue type"
},
"description": {
"format": "text",
"caption": "Description"
},
"discount": {
"format": "percent",
"caption": "Discount"
},
"operationalId": {
"format": "int",
"caption": null
},
"competence": {
"format": "text",
"caption": "Competence"
},
"priceBook": {
"format": "int",
"caption": "PriceBook Id"
},
"sellingPrice": {
"format": "currency",
"caption": "Price"
},
"warrantyPeriod": {
"values": {
"7": "7 Days",
"14": "14 Days",
"30": "30 Days",
"60": "2 Months",
"90": "3 Months",
"120": "4 Months",
"150": "5 Months",
"180": "6 Months",
"360": "12 Months",
"540": "18 Months",
"720": "2 Years",
"1080": "3 Years",
"1440": "4 Years",
"1800": "5 Years"
},
"format": "Enumeration values.Product catalog.Products.Warranty period",
"caption": "Warranty period"
},
"billingType": {
"values": {
"0": "Non-billable",
"1": "Fixed",
"2": "Time based",
"3": "Category based volume price",
"4": "Cumulative volume price",
"5": "Expenses and purchases"
},
"format": "Enumeration values.Product catalog.Products.Billing type",
"caption": "Billing type"
},
"modified": {
"format": "mediumdate",
"caption": "Modified"
},
"relatedToPerson": {
"values": {
"0": "No",
"1": "Yes"
},
"format": "Enumeration values.Administration.Parameters.Enabled",
"caption": "Person"
},
"modifiedBy": {
"format": "int",
"caption": "Modified by"
},
"id": {
"format": "int",
"caption": null
},
"salesAccount": {
"values": {
"0": "Own New License",
"1": "Own Maintenance License",
"2": "3rd Party New License",
"3": "3rd Party Maint License",
"4": "Services",
"5": "Hosting",
"6": "Travel expenses",
"7": "Misc.",
"8": "Subscription",
"9": "3rd Party Subscription"
},
"format": "Enumeration values.Finance control.Invoice position summary.Invoices.Account",
"caption": "Sales account"
},
"invoicingPeriod": {
"values": {
"1": "1 week Postpaid",
"2": "1 month Postpaid",
"3": "1 month (last day) Postpaid",
"4": "2 months Postpaid",
"5": "2 months (last day) Postpaid",
"6": "3 months Postpaid",
"7": "3 months (last day) Postpaid",
"8": "4 months Postpaid",
"9": "4 months (last day) Postpaid",
"10": "6 months Postpaid",
"11": "6 months (last day) Postpaid",
"12": "12 months Postpaid",
"13": "2 weeks Postpaid",
"14": "12 months (last day) Postpaid",
"23": "2 weeks (15th and last day) Postpaid",
"37": "4 weeks Postpaid",
"100": "Advance payment",
"110": "Payment after delivery",
"120": "50 % advance/ 50 % after delivery",
"optgroup": "Postpaid",
"-10": "6 months Prepaid",
"-11": "6 months (last day) Prepaid",
"-12": "12 months Prepaid",
"-13": "2 weeks Prepaid",
"-14": "12 months (last day) Prepaid",
"-15": "6 months (last day of first month) Prepaid",
"-16": "3 months (last day of first month) Prepaid",
"-17": "12 months (last day of first month) Prepaid",
"/optgroup": "-",
"-2": "1 month Prepaid",
"-3": "1 month (last day) Prepaid",
"-4": "2 months Prepaid",
"-5": "2 months (last day) Prepaid",
"-6": "3 months Prepaid",
"-7": "3 months (last day) Prepaid",
"-8": "4 months Prepaid",
"-9": "4 months (last day) Prepaid",
"-22": "1 months (1 month in advance) Prepaid",
"-23": "2 weeks (15th and last day) Prepaid",
"-24": "2 weeks (first and 15th day) Prepaid"
},
"format": "Enumeration values.Sales management.Sales orders.Sales order item.Invoicing period",
"caption": "Inv. period"
},
"quantity": {
"format": "int",
"caption": "Quantity"
},
"costCenter": {
"values": {
"3100": "3100 Customer R&S Finland",
"4100": "4100 Customer R&S international"
},
"format": "Enumeration values.Finance control.Invoice position summary.Invoices.Cost center",
"caption": "Cost center"
},
"created": {
"format": "mediumdate",
"caption": "Created"
},
"vat": {
"format": "percent",
"caption": "VAT"
},
"shortDescription": {
"format": "text",
"caption": "Short description"
},
"contractPeriod": {
"values": {
"10": "1 week",
"20": "2 weeks",
"30": "1 month",
"40": "1 month (last day)",
"50": "2 months",
"60": "2 months (last day)",
"70": "3 months",
"80": "3 months (last day)",
"90": "4 months",
"100": "4 months (last day)",
"110": "6 months",
"120": "6 months (last day)",
"130": "12 months (1 year)",
"140": "24 months (2 years)",
"150": "36 months (3 years)",
"160": "48 months (4 years)",
"170": "60 months (5 years)",
"180": "72 months (6 years)",
"190": "84 months (7 years)",
"200": "96 months (8 years)",
"210": "108 months (9 years)",
"220": "120 months (10 years)",
"230": "180 months (15 years)",
"240": "240 months (20 years)"
},
"format": "Enumeration values.Product catalog.Products.Contract period",
"caption": "Contract period"
},
"unit": {
"values": {
"1": "unit",
"2": "h",
"3": "pcs",
"4": "days",
"5": "mth",
"6": "%",
"7": "users",
"8": "servers",
"10": "wk",
"11": "h/month",
"12": "units/months",
"13": "days/month",
"14": "users/month",
"15": "packets",
"16": "pcs/month"
},
"format": "Enumeration values.Pricing.Unit",
"caption": "Unit"
},
"task": {
"format": "int",
"caption": "Task ID"
},
"createdBy": {
"format": "int",
"caption": "Created by"
},
"name": {
"format": "text",
"caption": "Name"
},
"selfCost": {
"format": "currency",
"caption": "Self cost"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
attachment_id is returned by /tempfiles endpoint on file upload.
View details of single item.
put /pricebooks/{pricebook_id}/items/{item_id}
attachment_id is returned by /tempfiles endpoint on file upload.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- pricebook_id: required(string)
- item_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
get /pricebooks/{pricebook_id}/items/{item_id}
View details of single item.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- pricebook_id: required(string)
- item_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"invoiceProcess": 1,
"minimumAmountToBeSold": 1000,
"masterProduct": 947,
"targetEffort": 20,
"revenueType": 1,
"description": "Price book for the product SOK1",
"discount": 0,
"operationalId": "OPP1",
"competence": null,
"priceBook": 3812,
"sellingPrice": 1000,
"warrantyPeriod": null,
"billingType": 1,
"modified": null,
"relatedToPerson": null,
"modifiedBy": null,
"id": 3817,
"salesAccount": 22,
"invoicingPeriod": 24,
"quantity": 16,
"costCenter": null,
"created": "2019-01-07T12:08:17.210+0200",
"vat": 24,
"shortDescription": "Price book item",
"contractPeriod": 2,
"unit": 1,
"task": null,
"createdBy": 50,
"name": "pricebook item api test",
"selfCost": 10.6
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for pricebook specific item. Includes resource's fields names and type and related filters.
View details of a single meta.
get /pricebooks/{pricebook_id}/items/{item_id}/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- pricebook_id: required(string)
- item_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"invoiceProcess": {
"type": "string",
"caption": "Automatic invoice generation",
"values": {
"1": "Automatic prices",
"2": "Automatic revenue items and prices",
"3": "Automatic draft invoices",
"4": "Automatic invoice confirmation",
"": "-"
},
"format": "short"
},
"salesAccount": {
"type": "string",
"caption": "Sales account",
"values": {
"0": "Own New License",
"1": "Own Maintenance License",
"2": "3rd Party New License",
"3": "3rd Party Maint License",
"4": "Services",
"5": "Hosting",
"6": "Travel expenses",
"7": "Misc.",
"8": "Subscription",
"9": "3rd Party Subscription"
},
"format": "short"
},
"minimumAmountToBeSold": {
"type": "string",
"caption": "Minimum amount to be sold",
"format": "double",
"values": null
},
"invoicingPeriod": {
"type": "string",
"caption": "Inv. period",
"values": {
"1": "1 week Postpaid",
"2": "1 month Postpaid",
"3": "1 month (last day) Postpaid",
"4": "2 months Postpaid",
"5": "2 months (last day) Postpaid",
"6": "3 months Postpaid",
"7": "3 months (last day) Postpaid",
"8": "4 months Postpaid",
"9": "4 months (last day) Postpaid",
"10": "6 months Postpaid",
"11": "6 months (last day) Postpaid",
"12": "12 months Postpaid",
"13": "2 weeks Postpaid",
"14": "12 months (last day) Postpaid",
"23": "2 weeks (15th and last day) Postpaid",
"37": "4 weeks Postpaid",
"100": "Advance payment",
"110": "Payment after delivery",
"120": "50 % advance/ 50 % after delivery",
"-10": "6 months Prepaid",
"-11": "6 months (last day) Prepaid",
"-12": "12 months Prepaid",
"-13": "2 weeks Prepaid",
"-14": "12 months (last day) Prepaid",
"-15": "6 months (last day of first month) Prepaid",
"-16": "3 months (last day of first month) Prepaid",
"-17": "12 months (last day of first month) Prepaid",
"-2": "1 month Prepaid",
"-3": "1 month (last day) Prepaid",
"-4": "2 months Prepaid",
"-5": "2 months (last day) Prepaid",
"-6": "3 months Prepaid",
"-7": "3 months (last day) Prepaid",
"-8": "4 months Prepaid",
"-9": "4 months (last day) Prepaid",
"-22": "1 months (1 month in advance) Prepaid",
"-23": "2 weeks (15th and last day) Prepaid",
"-24": "2 weeks (first and 15th day) Prepaid"
},
"format": "short"
},
"quantity": {
"type": "string",
"caption": "Quantity",
"format": "double",
"values": null
},
"masterProduct": {
"type": "string",
"caption": "Product",
"values": {
"947": "Sample product group \\ Fixed fee based recurring service, ID: 2",
"948": "Sample product group \\ Time and material based service, ID: 3",
"1314": "Sample product group \\ pm test product, ID: 13",
"1321": "Sample product group \\ pm test product, ID: 15",
"1327": "Sample product group \\ pm test product, ID: 16",
"": "-",
"Sample product group \\ Time and material based service, ID: 3": 948,
"Sample product group \\ pm test product, ID: 16": 1327,
"Sample product group \\ pm test product, ID: 15": 1321,
"Sample product group \\ Fixed fee based recurring service, ID: 2": 947,
"Sample product group \\ pm test product, ID: 13": 1314
},
"format": "int"
},
"targetEffort": {
"type": "string",
"caption": "Estimated work",
"format": "double",
"values": null
},
"costCenter": {
"type": "string",
"caption": "Cost center",
"values": {
"3100": "3100 Customer R&S Finland",
"4100": "4100 Customer R&S international",
"-1": "-"
},
"format": "short"
},
"vat": {
"type": "string",
"caption": "VAT",
"values": {
"": "-",
"6.25": "6,25 %",
"15.0": "15 %",
"0.0": "0 %",
"14.0": "14 %",
"25.0": "25 %",
"13.0": "13 %",
"24.0": "24 %",
"12.0": "12%",
"23.0": "23 %",
"22.0": "22 %",
"10.0": "10 %",
"21.0": "21 %",
"5.0": "5 %",
"20.0": "20 %",
"6.0": "6 %",
"7.0": "7 %",
"8.0": "8 %",
"17.5": "17,5 %",
"9.0": "9%",
"19.0": "19 %",
"7.5": "7,5 %",
"18.0": "18 %",
"17.0": "17 %"
},
"format": "double"
},
"revenueType": {
"type": "string",
"caption": "Revenue type",
"values": {
"0": "Own New License",
"1": "Own Maintenance License",
"2": "3rd Party New License",
"3": "3rd Party Maint License",
"4": "Services",
"5": "Hosting",
"6": "Travel expenses",
"7": "Other",
"8": "Subscription",
"9": "3rd Party Subscription"
},
"format": "short"
},
"discount": {
"type": "string",
"value": "0.0",
"caption": "Discount",
"format": "double",
"values": null
},
"description": {
"type": "string",
"caption": "",
"format": "string",
"description": "",
"values": null
},
"shortDescription": {
"type": "string",
"caption": "",
"format": "string",
"description": "",
"values": null
},
"contractPeriod": {
"type": "string",
"caption": "Contract period",
"values": {
"10": "1 week",
"20": "2 weeks",
"30": "1 month",
"40": "1 month (last day)",
"50": "2 months",
"60": "2 months (last day)",
"70": "3 months",
"80": "3 months (last day)",
"90": "4 months",
"100": "4 months (last day)",
"110": "6 months",
"120": "6 months (last day)",
"130": "12 months (1 year)",
"140": "24 months (2 years)",
"150": "36 months (3 years)",
"160": "48 months (4 years)",
"170": "60 months (5 years)",
"180": "72 months (6 years)",
"190": "84 months (7 years)",
"200": "96 months (8 years)",
"210": "108 months (9 years)",
"220": "120 months (10 years)",
"230": "180 months (15 years)",
"240": "240 months (20 years)",
"": "-"
},
"format": "short"
},
"priceBook": {
"type": "string",
"value": "3812",
"caption": "",
"format": "int",
"values": null
},
"unit": {
"type": "string",
"caption": "Unit",
"values": {
"1": "unit",
"2": "h",
"3": "pcs",
"4": "days",
"5": "mth",
"6": "%",
"7": "users",
"8": "servers",
"10": "wk",
"11": "h/month",
"12": "units/months",
"13": "days/month",
"14": "users/month",
"15": "packets",
"16": "pcs/month",
"": "-"
},
"format": "short"
},
"sellingPrice": {
"type": "string",
"caption": "Price",
"format": "double",
"values": null
},
"billingType": {
"type": "string",
"caption": "Billing type",
"values": {
"0": "Non-billable",
"1": "Fixed",
"2": "Time based",
"3": "Category based volume price",
"4": "Cumulative volume price",
"5": "Expenses and purchases"
},
"format": "short"
},
"name": {
"type": "string",
"caption": "Name",
"format": "string",
"values": null
},
"id": {
"type": "string",
"value": "3816",
"format": "int",
"values": null
},
"selfCost": {
"type": "string",
"caption": "Self cost",
"format": "double",
"values": null
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/products
To manage and list all products in a company. See /meta -endpoint.
Get a list of products. See products/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
To create the new product from the request body
get /products
Get a list of products. See products/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- id: (integer)
Filters products for a specified products id
Example:
id={product id}
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (string)
Sorts the results using string that is a JSON attribute
- interval?: (string)
Interval type, e.g. start, finish, created, or modified. It is required in combination with intervalstart or intervalfinish
- intervalstart?: (string)
Start date of the interval in UTC format, intervalfinish required
Example:
2021-08-05T00:00:00.000+0200
- intervalfinish?: (string)
Finish date of the interval in UTC format, intervalstart required
Example:
2021-08-05T00:00:00.000+0200
HTTP status code 200
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all product entities",
"oneOf": [
{
"type": "array",
"items": { "$ref": "#/definitions/products" }
},
{
"$ref": "#/definitions/products"
}
],
"definitions": {
"products": {
"type": "array",
"required": [ "productGroup", "validFrom", "validUntil"],
"additionalProperties": false,
"properties": {
"productGroup": {
"type": [ "integer" ],
"description": "product group"
},
"name": {
"type": "string",
"description": "The name of the product"
},
"project": {
"type": [ "integer", "null" ],
"description": "Project id of the product"
},
"owner": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "owner of the product"
},
"salesAccount": {
"type": "integer",
"description": "sales Account id of the product"
},
"customer": {
"type": [ "integer", "null" ],
"description": "customer id"
},
"invoiceProcess": {
"type": [ "string", "null" ],
"description": "The Invoice process state of the product"
},
"dutyType": {
"type": [ "integer", "null" ],
"description": "duty Type"
},
"productType": {
"type": "integer",
"description": "product type"
},
"minimumAmountToBeSold": {
"type": "number",
"description": "minimum amount to be sold of the product"
},
"targetEffort": {
"type": "integer",
"description": "targeted effort of the product"
},
"revenueType": {
"type": [ "integer", "null" ],
"description": "revenue type of the product"
},
"operationalId": {
"type": [ "integer", "null" ],
"description": "operationalId of the product"
},
"validFrom": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "valid from date of the product"
},
"validUntil": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Modification date of an absence of the product"
},
"competence": {
"type": "integer",
"description": "competence id of the product"
},
"sellingPrice": {
"type": "number",
"description": "selling price of the product"
},
"warrantyPeriod": {
"type": "integer",
"description": "warranty period of the product"
},
"link1": {
"type": "string",
"description": "link 1 of the product"
},
"link2": {
"type": "string",
"description": "link 2 of the product"
},
"link3": {
"type": "string",
"description": "link 3 of the product"
},
"link4": {
"type": "string",
"description": "link 4 of the product"
},
"billingType": {
"type": "integer",
"description": "billing type of the product"
},
"vendor": {
"type": "integer",
"description": "vendor id of the product"
},
"supplier": {
"type": "integer",
"description": "supplier id of the product"
},
"relatedToPerson": {
"type": "integer",
"description": "person id to whom product related to"
},
"invoicingPeriod": {
"type": "integer",
"description": "invoicing period id of the product"
},
"quantity": {
"type": "integer",
"description": "quantity of the product"
},
"costCenter": {
"type": "integer",
"description": "cost center of the product"
},
"vat": {
"type": "integer",
"description": "VAT of the product"
},
"publishToStore": {
"type": "integer",
"description": "publish to store of the product"
},
"passive": {
"type": "integer",
"description": "passive state of the product"
},
"contractPeriod": {
"type": "integer",
"description": "contract period id of the product"
},
"unit": {
"type": "integer",
"description": "unit of the product"
},
"selfCost": {
"type": "number",
"description": "self cost of the product"
},
"searchKeywords": {
"type": "string",
"description": "search key words of the product"
},
"description": {
"type": "string",
"description": "product description of the product"
},
"shortDescription": {
"type": "string",
"description": "short product description of the product"
},
"comment": {
"type": "string",
"description": "comments about the product"
}
}
}
}
}
Example:
[
{
"minimumAmountToBeSold": null,
"targetEffort": null,
"searchKeywords": "",
"revenueType": null,
"discount": 0,
"validFrom": "2018-12-01T00:00:00.000+0200",
"operationalId": 35,
"type": 1,
"parentProduct": 946,
"competence": null,
"sellingPrice": 0,
"warrantyPeriod": null,
"billingType": 1,
"vendor": null,
"supplier": null,
"modified": null,
"modifiedBy": null,
"relatedToPerson": null,
"id": 1373,
"owner": 356,
"salesAccount": null,
"invoicingPeriod": null,
"operationalId": 12,
"quantity": null,
"costCenter": null,
"created": "2018-12-31T12:36:13.833+0200",
"vat": 24,
"publishToStore": 0,
"passive": 0,
"unit": null,
"task": null,
"createdBy": 50,
"name": "pm test product 2",
"validUntil": null,
"selfCost": 0,
"customer": null
},
{
"minimumAmountToBeSold": null,
"targetEffort": 0,
"searchKeywords": "",
"revenueType": 4,
"discount": 0,
"validFrom": "2017-01-01T00:00:00.000+0200",
"operationalId": 3,
"type": 100,
"parentProduct": 946,
"competence": null,
"sellingPrice": 0,
"warrantyPeriod": null,
"billingType": 2,
"vendor": null,
"supplier": null,
"operationalId": 12,
"modified": "2018-01-24T14:59:16.270+0200",
"modifiedBy": 50,
"relatedToPerson": null,
"id": 948,
"owner": 356,
"salesAccount": 4,
"invoicingPeriod": 3,
"quantity": null,
"costCenter": null,
"created": "2015-11-23T02:04:21.600+0200",
"vat": 24,
"publishToStore": 0,
"passive": 0,
"unit": 2,
"task": null,
"createdBy": 50,
"name": "Time and material based service",
"validUntil": null,
"selfCost": 0,
"customer": null
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /products
To create the new product from the request body
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all product entities",
"oneOf": [
{
"type": "array",
"items": { "$ref": "#/definitions/products" }
},
{
"$ref": "#/definitions/products"
}
],
"definitions": {
"products": {
"type": "array",
"required": [ "productGroup", "validFrom", "validUntil"],
"additionalProperties": false,
"properties": {
"productGroup": {
"type": [ "integer" ],
"description": "product group"
},
"name": {
"type": "string",
"description": "The name of the product"
},
"project": {
"type": [ "integer", "null" ],
"description": "Project id of the product"
},
"owner": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "owner of the product"
},
"salesAccount": {
"type": "integer",
"description": "sales Account id of the product"
},
"customer": {
"type": [ "integer", "null" ],
"description": "customer id"
},
"invoiceProcess": {
"type": [ "string", "null" ],
"description": "The Invoice process state of the product"
},
"dutyType": {
"type": [ "integer", "null" ],
"description": "duty Type"
},
"productType": {
"type": "integer",
"description": "product type"
},
"minimumAmountToBeSold": {
"type": "number",
"description": "minimum amount to be sold of the product"
},
"targetEffort": {
"type": "integer",
"description": "targeted effort of the product"
},
"revenueType": {
"type": [ "integer", "null" ],
"description": "revenue type of the product"
},
"operationalId": {
"type": [ "integer", "null" ],
"description": "operationalId of the product"
},
"validFrom": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "valid from date of the product"
},
"validUntil": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Modification date of an absence of the product"
},
"competence": {
"type": "integer",
"description": "competence id of the product"
},
"sellingPrice": {
"type": "number",
"description": "selling price of the product"
},
"warrantyPeriod": {
"type": "integer",
"description": "warranty period of the product"
},
"link1": {
"type": "string",
"description": "link 1 of the product"
},
"link2": {
"type": "string",
"description": "link 2 of the product"
},
"link3": {
"type": "string",
"description": "link 3 of the product"
},
"link4": {
"type": "string",
"description": "link 4 of the product"
},
"billingType": {
"type": "integer",
"description": "billing type of the product"
},
"vendor": {
"type": "integer",
"description": "vendor id of the product"
},
"supplier": {
"type": "integer",
"description": "supplier id of the product"
},
"relatedToPerson": {
"type": "integer",
"description": "person id to whom product related to"
},
"invoicingPeriod": {
"type": "integer",
"description": "invoicing period id of the product"
},
"quantity": {
"type": "integer",
"description": "quantity of the product"
},
"costCenter": {
"type": "integer",
"description": "cost center of the product"
},
"vat": {
"type": "integer",
"description": "VAT of the product"
},
"publishToStore": {
"type": "integer",
"description": "publish to store of the product"
},
"passive": {
"type": "integer",
"description": "passive state of the product"
},
"contractPeriod": {
"type": "integer",
"description": "contract period id of the product"
},
"unit": {
"type": "integer",
"description": "unit of the product"
},
"selfCost": {
"type": "number",
"description": "self cost of the product"
},
"searchKeywords": {
"type": "string",
"description": "search key words of the product"
},
"description": {
"type": "string",
"description": "product description of the product"
},
"shortDescription": {
"type": "string",
"description": "short product description of the product"
},
"comment": {
"type": "string",
"description": "comments about the product"
}
}
}
}
}
Example:
{
"invoiceProcess": "1",
"dutyType": 2,
"productType": 1,
"type": 100,
"minimumAmountToBeSold": 10,
"targetEffort": null,
"searchKeywords": "",
"revenueType": 2,
"project": null,
"description": "<p>Product product</p>",
"validFrom": "2017-01-01T00:00:00.000+0200",
"competence": 1,
"sellingPrice": 1000,
"warrantyPeriod": "2",
"link1": "sdfs",
"operationalId": 299999,
"billingType": 1,
"vendor": 2,
"supplier": 353,
"link4": "sdf",
"relatedToPerson": 50,
"link3": "sdf",
"link2": "sdf",
"owner": 356,
"salesAccount": 2,
"invoicingPeriod": 2,
"quantity": 10,
"costCenter": 3100,
"vat": 24,
"shortDescription": "<p>Product Descripton short</p>",
"publishToStore": "1",
"passive": 0,
"contractPeriod": 2,
"unit": "2",
"productGroup": 946,
"name": "API Test product",
"validUntil": "2018-12-31T00:00:00.000+0200",
"comment": "<p>Product comment</p>",
"selfCost": 10.5,
"customer": 51
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for productss. Includes resource's fields names and type and related filters
View details of a single meta.
get /products/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"filters": [
{
"type": "string",
"name": "searchkey",
"caption": ""
},
{
"type": "string",
"name": "viewby",
"value": "10",
"caption": "View by",
"values": {
"0": "All products",
"10": "All active products",
"20": "All inactive products",
"30": "All recently created products - last 7 days",
"40": "All recently created products - last 14 days",
"50": "All recently created product - last 30 days",
"60": "All recently modified products - last 7 days",
"70": "All recently modified products - last 14 days",
"80": "All recently modified product - last 30 days"
}
},
{
"type": "string",
"name": "rowcount",
"value": "100",
"caption": "Rows",
"values": {
"25": "25",
"50": "50",
"75": "75",
"100": "100",
"150": "150",
"250": "250"
}
},
{
"type": "multivalue",
"name": "ParentGroup",
"value": "-100",
"caption": "Product group",
"values": {
"946": "Sample product group",
"1305": "Sample product group \\ pm test product 1",
"1306": "Sample product group \\ pm test product 1",
"-1": "All",
"-101": "All inactive product groups",
"-100": "All active product groups"
}
},
{
"type": "multivalue",
"name": "type",
"value": "-1",
"caption": "Type",
"values": {
"1": "Group",
"100": "Product",
"-1": "All"
}
},
{
"type": "multivalue",
"name": "revenueType",
"value": "-1",
"caption": "Revenue type",
"values": {
"1": "Own Maintenance License",
"2": "3rd Party New License",
"4": "Services",
"-1": "All"
}
}
],
"fields": {
"minimumAmountToBeSold": {
"format": "number",
"caption": "Minimum amount to be sold"
},
"targetEffort": {
"format": "effortunit",
"caption": "Estimated work"
},
"searchKeywords": {
"format": "",
"caption": "Search keywords"
},
"revenueType": {
"values": {
"0": "Own New License",
"1": "Own Maintenance License",
"2": "3rd Party New License",
"3": "3rd Party Maint License",
"4": "Services",
"5": "Hosting",
"6": "Travel expenses",
"7": "Other",
"8": "Subscription",
"9": "3rd Party Subscription"
},
"format": "Enumeration values.Invoice position.Type",
"caption": "Revenue type"
},
"discount": {
"format": "percent",
"caption": "Discount"
},
"validFrom": {
"format": "shortdate",
"caption": "Valid from"
},
"operationalId": {
"format": "text",
"caption": "ID"
},
"type": {
"values": {
"1": "Group",
"100": "Product"
},
"format": "Enumeration values.Product catalog.Products.Type",
"caption": "Type"
},
"parentProduct": {
"format": "text",
"caption": "ParentProduct.Id"
},
"competence": {
"format": "text",
"caption": "Product.CompetenceId"
},
"sellingPrice": {
"format": "currency",
"caption": "Price"
},
"warrantyPeriod": {
"values": {
"7": "7 Days",
"14": "14 Days",
"30": "30 Days",
"60": "2 Months",
"90": "3 Months",
"120": "4 Months",
"150": "5 Months",
"180": "6 Months",
"360": "12 Months",
"540": "18 Months",
"720": "2 Years",
"1080": "3 Years",
"1440": "4 Years",
"1800": "5 Years"
},
"format": "Enumeration values.Product catalog.Products.Warranty period",
"caption": "Warranty period"
},
"billingType": {
"values": {
"0": "Non-billable",
"1": "Fixed",
"2": "Time based",
"3": "Category based volume price",
"4": "Cumulative volume price",
"5": "Expenses and purchases"
},
"format": "Enumeration values.Product catalog.Products.Billing type",
"caption": "Billing type"
},
"vendor": {
"format": "text",
"caption": "Product.VendorId"
},
"supplier": {
"format": "text",
"caption": "Product.SupplierId"
},
"modified": {
"format": "mediumdate",
"caption": "Modified"
},
"modifiedBy": {
"format": "text",
"caption": "ModifiedPerson.Id"
},
"relatedToPerson": {
"format": "text",
"caption": "Product.PersonId"
},
"id": {
"format": "text",
"caption": "Product.Id"
},
"owner": {
"format": "text",
"caption": "Product.ProductOwnerId"
},
"salesAccount": {
"values": {
"0": "Own New License",
"1": "Own Maintenance License",
"2": "3rd Party New License",
"3": "3rd Party Maint License",
"4": "Services",
"5": "Hosting",
"6": "Travel expenses",
"7": "Misc.",
"8": "Subscription",
"9": "3rd Party Subscription"
},
"format": "Enumeration values.Finance control.Invoice position summary.Invoices.Account",
"caption": "Sales account"
},
"invoicingPeriod": {
"values": {
"1": "1 week Postpaid",
"2": "1 month Postpaid",
"3": "1 month (last day) Postpaid",
"4": "2 months Postpaid",
"5": "2 months (last day) Postpaid",
"6": "3 months Postpaid",
"7": "3 months (last day) Postpaid",
"8": "4 months Postpaid",
"9": "4 months (last day) Postpaid",
"10": "6 months Postpaid",
"11": "6 months (last day) Postpaid",
"12": "12 months Postpaid",
"13": "2 weeks Postpaid",
"14": "12 months (last day) Postpaid",
"23": "2 weeks (15th and last day) Postpaid",
"37": "4 weeks Postpaid",
"100": "Advance payment",
"110": "Payment after delivery",
"120": "50 % advance/ 50 % after delivery",
"optgroup": "Postpaid",
"-10": "6 months Prepaid",
"-11": "6 months (last day) Prepaid",
"-12": "12 months Prepaid",
"-13": "2 weeks Prepaid",
"-14": "12 months (last day) Prepaid",
"-15": "6 months (last day of first month) Prepaid",
"-16": "3 months (last day of first month) Prepaid",
"-17": "12 months (last day of first month) Prepaid",
"/optgroup": "-",
"-2": "1 month Prepaid",
"-3": "1 month (last day) Prepaid",
"-4": "2 months Prepaid",
"-5": "2 months (last day) Prepaid",
"-6": "3 months Prepaid",
"-7": "3 months (last day) Prepaid",
"-8": "4 months Prepaid",
"-9": "4 months (last day) Prepaid",
"-22": "1 months (1 month in advance) Prepaid",
"-23": "2 weeks (15th and last day) Prepaid",
"-24": "2 weeks (first and 15th day) Prepaid"
},
"format": "Enumeration values.Sales management.Sales orders.Sales order item.Invoicing period",
"caption": "Inv. period"
},
"quantity": {
"format": "text",
"caption": "Quantity"
},
"costCenter": {
"values": {
"3100": "3100 Customer R&S Finland",
"4100": "4100 Customer R&S international"
},
"format": "Enumeration values.Finance control.Invoice position summary.Invoices.Cost center",
"caption": "Cost center"
},
"created": {
"format": "mediumdate",
"caption": "Created"
},
"vat": {
"format": "percent",
"caption": "VAT"
},
"publishToStore": {
"values": {
"0": "No",
"1": "Yes"
},
"format": "Enumeration values.Administration.Jobs.Enabled",
"caption": "Publish to store"
},
"passive": {
"values": {
"0": "Active",
"1": "Inactive"
},
"format": "Enumeration values.Product catalog.Products.Status",
"caption": "Status"
},
"unit": {
"values": {
"1": "unit",
"2": "h",
"3": "pcs",
"4": "days",
"5": "mth",
"6": "%",
"7": "users",
"8": "servers",
"10": "wk",
"11": "h/month",
"12": "units/months",
"13": "days/month",
"14": "users/month",
"15": "packets",
"16": "pcs/month"
},
"format": "Enumeration values.Pricing.Unit",
"caption": "Unit"
},
"task": {
"format": "text",
"caption": "Product.TaskId"
},
"createdBy": {
"format": "text",
"caption": "CreatedPerson.Id"
},
"name": {
"format": "text",
"caption": "Name"
},
"validUntil": {
"format": "shortdate",
"caption": "Valid until"
},
"selfCost": {
"format": "currency",
"caption": "Self cost"
},
"customer": {
"format": "text",
"caption": "Product.CustomerId"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
To update the existing product from the request body with {product_id} in the url
View details of single product.
put /products/{product_id}
To update the existing product from the request body with {product_id} in the url
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- product_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
get /products/{product_id}
View details of single product.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- product_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"invoiceProcess": "1",
"dutyType": 2,
"productType": 1,
"type": 100,
"minimumAmountToBeSold": 10,
"targetEffort": null,
"searchKeywords": "",
"revenueType": 2,
"project": null,
"description": "<p>Product product</p>",
"validFrom": "2017-01-01T00:00:00.000+0200",
"competence": 1,
"sellingPrice": 1000,
"warrantyPeriod": "2",
"link1": "sdfs",
"operationalId": 299999,
"billingType": 1,
"vendor": 2,
"supplier": 353,
"link4": "sdf",
"relatedToPerson": 50,
"link3": "sdf",
"link2": "sdf",
"owner": 356,
"salesAccount": 2,
"invoicingPeriod": 2,
"quantity": 10,
"costCenter": 3100,
"vat": 24,
"shortDescription": "<p>Product Descripton short</p>",
"publishToStore": "1",
"passive": 0,
"contractPeriod": 2,
"unit": "2",
"productGroup": 946,
"name": "API Test product",
"validUntil": "2018-12-31T00:00:00.000+0200",
"comment": "<p>Product comment</p>",
"selfCost": 10.5,
"customer": 51
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available attachments in PlanMill. This is a read-only collection.
Get a list of attachments
get /products/{product_id}/attachments
Get a list of attachments
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- product_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
[
{
"size": 8497,
"createdBy": 50,
"created": "2022-01-13T13:05:10.837+0200",
"name": "attached_file_test.txt",
"modified": "2022-01-13T13:18:25.353+0200",
"id": 1543
},
{
"size": 146169,
"createdBy": 50,
"created": "2022-01-13T13:18:25.353+0200",
"name": "attached_file.txt",
"modified": "2022-01-13T13:18:25.353+0200",
"id": 1545
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
attachment_id is returned by /tempfiles endpoint on file upload.
View details of single attachment.
put /products/{product_id}/attachments/{attachment_id}
attachment_id is returned by /tempfiles endpoint on file upload.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- product_id: required(string)
- attachment_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
get /products/{product_id}/attachments/{attachment_id}
View details of single attachment.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- product_id: required(string)
- attachment_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
Contents of file
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/projects
reportedHours -field returns minutes like all other effortunit-formatted fields. See /meta -endpoint.
Get a list of projects. See projects/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Add a new project to PlanMill or update existing (if id is given). See projects/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /projects
Get a list of projects. See projects/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- name: (string)
Filters projects for a specified project name
Example:
name={existing_project_name}
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (string)
Sorts the results using string that is a JSON attribute
- interval?: (string)
Interval type, e.g. start, finish, created, or modified. It is required in combination with intervalstart or intervalfinish
- intervalstart?: (string)
Start date of the interval in UTC format, intervalfinish required
Example:
2021-08-05T00:00:00.000+0200
- intervalfinish?: (string)
Finish date of the interval in UTC format, intervalstart required
Example:
2021-08-05T00:00:00.000+0200
HTTP status code 200
Body
Media type: application/json
Type: array of project
Items: project
- name: (string)
Project's name.
- status: (integer)
Enumeration of a project's status: 1=Draft, 2=Preliminary, 3=Execution,4=Aborted, 5=Closed, 6=On hold, 8=Archived
- billableStatus: (integer)
Used in enumeration of billableStatus
- portfolio: (integer)
Portfolio id of Project
- category: (union of integer or nil)
Enumeration of a project's category: -1=NULL , 10=Absence,20=Administration, 30=Development, 40=Delivery, 50=R & D, 60=Support, 70=Sales, 80=Marketing,90=Education, 100=Continuous service, 110=Maintenance
- contact: (number)
Contact's id that is related to a project, Required only if billable status is 1 or 2
- invoiceReference: (string)
Invoice reference of a project
- description: (union of string or nil)
Description of a project
- billingAccount: (union of integer or nil)
Billing account Id of a project - set if different to the account of the contact.
- autoAcceptTimeReports: (integer)
Enumeration of autoAcceptTimeReports: 0=No, 1=Yes
- requireBillableComment: (integer)
Enumeration of requireBillableComment: 0=No, 1=For all billabletasks,2=For all tasks
- setRequestPerformerAsTeamMember: (integer)
Enumeration of requestPerformerAsTeamMember: 0=No, 1=Yes
- requireCommentForOvertime: (integer)
Enumeration of requireBillableComment: 0=No, 1=For all billable tasks,2=For all tasks
- allowNewTasksAndAssignmentsForAllUsers: (integer)
Enumeration of allowNewTasksAndAssignmentsForAllUsers: 0=No, 1=Yes,butdonot add them as team members, 2=Yes,and add them as team members
- autoAssignNewTeamMembers: (integer)
Enumeration of autoAssignNewTeamMembers: 0=No, 1=Yes,but only tosubtasks, 2=Yes
- invoiceAppendix: (integer)
Invoice appendix of a project
- effortUnit: (union of integer or nil)
Effort unit of a project
- currency: (number)
Currency id of a project
- fixedRevenue: (union of number or nil)
Revenue amount of a project
- fixedWorkEffort: (union of number or nil)
Work effort hours of a project
- fixedWork: (union of number or nil)
Work effort cost of a project
- budgetedExpense: (union of number or nil)
Expense amount of a project
- budgetedPurchase: (union of number or nil)
Purchase amount of a project
- id: (integer)
Internal ID of a project
- operationalId: (union of string or nil)
Operational ID of a project
- account: (union of integer or nil)
Contact's account Id
- budgetedTotalCost: (number)
Budgeted cost of a project
- forecastedtotalCost: (number)
Forecasted cost of a project
- actualCost: (number)
actual cost of a project
- totalRevenue: (number)
total revenue of a project
- actualRevenue: (number)
actual revenue of a project
- invoicedRevenue: (number)
invoiced revenue of a project
- plannedEffort: (number)
planned effort of a project
- totalEffort: (number)
total effort of a project
- actualEffort: (number)
actual effort of a project
- remainingEffort: (number)
remaining effort of a project
- start: (datetime)
start date related to template
- finish: (datetime)
finsih date related to template
- workCompleteness: (number)
Work completeness of a project
- workCompletenessPercentage: (number)
Work completeness percentage of a project
- totalRemainingEffort: (number)
Total remaining effort of a project
- accountName: (union of string or nil)
- projectManager: (union of number or nil)
Id of the project manager
- reportedHours: (union of integer or nil)
Amount of hours (in minutes) reported to a project
Example:
[
{
"projectManager": 580283,
"accountName": "BillionMill Inc.",
"operationalId": "12779",
"actualRevenue": 9524.192374981776,
"portfolio": 464553,
"actualEffort": 0,
"fixedWorkEffort": null,
"finish": "2014-06-17T16:30:00.000+0300",
"totalRevenue": 9327.189999999999,
"id": 584043,
"workCompleteness": 0,
"actualCost": 2379.4532051124797,
"invoicedRevenue": 7289.69,
"plannedEffort": 180,
"invoiceAppendix": -1,
"start": "2009-09-16T09:00:00.000+0300",
"remainingEffort": 195,
"totalEffort": 195,
"fixedWork": null,
"totalRemainingEffort": 60,
"billableStatus": 2,
"budgetedTotalCost": 0,
"budgetedPurchase": 0,
"workCompletenessPercentage": 0,
"fixedRevenue": null,
"name": "Project A",
"category": null,
"forecastedtotalCost": 2528.2032051124797,
"account": 558783,
"status": 3
},
{
"projectManager": null,
"accountName": "BillionMill Inc",
"operationalId": "12780",
"actualRevenue": 10,
"portfolio": 464553,
"actualEffort": 0,
"fixedWorkEffort": null,
"finish": "2015-03-24T16:30:00.000+0200",
"totalRevenue": 10,
"id": 584063,
"workCompleteness": 0,
"actualCost": 0,
"invoicedRevenue": 10,
"plannedEffort": 0,
"invoiceAppendix": -1,
"start": "2009-08-03T09:00:00.000+0300",
"remainingEffort": 0,
"totalEffort": 0,
"fixedWork": null,
"totalRemainingEffort": -60,
"billableStatus": 2,
"budgetedTotalCost": 0,
"budgetedPurchase": 0,
"workCompletenessPercentage": 0,
"fixedRevenue": null,
"name": "Project B",
"category": 10,
"forecastedtotalCost": 90,
"account": 558783,
"status": 2
},
{
"projectManager": 557098,
"accountName": "Good Hood Oy",
"operationalId": "12783",
"actualRevenue": 2000,
"portfolio": 464553,
"actualEffort": 0,
"fixedWorkEffort": null,
"finish": "2014-05-02T16:30:00.000+0300",
"totalRevenue": 2000,
"id": 584067,
"workCompleteness": 0,
"actualCost": 94.2,
"invoicedRevenue": 0,
"plannedEffort": 0,
"invoiceAppendix": -1,
"start": "2009-08-01T09:00:00.000+0300",
"remainingEffort": 0,
"totalEffort": 0,
"fixedWork": null,
"totalRemainingEffort": 0,
"billableStatus": 2,
"budgetedTotalCost": 0,
"budgetedPurchase": 0,
"workCompletenessPercentage": 0,
"fixedRevenue": null,
"name": "Project C",
"category": null,
"forecastedtotalCost": 94.2,
"account": 504828,
"status": 3
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /projects
Add a new project to PlanMill or update existing (if id is given). See projects/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8)
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: object
Properties- name: required(string)
Project's name.
- status: required(integer)
Enumeration of a project's status: 1=Draft, 2=Preliminary, 3=Execution,4=Aborted, 5=Closed, 6=On hold, 8=Archived
- billableStatus: required(integer)
Used in enumeration of billableStatus
- portfolio: required(integer)
Portfolio id of Project
- contact: (number)
Contact's id that is related to a project, REQUIRED only IF billable status is 1 or 2
- category: (union of integer or nil)
Enumeration of a project's category: -1=NULL , 10=Absence,20=Administration, 30=Development, 40=Delivery, 50=R & D, 60=Support, 70=Sales, 80=Marketing,90=Education, 100=Continuous service, 110=Maintenance
- invoiceReference: (string)
Invoice reference of a project
- description: (union of string or nil)
Description of a project
- billingAccount: (union of integer or nil)
Billing account Id of a project - set if different to the account of the contact.
- autoAcceptTimeReports: (integer)
Enumeration of autoAcceptTimeReports: 0=No, 1=Yes
- requireBillableComment: (integer)
Enumeration of requireBillableComment: 0=No, 1=For all billabletasks,2=For all tasks
- setRequestPerformerAsTeamMember: (integer)
Enumeration of requestPerformerAsTeamMember: 0=No, 1=Yes
- requireCommentForOvertime: (integer)
Enumeration of requireBillableComment: 0=No, 1=For all billable tasks,2=For all tasks
- allowNewTasksAndAssignmentsForAllUsers: (integer)
Enumeration of allowNewTasksAndAssignmentsForAllUsers: 0=No, 1=Yes,butdonot add them as team members, 2=Yes,and add them as team members
- autoAssignNewTeamMembers: (integer)
Enumeration of autoAssignNewTeamMembers: 0=No, 1=Yes,but only tosubtasks, 2=Yes
- invoiceAppendix: (integer)
Invoice appendix of a project
- effortUnit: (union of integer or nil)
Effort unit of a project
- currency: (number)
Currency id of a project
- fixedRevenue: (union of number or nil)
Revenue amount of a project
- fixedWorkEffort: (union of number or nil)
Work effort hours of a project
- fixedWork: (union of number or nil)
Work effort cost of a project
- budgetedExpense: (union of number or nil)
Expense amount of a project
- budgetedPurchase: (union of number or nil)
Purchase amount of a project
- type: (integer)
Enumeration of a project's type: 1=Project, 3=Template
- dutyType: (union of integer or nil)
- editableByUser: (union of integer or nil)
- operationalId: (union of string or nil)
Operational ID of a project
Example:
{
"dutyType": 0,
"setRequestPerformerAsTeamMember": 0,
"description": "<p>test description</p>",
"operationalId": "12779",
"type": 1,
"effortUnit": null,
"requireBillableComment": 0,
"portfolio": 210,
"contact": 356,
"fixedWorkEffort": 2250,
"currency": 1,
"invoiceAppendix": -1,
"invoiceReference": "",
"autoAcceptTimeReports": 0,
"fixedWork": 100,
"billableStatus": 2,
"budgetedTotalCost": 0,
"budgetedPurchase": 100,
"requireCommentForOvertime": 0,
"fixedRevenue": 1000,
"autoAssignNewTeamMembers": 0,
"name": "Test Project A",
"allowNewTasksAndAssignmentsForAllUsers": 0,
"category": 30,
"budgetedExpense": 100,
"account": 558783,
"status": 3
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for projects. Includes resource's fields names and type and related filters
View details of a single meta.
get /projects/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"filters": [
{
"name": "freeTextSearch",
"caption": ""
},
{
"name": "viewtemplate",
"caption": "View by",
"values": {
"All projects": "50",
"My draft projects": "11",
"All closed projects": "55",
"All closed projects - last 30 days": "75",
"All archived projects": "58",
"My projects": "10",
"My execution projects - project manager": "23",
"All preliminary projects": "52",
"All on hold projects": "56",
"My on hold projects": "16",
"My archived projects": "18",
"My execution projects": "13",
"My closed projects - project manager": "25",
"My closed projects - last 30 days": "35",
"All created projects - last 30 days": "90",
"My preliminary projects": "12",
"My aborted projects": "14",
"My closed projects": "15",
"All execution projects": "53",
"All draft projects": "51",
"All aborted projects": "54"
}
},
{
"name": "category",
"caption": "Category",
"values": {
"All": "-1",
"Administration": "20",
"Continuous service": "100",
"Sales": "70",
"Support": "60",
"Education": "90",
"Development": "30",
"Absence": "10",
"Delivery": "40",
"R & D": "50",
"Marketing": "80"
}
},
{
"name": "portfolio",
"caption": "Portfolio",
"values": {
"All": "-1",
"D. Administrative portfolio": "464557",
"Test portfolio": "2705592"
}
},
{
"name": "projectManager",
"caption": "Project manager",
"values": {
"All": "-1",
"Jim, Harris": "2752646",
"Sara, Johnson": "580283",
"Mike, Hike": "2828584"
}
},
{
"name": "account",
"caption": "Account",
"values": {
"All": "-1",
"BillionMill Inc.": "558783",
"Testi Oy": "2803729"
}
},
{
"name": "billingType",
"caption": "Billing type",
"values": {
"All": "0",
"Billable": "1",
"Non-billable": "4",
"Time based": "3",
"Fixed": "2"
}
},
{
"name": "interval",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"values": {
"Modified": "modified",
"Start": "start",
"Finish": "finish",
"Created": "created"
}
},
{
"name": "rowcount",
"caption": "Rows",
"values": {
"25": "25",
"50": "50",
"75": "75",
"100": "100",
"150": "150",
"250": "250"
}
}
],
"fields": {
"projectManager": {
"format": "text",
"caption": "Person2.Id"
},
"accountName": {
"format": "text",
"caption": "Key account"
},
"operationalId": {
"format": "text",
"caption": "Project ID"
},
"actualRevenue": {
"format": "currency",
"caption": "Actual revenue"
},
"portfolio": {
"format": "text",
"caption": "Portfolio.Id"
},
"actualEffort": {
"format": "effortunit",
"caption": "Accepted"
},
"fixedWorkEffort": {
"format": "effortunit",
"caption": "Budgeted"
},
"finish": {
"format": "shortdate",
"caption": "Finish"
},
"totalRevenue": {
"format": "currency",
"caption": "Forecasted revenue"
},
"id": {
"format": "text",
"caption": "Project.Id"
},
"workCompleteness": {
"format": "percent",
"caption": "Completeness"
},
"actualCost": {
"format": "currency",
"caption": "Actual total cost"
},
"invoicedRevenue": {
"format": "currency",
"caption": "Invoiced"
},
"plannedEffort": {
"format": "effortunit",
"caption": "Planned"
},
"invoiceAppendix": {
"format": "Enumeration values.Finance control.Invoice position summary.Invoices.Appendix",
"caption": "Invoice appendix"
},
"start": {
"format": "shortdate",
"caption": "Start"
},
"remainingEffort": {
"format": "effortunit",
"caption": "Remaining"
},
"totalEffort": {
"format": "effortunit",
"caption": "Forecast"
},
"fixedWork": {
"format": "currency",
"caption": "Budgeted work cost"
},
"totalRemainingEffort": {
"format": "effortunit",
"caption": "{General.Table.Total remaining}"
},
"billableStatus": {
"format": "Enumeration values.Project.Billable status",
"caption": "Billing type"
},
"workCompletenessPercentage": {
"format": "percent",
"caption": "Completeness (%)"
},
"fixedRevenue": {
"format": "currency",
"caption": "Budgeted revenue"
},
"name": {
"format": "text",
"caption": "_Name (ID)"
},
"category": {
"format": "Enumeration values.Project.Category",
"caption": "Category"
},
"totalCost": {
"format": "currency",
"caption": "Forecasted total cost"
},
"account": {
"format": "text",
"caption": "Account.Id"
},
"status": {
"format": "Enumeration values.Project.Status",
"caption": "Status"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single project in PlanMill.
View details of a single project. See projects/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Update an existing resource project to PlanMill. See projects/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Remove a project from PlanMill.
get /projects/{project_id}
View details of a single project. See projects/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- name: (string)
Project's name.
- status: (integer)
Enumeration of a project's status: 1=Draft, 2=Preliminary, 3=Execution,4=Aborted, 5=Closed, 6=On hold, 8=Archived
- billableStatus: (integer)
Used in enumeration of billableStatus
- portfolio: (integer)
Portfolio id of Project
- category: (union of integer or nil)
Enumeration of a project's category: -1=NULL , 10=Absence,20=Administration, 30=Development, 40=Delivery, 50=R & D, 60=Support, 70=Sales, 80=Marketing,90=Education, 100=Continuous service, 110=Maintenance
- contact: (number)
Contact's id that is related to a project, Required only if billable status is 1 or 2
- invoiceReference: (string)
Invoice reference of a project
- description: (union of string or nil)
Description of a project
- billingAccount: (union of integer or nil)
Billing account Id of a project - set if different to the account of the contact.
- autoAcceptTimeReports: (integer)
Enumeration of autoAcceptTimeReports: 0=No, 1=Yes
- requireBillableComment: (integer)
Enumeration of requireBillableComment: 0=No, 1=For all billabletasks,2=For all tasks
- setRequestPerformerAsTeamMember: (integer)
Enumeration of requestPerformerAsTeamMember: 0=No, 1=Yes
- requireCommentForOvertime: (integer)
Enumeration of requireBillableComment: 0=No, 1=For all billable tasks,2=For all tasks
- allowNewTasksAndAssignmentsForAllUsers: (integer)
Enumeration of allowNewTasksAndAssignmentsForAllUsers: 0=No, 1=Yes,butdonot add them as team members, 2=Yes,and add them as team members
- autoAssignNewTeamMembers: (integer)
Enumeration of autoAssignNewTeamMembers: 0=No, 1=Yes,but only tosubtasks, 2=Yes
- invoiceAppendix: (integer)
Invoice appendix of a project
- effortUnit: (union of integer or nil)
Effort unit of a project
- currency: (number)
Currency id of a project
- fixedRevenue: (union of number or nil)
Revenue amount of a project
- fixedWorkEffort: (union of number or nil)
Work effort hours of a project
- fixedWork: (union of number or nil)
Work effort cost of a project
- budgetedExpense: (union of number or nil)
Expense amount of a project
- budgetedPurchase: (union of number or nil)
Purchase amount of a project
- id: (integer)
Internal ID of a project
- operationalId: (union of string or nil)
Operational ID of a project
- account: (union of integer or nil)
Contact's account Id
- budgetedTotalCost: (number)
Budgeted cost of a project
- forecastedTotalCost: (number)
Forecasted cost of a project
- type: (integer)
Enumeration of a project's type: 1=Project, 3=Template
- dutyType: (union of integer or nil)
- editableByUser: (union of integer or nil)
Example:
{
"dutyType": 0,
"setRequestPerformerAsTeamMember": 0,
"description": "<p>test description</p>",
"operationalId": "12779",
"type": 1,
"effortUnit": null,
"requireBillableComment": 0,
"portfolio": 210,
"contact": 356,
"fixedWorkEffort": 2250,
"currency": 1,
"id": 584043,
"invoiceAppendix": -1,
"invoiceReference": "",
"autoAcceptTimeReports": 0,
"fixedWork": 100,
"billableStatus": 2,
"budgetedTotalCost": 0,
"budgetedPurchase": 100,
"requireCommentForOvertime": 0,
"fixedRevenue": 1000,
"autoAssignNewTeamMembers": 0,
"name": "Test Project A",
"allowNewTasksAndAssignmentsForAllUsers": 0,
"category": 30,
"budgetedExpense": 100,
"account": 558783,
"status": 3
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /projects/{project_id}
Update an existing resource project to PlanMill. See projects/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: object
Properties- name: (string)
Project's name.
- status: (integer)
Enumeration of a project's status: 1=Draft, 2=Preliminary, 3=Execution,4=Aborted, 5=Closed, 6=On hold, 8=Archived
- billableStatus: (integer)
Used in enumeration of billableStatus
- portfolio: (integer)
Portfolio id of Project
- category: (union of integer or nil)
Enumeration of a project's category: -1=NULL , 10=Absence,20=Administration, 30=Development, 40=Delivery, 50=R & D, 60=Support, 70=Sales, 80=Marketing,90=Education, 100=Continuous service, 110=Maintenance
- contact: (number)
Contact's id that is related to a project, Required only if billable status is 1 or 2
- invoiceReference: (string)
Invoice reference of a project
- description: (union of string or nil)
Description of a project
- billingAccount: (union of integer or nil)
Billing account Id of a project - set if different to the account of the contact.
- autoAcceptTimeReports: (integer)
Enumeration of autoAcceptTimeReports: 0=No, 1=Yes
- requireBillableComment: (integer)
Enumeration of requireBillableComment: 0=No, 1=For all billabletasks,2=For all tasks
- setRequestPerformerAsTeamMember: (integer)
Enumeration of requestPerformerAsTeamMember: 0=No, 1=Yes
- requireCommentForOvertime: (integer)
Enumeration of requireBillableComment: 0=No, 1=For all billable tasks,2=For all tasks
- allowNewTasksAndAssignmentsForAllUsers: (integer)
Enumeration of allowNewTasksAndAssignmentsForAllUsers: 0=No, 1=Yes,butdonot add them as team members, 2=Yes,and add them as team members
- autoAssignNewTeamMembers: (integer)
Enumeration of autoAssignNewTeamMembers: 0=No, 1=Yes,but only tosubtasks, 2=Yes
- invoiceAppendix: (integer)
Invoice appendix of a project
- effortUnit: (union of integer or nil)
Effort unit of a project
- currency: (number)
Currency id of a project
- fixedRevenue: (union of number or nil)
Revenue amount of a project
- fixedWorkEffort: (union of number or nil)
Work effort hours of a project
- fixedWork: (union of number or nil)
Work effort cost of a project
- budgetedExpense: (union of number or nil)
Expense amount of a project
- budgetedPurchase: (union of number or nil)
Purchase amount of a project
- type: (integer)
Enumeration of a project's type: 1=Project, 3=Template
- dutyType: (union of integer or nil)
- editableByUser: (union of integer or nil)
Example:
{
"dutyType": 0,
"setRequestPerformerAsTeamMember": 0,
"description": "<p>test description</p>",
"operationalId": "12779",
"type": 1,
"effortUnit": null,
"requireBillableComment": 0,
"portfolio": 210,
"contact": 356,
"fixedWorkEffort": 2250,
"currency": 1,
"invoiceAppendix": -1,
"invoiceReference": "",
"autoAcceptTimeReports": 0,
"fixedWork": 100,
"billableStatus": 2,
"budgetedTotalCost": 0,
"budgetedPurchase": 100,
"requireCommentForOvertime": 0,
"fixedRevenue": 1000,
"autoAssignNewTeamMembers": 0,
"name": "Test Project A",
"allowNewTasksAndAssignmentsForAllUsers": 0,
"category": 30,
"budgetedExpense": 100,
"account": 558783,
"status": 3
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /projects/{project_id}
Remove a project from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available assignments in PlanMill. This is a read-only collection.
Get a list of assignments
get /projects/{project_id}/assignments
Get a list of assignments
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
[
{
"unitPrice": null,
"reportedEffort": 123,
"taskBillableStatus": 2,
"request": 7451,
"taskStart": "2015-08-13T09:58:00.000+0300",
"proposedDeadline": null,
"actualAmount": 0,
"personOrTeam": 7467,
"proposedEffortAmount": -600,
"proposedAmount": 0,
"remainingAmount": 600,
"totalAmount": 600,
"personOrTeamName": "Tester, First",
"task": 7468,
"declined": 0,
"taskName": "Test Task 1",
"comment": null,
"plannedAmount": 600,
"id": 7470,
"taskFinish": "2015-08-14T09:58:00.000+0300",
"taskStatus": "3. In progress",
"status": null
},
{
"unitPrice": null,
"reportedEffort": 0,
"taskBillableStatus": 3,
"request": 7451,
"taskStart": "2015-08-13T09:58:00.000+0300",
"proposedDeadline": null,
"actualAmount": 0,
"personOrTeam": 7447,
"proposedEffortAmount": null,
"proposedAmount": null,
"remainingAmount": 0,
"totalAmount": 0,
"personOrTeamName": "Tester, Second",
"task": 7468,
"declined": 0,
"taskName": "Test Task 2",
"comment": null,
"plannedAmount": 150,
"id": 7453,
"taskFinish": "2015-08-14T09:58:00.000+0300",
"taskStatus": "1. Received",
"status": null
},
{
"unitPrice": null,
"reportedEffort": 180,
"taskBillableStatus": 2,
"request": 7451,
"taskStart": "2015-08-13T09:58:00.000+0300",
"proposedDeadline": null,
"actualAmount": 0,
"personOrTeam": 7463,
"proposedEffortAmount": -240,
"proposedAmount": null,
"remainingAmount": 0,
"totalAmount": 0,
"personOrTeamName": "Tester, Third",
"task": 7468,
"declined": 0,
"taskName": "Test Task 3",
"comment": null,
"plannedAmount": 240,
"id": 7471,
"taskFinish": "2015-08-14T09:58:00.000+0300",
"taskStatus": "100% complete",
"status": null
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for the updatable fields of the assignment of a project
View details of a single meta.
get /projects/{project_id}/assignments/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"filters": [
{
"name": "searchkey",
"caption": ""
},
{
"name": "Person.Id",
"caption": "Performer",
"values": {
"All": "-1"
}
},
{
"name": "task",
"caption": "Task",
"values": {
"All": "-1"
}
},
{
"name": "taskStatus",
"caption": "Status",
"values": {
"All": "-1"
}
},
{
"name": "taskBillableStatus",
"caption": "Billing type",
"values": {
"All": "-1",
"Non-billable": "3",
"Time based": "2",
"Fixed": "1"
}
},
{
"name": "Baseline.Id",
"caption": "Baseline",
"values": {
"-": "-1"
}
},
{
"name": "status",
"caption": "Assignment status",
"values": {
"All": "-1",
"Declined": "30",
"Proposed": "10",
"Accepted": "20",
"Open": "-2"
}
},
{
"name": "interval",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"values": {
"Modified": "Assignment.Modified",
"Start": "taskStart",
"Finish": "taskFinish",
"Created": "Assignment.Created"
}
}
],
"fields": {
"unitPrice": {
"format": "projectcurrency",
"caption": "Unit price"
},
"reportedEffort": {
"format": "projecteffortunit",
"caption": "Reported"
},
"taskBillableStatus": {
"format": "Enumeration values.Project.Billable status",
"caption": "Billing type"
},
"request": {
"format": "text",
"caption": "Request.Id"
},
"taskStart": {
"format": "shortdate",
"caption": "Start"
},
"proposedDeadline": {
"format": "shortdate",
"caption": "Proposal deadline"
},
"actualAmount": {
"format": "projecteffortunit",
"caption": "Accepted"
},
"personOrTeam": {
"format": null,
"caption": null
},
"proposedEffortAmount": {
"format": "projecteffortunit",
"caption": "Proposed-Planned"
},
"proposedAmount": {
"format": "projecteffortunit",
"caption": "Proposed"
},
"remainingAmount": {
"format": "projecteffortunit",
"caption": "Remain"
},
"totalAmount": {
"format": "projecteffortunit",
"caption": "Forecast"
},
"personOrTeamName": {
"format": "text",
"caption": "_Performer"
},
"task": {
"format": "text",
"caption": "Task.Id"
},
"declined": {
"format": "projecteffortunit",
"caption": "Declined"
},
"taskName": {
"format": "text",
"caption": "_Task"
},
"comment": {
"format": null,
"caption": "Proposal hint"
},
"plannedAmount": {
"format": "projecteffortunit",
"caption": "Planned"
},
"id": {
"format": "text",
"caption": "Assignment.Id"
},
"taskFinish": {
"format": "shortdate",
"caption": "Finish"
},
"taskStatus": {
"format": "text",
"caption": "Status"
},
"status": {
"format": "Enumeration values.Assignment.Status",
"caption": "Assignment status"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single assignment in PlanMill. This is a read-only item.
View details of a single assignment.
get /projects/{project_id}/assignments/{assignment_id}
View details of a single assignment.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
- assignment_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"remainingAmount": 0,
"taskStart": "2015-08-13T09:58:00.000+0300",
"task": 7468,
"timereportsAmount": 120,
"personOrTeam": 7447,
"actualAmount": 0,
"totalReported": 120,
"project": 7449,
"plannedAmount": 240,
"taskFinish": "2015-08-14T09:58:00.000+0300"
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available attachments in PlanMill. This is a read-only collection.
Get a list of attachments
get /projects/{project_id}/attachments
Get a list of attachments
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
[
{
"size": 8497,
"createdBy": 50,
"created": "2022-01-13T13:05:10.837+0200",
"name": "attached_file_test.txt",
"modified": "2022-01-13T13:18:25.353+0200",
"id": 1543
},
{
"size": 146169,
"createdBy": 50,
"created": "2022-01-13T13:18:25.353+0200",
"name": "attached_file.txt",
"modified": "2022-01-13T13:18:25.353+0200",
"id": 1545
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
attachment_id is returned by /tempfiles endpoint on file upload.
View details of single attachment.
put /projects/{project_id}/attachments/{attachment_id}
attachment_id is returned by /tempfiles endpoint on file upload.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
- attachment_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
get /projects/{project_id}/attachments/{attachment_id}
View details of single attachment.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
- attachment_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
Contents of file
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available team members of a project in PlanMill
Get a list of members
get /projects/{project_id}/members
Get a list of members
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
[
{
"latestMember": null,
"manager": 2845523,
"parentTeamName": null,
"costCenter": 0,
"created": "2015-07-28T18:08:08.950+0300",
"description": "team for development",
"parentTeam": null,
"createdBy": 2845504,
"members": 0,
"name": "Support Team",
"childTeams": 1,
"modified": null,
"modifiedBy": null,
"id": 2845524
},
{
"latestMember": 2717546,
"manager": 222076,
"parentTeamName": "Support Team",
"costCenter": 3,
"created": "2005-04-11T14:04:23.897+0300",
"description": "Text of description",
"parentTeam": 498896,
"createdBy": 222076,
"members": 9,
"name": "R & D Team",
"childTeams": 1,
"modified": "2010-05-19T14:45:57.607+0300",
"modifiedBy": 222076,
"id": 480530
},
{
"latestMember": 2840388,
"manager": 26394,
"parentTeamName": "R & D Team",
"costCenter": 1,
"created": "2005-04-15T12:25:27.653+0300",
"description": "Finland & Switzerland",
"parentTeam": 480530,
"createdBy": 26394,
"members": 10,
"name": "Sales Team",
"childTeams": 0,
"modified": "2008-01-18T09:13:20.267+0200",
"modifiedBy": 26284,
"id": 481244
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for the updatable fields of the team member of a project
View details of a single meta.
get /projects/{project_id}/members/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"filters": [
{
"name": "searchkey",
"caption": ""
},
{
"name": "viewby",
"caption": "View by",
"values": {
"Project team": "0",
"Project team - team members": "2",
"Project team - Project manager and team members": "10",
"Project team - external team members": "3",
"All active contacts": "9",
"All active users": "7",
"Project team - request assignments": "5",
"Project team - team assignments": "4",
"Other active users": "6",
"Project team - editors": "1",
"Other active contacts": "8"
}
},
{
"name": "PersonHasTeam.TeamId",
"caption": "Team",
"values": {
"All": "-1",
"Support Team\\R & D Team": "4830"
}
},
{
"name": "Person.Type",
"caption": "Type",
"values": {
"All": "-1",
"Hired - temporarily": "10",
"Subcontractor": "4",
"Permanent - part-time": "2",
"Permanent - full-time": "0",
"Partner": "11"
}
},
{
"name": "rowcount",
"caption": "Rows",
"values": {
"25": "25",
"50": "50",
"75": "75",
"100": "100",
"150": "150",
"250": "250"
}
}
],
"fields": {
"lastName": {
"format": "text",
"caption": "_Name"
},
"editor": {
"format": "Enumeration values.Project.Team.Editor.Type",
"caption": "Editor"
},
"photo": {
"format": "fileicon",
"caption": "_iconmap(ui-icon-person)"
},
"title": {
"format": "text",
"caption": "Title"
},
"superiorLastName": {
"format": "text",
"caption": "Superior"
},
"skills": {
"format": "text",
"caption": "Competences"
},
"primaryTeamName": {
"format": "text",
"caption": "Primary team"
},
"superior": {
"format": "text",
"caption": "Person.SuperiorId"
},
"phone": {
"format": "text",
"caption": "Primary phone"
},
"primaryTeam": {
"format": "text",
"caption": "Team.Id"
},
"primaryDepartment": {
"format": "text",
"caption": "City"
},
"teamRole": {
"format": "text",
"caption": "Team role"
},
"id": {
"format": "checkbox",
"caption": "_"
},
"email": {
"format": "emaillink",
"caption": "Email"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single team member of a project in PlanMill
Remove a member from PlanMill.
put /projects/{project_id}/members/{member_id}
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
- member_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- setPrimary: required(boolean)
Example:
true | false
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /projects/{project_id}/members/{member_id}
Remove a member from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
- member_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single external team member of a project in PlanMill
put /projects/{project_id}/members/external/{external_member_id}
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
- external_member_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: any
Example:
{}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single editor team member of a project in PlanMill
Remove a editor from PlanMill.
put /projects/{project_id}/members/editors/{editor_id}
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
- editor_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- setPrimary: required(boolean)
Example:
true | false
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /projects/{project_id}/members/editors/{editor_id}
Remove a editor from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
- editor_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single manager team member of a project in PlanMill
put /projects/{project_id}/members/managers/{manager_id}
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
- manager_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: any
Example:
{}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for the updatable fields of the project
View details of a single meta.
get /projects/{project_id}/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"setRequestPerformerAsTeamMember": {
"caption": "Set request performer(s) as team member(s)",
"description": "",
"enumeration": "Enumeration values.Administration.Parameters.Enabled",
"values": {
"No": "0",
"Yes": "1"
}
},
"description": {
"caption": "",
"format": "string",
"description": "",
"values": null
},
"operationalId": {
"caption": "Project ID",
"format": "string",
"description": "",
"values": null
},
"type": {
"caption": "Project type",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Project.Project type in wizard",
"values": {
"Project": "1",
"Template": "3"
}
},
"effortUnit": {
"caption": "Time unit",
"description": "",
"enumeration": "Enumeration values.Units.Effort",
"values": {
"Hours": "2",
"Weeks": "4",
"Days": "3",
"Minutes": "1"
}
},
"requireBillableComment": {
"caption": "Require comment for reported hours",
"description": "",
"enumeration": "Enumeration values.Project.Require comment for reported hours",
"values": {
"No": "0",
"For all tasks": "2",
"For all billable tasks": "1"
}
},
"portfolio": {
"caption": "Portfolio",
"values": {
"All": "-1",
"E. New customer portfolio": "464559",
"D. Administrative portfolio": "464557"
},
"format": "int",
"description": ""
},
"contact": {
"caption": "",
"format": "int",
"description": "",
"values": null
},
"fixedWorkEffort": {
"caption": "Work",
"format": "double",
"values": null
},
"currency": {
"caption": "Currency",
"values": {
"AED": 480976,
"CHF": 2796099,
"HKD": 480893,
"ALL": 2813286,
"EUR": 468491,
"MTL": 481034,
"DKK": 481332,
"ZWD": 2833328,
"USD": 480880,
"EEK": 480936,
"NOK": 480960,
"THB": 481048,
"JPY": 480952,
"GBP": 480898,
"BRL": 2813468
},
"description": ""
},
"id": {
"caption": "",
"format": "int",
"description": "",
"values": null
},
"invoiceAppendix": {
"caption": "Invoice appendix",
"description": "",
"enumeration": "Enumeration values.Finance control.Invoice position summary.Invoices.Appendix",
"values": {
"Priced invoice items by task": "3",
"Invoice items by person": "2",
"Priced invoice items by person": "4",
"Invoice items by task": "1",
"None": "0",
"Account billing settings default": "-1"
}
},
"invoiceReference": {
"description": "Maximum length of 'Your reference' is 35 characters because of Finvoice standard (Finvoice standard supports only 35 characters)",
"caption": "Reference/PO-number",
"format": "string",
"maxlength": "255",
"values": null
},
"autoAcceptTimeReports": {
"caption": "Automatically accept time reports",
"description": "",
"enumeration": "Enumeration values.Administration.Parameters.Enabled",
"values": {
"No": "0",
"Yes": "1"
}
},
"fixedWork": {
"caption": "Work",
"format": "double",
"values": null
},
"billableStatus": {
"caption": "Billing type",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Project.Billable status short",
"values": {
"Non-billable": "3",
"Time based": "2",
"Fixed": "1"
}
},
"budgetedPurchase": {
"caption": "Purchase",
"format": "double",
"values": null
},
"requireCommentForOvertime": {
"caption": "Require comment for overtime hours",
"description": "",
"enumeration": "Enumeration values.Project.Require comment for reported hours",
"values": {
"No": "0",
"For all tasks": "2",
"For all billable tasks": "1"
}
},
"fixedRevenue": {
"caption": "Revenue",
"format": "double",
"values": null
},
"autoAssignNewTeamMembers": {
"caption": "Automatically assign new team members to tasks",
"description": "",
"enumeration": "Enumeration values.Project.Automatically assign new team members to tasks",
"values": {
"No": "0",
"Yes": "2",
"Yes, but only to sub tasks": "1"
}
},
"name": {
"caption": "Name",
"format": "string",
"description": "",
"values": null
},
"allowNewTasksAndAssignmentsForAllUsers": {
"caption": "Allow new tasks and assignments for all users",
"description": "",
"enumeration": "Enumeration values.Project.Allow new tasks and assignments for all users",
"values": {
"No": "0",
"Yes, and add them as team members": "2",
"Yes, but do not add them as team members": "1"
}
},
"category": {
"caption": "Category",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Project.Category",
"values": {
"Continuous service": "100",
"Administration": "20",
"Sales": "70",
"Support": "60",
"Education": "90",
"Development": "30",
"Absence": "10",
"Maintenance": "110",
"Delivery": "40",
"R & D": "50",
"Marketing": "80"
}
},
"budgetedExpense": {
"caption": "Expense",
"format": "double",
"values": null
},
"account": {
"format": "number",
"values": null
},
"totalCost": {
"caption": "Total cost",
"format": "string",
"description": "",
"values": null
},
"status": {
"caption": "Status",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Project.Status",
"values": {
"Draft": "1",
"Preliminary": "2",
"Execution": "3",
"On hold": "6",
"Closed": "5",
"Aborted": "4",
"Archived": "8"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
List milestones information for a project
Get a list of milestones
get /projects/{project_id}/milestones
Get a list of milestones
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
[
{
"unitPrice": null,
"dutyType": 0,
"targetEffort": 0,
"plannedEffort": 360,
"created": "2016-01-11T12:27:22.883+0200",
"start": "2016-01-10T12:27:00.000+0200",
"wbs": null,
"remainingEffort": 360,
"totalEffort": 360,
"totalRemainingEffort": 60,
"type": 101,
"billableStatus": 3,
"duration": 450,
"actualEffort": 0,
"name": "<task name>",
"modified": "2016-01-11T12:27:22.883+0200",
"finish": "2016-01-12T12:27:00.000+0200",
"id": 1372,
"workCompleteness": 0,
"status": 30
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for the milestone of a project
View details of a single meta.
get /projects/{project_id}/milestones/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"filters": [
{
"name": "searchkey",
"caption": ""
},
{
"name": "viewby",
"caption": "View by",
"values": {
"150": "All not completed milestones",
"140": "All not completed requests",
"130": "All not completed tasks",
"120": "All not completed tasks & requests",
"0": "All tasks",
"110": "All completed requests",
"100": "All completed tasks & requests",
"6": "All tasks in progress - late",
"50": "All recently completed tasks - last month",
"40": "All recently completed tasks - this month",
"30": "All recently created tasks - last month",
"20": "All recently created tasks - this month",
"10": "My tasks"
}
},
{
"name": "viewby2",
"caption": "Type",
"values": {
"0": "All",
"25": "Tasks & milestones",
"30": "Requests",
"20": "Milestones",
"10": "Tasks"
}
},
{
"name": "Task.Status",
"caption": "Status",
"values": {
"-1": "All"
}
},
{
"name": "billableStatus",
"caption": "Billing type",
"values": {
"1": "Fixed",
"2": "Time based",
"3": "Non-billable",
"-1": "All"
}
},
{
"name": "Assignment.PersonId",
"caption": "Performer",
"values": {
"-1": "All"
}
},
{
"name": "Team.Id",
"caption": "Team",
"values": {
"-1": "All"
}
},
{
"name": "parent",
"caption": "Parent",
"values": {
"-1": "All"
}
},
{
"name": "Baseline.Id",
"caption": "Baseline",
"values": {
"-1": "-"
}
},
{
"name": "interval",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"values": {
"Task.Modified": "Modified",
"Task.Start": "Start",
"Task.Created": "Created",
"Task.Finish": "Finish"
}
},
{
"name": "CreatedPerson.Id",
"caption": "Created by",
"values": {
"0": "System,",
"1018": "Verdezoto, Ivan",
"-1": "All",
"1377": "User, auth.person",
"50": "PlanMill, Maintenance-user"
}
}
],
"fields": {
"unitPrice": {
"format": "projectcurrency",
"caption": "Unit price"
},
"dutyType": {
"format": "Enumeration values.Task.Offduty",
"caption": "Duty type"
},
"targetEffort": {
"format": "projecteffortunit",
"caption": "Estimated"
},
"plannedEffort": {
"format": "projecteffortunit",
"caption": "Planned"
},
"created": {
"format": "mediumdate",
"caption": "Created"
},
"start": {
"format": "shortdate",
"caption": "Start"
},
"wbs": {
"format": "text",
"caption": "WBS"
},
"remainingEffort": {
"format": "projecteffortunit",
"caption": "Remain"
},
"totalEffort": {
"format": "projecteffortunit",
"caption": "Forecast"
},
"totalRemainingEffort": {
"format": "projecteffortunit",
"caption": "Total remain"
},
"type": {
"format": "Enumeration values.Task.Type",
"caption": "Type"
},
"billableStatus": {
"format": "Enumeration values.Project.Billable status",
"caption": "Billing type"
},
"duration": {
"format": "day",
"caption": "Duration"
},
"actualEffort": {
"format": "projecteffortunit",
"caption": "Accepted"
},
"name": {
"format": "text",
"caption": "Task"
},
"modified": {
"format": "mediumdate",
"caption": "Modified"
},
"finish": {
"format": "shortdate",
"caption": "Finish"
},
"id": {
"format": "text",
"caption": "Task.Id"
},
"workCompleteness": {
"format": "percent",
"caption": "Completeness"
},
"status": {
"format": "Enumeration values.Task.Status",
"caption": null
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
List purchase information for a project
Get a list of purchases. See purchases/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Add a new purchase to PlanMill or update existing (if id is given). See purchases/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /projects/{project_id}/purchases
Get a list of purchases. See purchases/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (string)
Sorts the results using string that is a JSON attribute
- interval?: (string)
Interval type, e.g. start, finish, created, or modified. It is required in combination with intervalstart or intervalfinish
- intervalstart?: (string)
Start date of the interval in UTC format, intervalfinish required
Example:
2021-08-05T00:00:00.000+0200
- intervalfinish?: (string)
Finish date of the interval in UTC format, intervalstart required
Example:
2021-08-05T00:00:00.000+0200
HTTP status code 200
Body
Media type: application/json
Type: purchase
Example:
[
{
"date": "2016-01-18T12:23:00.000+0200",
"actualAmount": 50,
"description": null,
"type": 7,
"billableStatus": "Billable",
"task": 4751,
"createdBy": 4730,
"name": "View Purchases",
"modifiedBy": null,
"id": 4764,
"plannedAmount": 100,
"account": null,
"status": 0
},
{
"date": "2016-01-18T12:23:00.000+0200",
"actualAmount": 50,
"description": null,
"type": 7,
"billableStatus": "Billable",
"task": 4751,
"createdBy": 4730,
"name": "Update Purchases",
"modifiedBy": null,
"id": 4765,
"plannedAmount": 100,
"account": null,
"status": 0
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /projects/{project_id}/purchases
Add a new purchase to PlanMill or update existing (if id is given). See purchases/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: purchase
Example:
{
"date": "2016-01-18T12:23:00.000+0200",
"accountName": null,
"actualAmount": 50,
"description": null,
"project": 4751,
"billableStatus": 1,
"type": 7,
"personName": null,
"task": 4751,
"contact": null,
"name": "View Purchases",
"plannedAmount": 100,
"id": 4764,
"account": null,
"status": 0
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Single purchase information for a project
View details of a single id. See ids/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Update an existing resource id to PlanMill. See ids/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Remove a id from PlanMill.
get /projects/{project_id}/purchases/id
View details of a single id. See ids/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: id
Example:
{
"date": "2016-01-18T12:23:00.000+0200",
"accountName": null,
"actualAmount": 50,
"description": null,
"project": 4751,
"billableStatus": 1,
"type": 7,
"personName": null,
"task": 4751,
"contact": null,
"name": "View Purchases",
"plannedAmount": 100,
"id": 4764,
"account": null,
"status": 0
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /projects/{project_id}/purchases/id
Update an existing resource id to PlanMill. See ids/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: id
Example:
{
"date": "2016-01-18T12:23:00.000+0200",
"accountName": null,
"actualAmount": 50,
"description": null,
"project": 4751,
"billableStatus": 1,
"type": 7,
"personName": null,
"task": 4751,
"contact": null,
"name": "View Purchases",
"plannedAmount": 100,
"id": 4764,
"account": null,
"status": 0
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /projects/{project_id}/purchases/id
Remove a id from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for the purchase of a project
View details of a single meta.
get /projects/{project_id}/purchases/id/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"date": {
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"caption": "Date",
"maxlength": "10",
"values": null
},
"accountName": {
"caption": "Account",
"format": "string",
"description": "",
"values": null
},
"actualAmount": {
"caption": "Actual cost",
"format": "double",
"values": null
},
"description": {
"caption": "",
"format": "string",
"values": null
},
"project": {
"caption": "",
"format": "int",
"values": null
},
"billableStatus": {
"caption": "Billable status",
"enumeration": "Enumeration values.Expense.Billable status editable",
"values": {
"In billing": "4",
"Billable": "1",
"Non-billable": "3"
}
},
"type": {
"caption": "Type",
"enumeration": "Enumeration values.Purchase.Type",
"values": {
"Travel": "0",
"Software": "5",
"Hardware": "6",
"Books": "4",
"Other": "7"
}
},
"personName": {
"caption": "Contact",
"format": "string",
"description": "",
"values": null
},
"task": {
"caption": "Task",
"format": "int",
"values": null
},
"contact": {
"values": null
},
"name": {
"caption": "Name",
"maxlength": "255",
"values": null
},
"plannedAmount": {
"caption": "Planned cost",
"format": "double",
"values": null
},
"id": {
"values": null
},
"account": {
"values": null
},
"status": {
"caption": "Status",
"enumeration": "Enumeration values.Expense.Status dates",
"values": {
"Locked": "9",
"Preliminary": "0",
"Reported": "2",
"Paid": "6",
"Rejected": "7",
"Inspected": "3",
"Accepted": "4"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for the purchase of a project
Get a list of meta
get /projects/{project_id}/purchases/meta
Get a list of meta
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"filters": [
{
"name": "freetextsearch",
"caption": ""
},
{
"name": "status",
"caption": "Purchase status",
"values": {
"0": "Preliminary",
"2": "Reported",
"3": "Inspected",
"-1": "All",
"4": "Accepted",
"6": "Paid",
"7": "Rejected",
"9": "Locked"
}
},
{
"name": "billableStatus",
"caption": "Billable status",
"values": {
"1": "Billable",
"3": "Non-billable",
"-1": "All",
"4": "In billing",
"5": "Draft invoice",
"6": "Invoiced"
}
},
{
"name": "period",
"caption": "Period",
"values": {
"22": "This & last FQ",
"44": "Today and tomorrow",
"23": "This and last FY",
"24": "This and next month",
"25": "This and last month",
"26": "Last 14 days",
"30": "This week",
"31": "Last week",
"10": "Next month",
"32": "This and last week",
"11": "Last month",
"33": "Next week",
"34": "This and next week",
"12": "Last 30 days",
"13": "Last 60 days",
"14": "Last 90 days",
"15": "Last 120 days",
"16": "Last 180 days",
"17": "Next 30 days",
"18": "Next 60 days",
"19": "Next 90 days",
"0": "All",
"1": "This FQ",
"2": "Next FQ",
"3": "This and next FQ",
"4": "Last FQ",
"5": "This FY",
"6": "Next FY",
"7": "This and next FY",
"8": "Last FY",
"9": "This month",
"40": "Today",
"41": "Yesterday",
"42": "Today and yesterday",
"20": "Next 120 days",
"43": "Tomorrow",
"21": "Next 180 days"
}
},
{
"name": "interval",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"values": {
"Expense.Created": "Created",
"Expense.Date": "Date",
"Expense.Modified": "Modified"
}
},
{
"name": "rowcount",
"caption": "Rows",
"values": {
"100": "100",
"25": "25",
"50": "50",
"150": "150",
"250": "250",
"75": "75"
}
}
],
"fields": {
"date": {
"format": "shortdate",
"caption": "Date"
},
"actualAmount": {
"format": "projectcurrency",
"caption": "Actual"
},
"description": {
"format": "text",
"caption": "Description"
},
"type": {
"format": "Enumeration values.Purchase.Type",
"caption": "Type"
},
"billableStatus": {
"format": "text",
"caption": "Billable status"
},
"task": {
"format": "text",
"caption": null
},
"createdBy": {
"format": "text",
"caption": "Person1.Id"
},
"name": {
"format": "text",
"caption": "Name"
},
"modifiedBy": {
"format": "text",
"caption": "Person2.Id"
},
"id": {
"format": "checkbox",
"caption": ""
},
"plannedAmount": {
"format": "projectcurrency",
"caption": "Planned"
},
"account": {
"format": "text",
"caption": "Account.Id"
},
"status": {
"format": "Enumeration values.Expense.Status",
"caption": "Status"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available tasks in PlanMill. See tasks/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Get a list of tasks. See tasks/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /projects/{project_id}/tasks
Get a list of tasks. See tasks/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (string)
Sorts the results using string that is a JSON attribute
HTTP status code 200
Body
Media type: application/json
Type: array of task_get
Items: task_get
- actualStart: (union of datetime or nil)
Actual start of the task.
- actualFinish: (union of string or nil)
Actual start of the task.
- name: required(string)
Name of the task. Has to be unique per project.
- type: required(union of integer or nil)
100 = task (default), 101 = milestone, 200 = imported booking.
- start: (union of datetime or nil)
Start of the task. If not defined, is not set to January 1970.
- finish: (union of datetime or nil)
Finish of the task. If not defined, is not set to January 1970.
- dutyType: (union of integer or nil)
Duty type of the task.
- billableStatus: (union of integer or nil)
Billable status of the task.
- status: (union of integer or nil)
Status of the task.
- parent: required(integer)
Parent of the task. May be a task or project Id.
- predecessorTask: (union of integer or nil)
Previous task that should be finished first.
- targetEffort: (union of integer or nil)
Target effort of the task.
- unitPrice: (union of number or nil)
Price of the unit of the task.
- competence: (union of integer or nil)
Competence level of the task.
- wbs: (union of string or nil)
Work breakdown structure of the task.
- priceType: (union of integer or nil)
Price type of the task.
- description: (union of string or nil)
Description of the task
- created: (datetime)
Timestamp of the task creation.
- modified: (union of datetime or nil)
When task was modified last time.
- plannedEffort: (union of number or nil)
Planned effort of the task.
- actualEffort: (union of number or nil)
Actual effort of the task.
- remainingEffort: (union of number or nil)
Sum of the effort of the assignments.
- totalEffort: (union of number or nil)
Actual + remaining effort of the task.
- workCompleteness: (union of number or nil)
Work completeness of the task.
- duration: (union of integer or nil)
Duration of the task.
- totalRemainingEffort: (union of number or nil)
Total effort - actual effort of the task.
- finishOld: (union of datetime or nil)
Old finish of the task. Currently unused legacy field.
- originalFinish: (union of datetime or nil)
Original finish of the task. Currently unused legacy field.
- originalStart: (union of datetime or nil)
Original start of the task. Currently unused legacy field.
- tempFinish: (union of datetime or nil)
Temporary finish of the task. Currently unused legacy field.
- id: required(integer)
Unique identificator of the task.
- attachments: required(integer)
Amount of attachments in task.
- performerIds: (union of string or nil)
List of unique identificators of the performers of the task.
- performers: (union of string or nil)
List of names of performers of the task.
- reported: (union of integer or nil)
Sum of all reported time in minutes.
Example:
[
{
"dutyType": 2030,
"parent": 2123,
"attachments": 0,
"targetEffort": 0,
"wbs": "",
"description": "",
"predecessorTask": null,
"type": 100,
"duration": 586800,
"actualEffort": 0,
"reported": 0,
"modified": "2021-01-21T10:52:43.740+0200",
"finish": "2025-12-31T16:30:00.000+0200",
"id": 233,
"workCompleteness": 0,
"unitPrice": null,
"performers": "Team: First team (update e.g. your company name)",
"plannedEffort": 0,
"created": "2009-01-07T12:33:06.000+0200",
"start": "2021-01-01T09:00:00.000+0200",
"remainingEffort": 0,
"totalEffort": 0,
"totalRemainingEffort": 0,
"billableStatus": 3,
"actualFinish": null,
"name": "Test Task 1",
"performerIds": "1041",
"actualStart": null,
"status": 20
},
{
"dutyType": 2110,
"parent": 213,
"attachments": 0,
"targetEffort": 0,
"wbs": "",
"description": "",
"predecessorTask": null,
"type": 100,
"duration": 586800,
"actualEffort": 0,
"reported": 0,
"modified": "2021-01-21T11:45:37.167+0200",
"finish": "2025-12-31T16:30:00.000+0200",
"id": 229,
"workCompleteness": 0,
"unitPrice": null,
"performers": "Team: First team (update e.g. your company name)",
"plannedEffort": 0,
"created": "2009-01-07T12:33:06.000+0200",
"start": "2021-01-01T09:00:00.000+0200",
"remainingEffort": 0,
"totalEffort": 0,
"totalRemainingEffort": 0,
"billableStatus": 3,
"actualFinish": null,
"name": "Office work",
"performerIds": "1061",
"actualStart": null,
"status": 120
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for tasks. Includes resource's fields names and type and related filters
View details of a single meta.
get /projects/{project_id}/tasks/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"filters": [
{
"type": "string",
"name": "searchkey",
"caption": ""
},
{
"type": "string",
"name": "viewby",
"value": "-1",
"caption": "View by",
"values": {
"-1": "All",
"150": "All not completed milestones",
"140": "All not completed requests",
"130": "All not completed tasks",
"120": "All not completed tasks & requests",
"110": "All completed requests",
"100": "All completed tasks & requests",
"6": "All tasks in progress - late",
"50": "All recently completed tasks - last month",
"40": "All recently completed tasks - this month",
"30": "All recently created tasks - last month",
"20": "All recently created tasks - this month",
"10": "My tasks"
}
},
{
"type": "interval",
"name": "interval",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"values": {
"Task.Modified": "Modified",
"Task.Start": "Start",
"Task.Created": "Created",
"Task.Finish": "Finish"
}
},
{
"type": "multivalue",
"name": "CreatedPerson.Id",
"value": "-1",
"caption": "Created by",
"values": {
"0": "System,",
"-1": "All",
"50": "PlanMill, Maintenance-user"
}
},
{
"type": "string",
"name": "viewby2",
"value": "-1",
"caption": "Type",
"values": {
"25": "Tasks & milestones",
"-1": "All",
"30": "Requests",
"20": "Milestones",
"10": "Tasks"
}
},
{
"type": "multivalue",
"name": "Task.Status",
"value": "-1",
"caption": "Status",
"values": {
"-1": "All",
"-99991": "Open (1,2,3)",
"-99992": "Open (1,2,3)",
"20": "2. Assigned"
}
},
{
"type": "multivalue",
"name": "billableStatus",
"value": "-1",
"caption": "Billing type",
"values": {
"1": "Fixed",
"2": "Time based",
"3": "Non-billable",
"-1": "All"
}
},
{
"type": "multivalue",
"name": "Assignment.PersonId",
"value": "-1",
"caption": "Performer",
"values": {
"-1": "All",
"356": "User (update), First",
"-1041": "Team: First team (update e.g. your company name)"
}
},
{
"type": "multivalue",
"name": "Team.Id",
"value": "-1",
"caption": "Team",
"values": {
"-1": "All",
"1041": "First team (update e.g. your company name)"
}
},
{
"type": "multivalue",
"name": "parent",
"caption": "Parent",
"values": {
"-1": "All"
}
},
{
"type": "multivalue",
"name": "Baseline.Id",
"caption": "Baseline",
"values": {
"-1": "-"
}
}
],
"fields": {
"dutyType": {
"values": {
"1080": "Overtime leave",
"2070": "HRM",
"2090": "Management",
"optgroup": "Administrative duty",
"1000": "Annual holiday",
"1165": "Saved leave",
"1220": "Parental leave other parent (unpaid)",
"1120": "Layoff",
"2110": "Office work",
"1020": "Sick leave due to child",
"1240": "Pregnancy and parental leave (paid)",
"2010": "Marketing",
"1140": "Study leave (unpaid)",
"2130": "Emergency duty < 22.00",
"1040": "Paternity leave (pre 4.9.22, unpaid)",
"1260": "Parental leave other person (paid)",
"2030": "Development",
"1160": "Other annual leave",
"1060": "Other unpaid leave",
"2050": "IT",
"1180": "Paternity leave (pre 4.9.22, paid)",
"1210": "Pregnancy and parental leave (unpaid)",
"9999": "Other",
"1190": "Maternity leave (pre 4.9.22, unpaid)",
"1090": "Balance leave",
"2080": "HRD",
"\/optgroup": "-",
"1110": "Military refresher",
"2100": "Internal events",
"1010": "Sick leave",
"1230": "Parental leave other person (unpaid)",
"2000": "Education",
"1130": "Child care leave",
"2120": "Customer service",
"1030": "Maternity leave (pre 4.9.22, paid)",
"1250": "Parental leave other parent (paid)",
"2020": "Presales",
"2140": "On call",
"1050": "Military leave",
"2040": "R&D",
"1170": "Parental leave (pre 4.9.22, unpaid)",
"1070": "Other paid leave",
"2060": "Finance",
"1025": "Sick leave by medical certificate",
"1200": "Parental leave",
"2135": "Emergency duty 22.00-06.00",
"1100": "Bonus holiday"
},
"format": "Enumeration values.Task.Offduty",
"caption": "Duty type"
},
"parent": {
"format": "text",
"caption": null
},
"attachments": {
"format": "number",
"caption": "Attachments"
},
"targetEffort": {
"format": "projecteffortunit",
"caption": "Estimated"
},
"wbs": {
"format": "text",
"caption": "WBS"
},
"description": {
"format": "text",
"caption": "Description"
},
"predecessorTask": {
"format": "text",
"caption": "Depends on (Finish to Start)"
},
"type": {
"values": {
"1": "Project",
"100": "Task",
"2": "Portfolio",
"101": "Milestone",
"5": "Portfolio",
"150": "Request"
},
"format": "Enumeration values.Task.Type",
"caption": "Type"
},
"duration": {
"format": "day",
"caption": "Duration"
},
"actualEffort": {
"format": "projecteffortunit",
"caption": "Accepted"
},
"reported": {
"format": "projecteffortunit",
"caption": "Reported"
},
"modified": {
"format": "mediumdate",
"caption": "Modified"
},
"finish": {
"format": "shortdate",
"caption": "Finish"
},
"id": {
"format": "text",
"caption": "Task.Id"
},
"workCompleteness": {
"format": "percent",
"caption": "Completeness"
},
"unitPrice": {
"format": "projectcurrency",
"caption": "Unit price"
},
"performers": {
"format": "text",
"caption": "Performer(s)"
},
"plannedEffort": {
"format": "projecteffortunit",
"caption": "Planned"
},
"created": {
"format": "mediumdate",
"caption": "Created"
},
"start": {
"format": "shortdate",
"caption": "Start"
},
"remainingEffort": {
"format": "projecteffortunit",
"caption": "Remain"
},
"totalEffort": {
"format": "projecteffortunit",
"caption": "Forecast"
},
"totalRemainingEffort": {
"format": "projecteffortunit",
"caption": "Total remain"
},
"billableStatus": {
"values": {
"1": "Fixed",
"2": "Time based",
"3": "Non-billable"
},
"format": "Enumeration values.Project.Billable status",
"caption": "Billing type"
},
"actualFinish": {
"format": "mediumdate",
"caption": "Actual finish"
},
"name": {
"format": "text",
"caption": "Task"
},
"performerIds": {
"format": "text",
"caption": null
},
"actualStart": {
"format": "mediumdate",
"caption": "Actual start"
},
"status": {
"values": {
"110": "Progressing",
"100": "On hold",
"160": "100% complete",
"40": "4. Completed",
"150": "75% complete",
"30": "3. In progress",
"140": "50% complete",
"20": "2. Assigned",
"130": "25% complete",
"10": "1. Not assigned",
"120": "Approved"
},
"format": "Enumeration values.Task.Status",
"caption": null
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
List requests information for a project
Get a list of requests
get /projects/{project_id}/requests
Get a list of requests
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
[
{
"taskBillableStatus": 3,
"targetEffort": 0,
"accountName": "PlanMill Oy",
"offDuty": 0,
"origin": 4,
"project": 1436,
"type": 2,
"requestId": 1446,
"actualEffort": 0,
"responsible": null,
"reported": 0,
"modifiedBy": null,
"id": 1445,
"deadline": "2016-01-12T12:34:00.000+0200",
"unitPrice": null,
"plannedEffort": 360,
"purchases": 0,
"created": "2016-01-11T12:34:19.443+0200",
"contactName": "Project.LastName, Project.FirstName",
"start": "2016-01-11T12:34:00.000+0200",
"emailsAmount": 0,
"remainingEffort": 360,
"totalEffort": 360,
"priority": 0,
"task": 1447,
"createdBy": 1415,
"name": "InsertRequest",
"projectName": "DBUNIT_Project (1439)",
"status": 0,
"expenses": 0
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for the request of a project
View details of a single meta.
get /projects/{project_id}/requests/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- project_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"filters": [
{
"name": "searchkey",
"caption": ""
},
{
"name": "viewby",
"caption": "View by",
"values": {
"22": "All open requests - late more than 7 days",
"23": "All open requests - late more than 14 days",
"26": "All recently closed requests - this week",
"27": "All recently closed requests - last week",
"28": "All requests created by email capture - this week",
"29": "All requests created by email capture - last week",
"30": "All requests created by email capture",
"31": "My active requests",
"10": "My recently closed requests - last week",
"32": "My inactive requests",
"11": "All open requests - deadline this week",
"33": "All requests with active performers",
"12": "All recently created requests - this week",
"34": "All requests with inactive performers",
"13": "All recently created requests - last week",
"35": "All requests with only active performers",
"14": "My open requests - late",
"36": "All requests with only inactive performers",
"15": "My open requests - late more than 1 day",
"37": "My closed requests",
"16": "My open requests - late more than 3 days",
"38": "All requests created by me",
"17": "My open requests - late more than 7 days",
"39": "All requests created by me - this week",
"18": "My open requests - late more than 14 days",
"19": "All open requests - late",
"0": "My requests",
"1": "My requests - excluding team assignments",
"2": "My open requests - deadline this week",
"3": "My recently created requests - this week",
"4": "My recently created requests - last week",
"5": "All requests",
"7": "All open requests - no performer(s)",
"9": "My recently closed requests - this week",
"40": "All requests created by me - last week",
"20": "All open requests - late more than 1 day",
"21": "All open requests - late more than 3 days"
}
},
{
"name": "Request.Type",
"caption": "Type",
"values": {
"0": "9. Other",
"1": "1. Support",
"2": "2. Bug",
"3": "3. Feature enhancement",
"-1": "All",
"4": "4. New feature",
"5": "5. Work estimate",
"6": "6. Ordered",
"7": "7. Product info",
"8": "8. Trial"
}
},
{
"name": "viewby2",
"caption": "Status",
"values": {
"0": "1. Received",
"-100": "Open (1,2,3)",
"1": "2. In progress",
"2": "3. In progress - waiting for info",
"35": "5. Solved",
"3": "4. Suspended",
"-1": "All",
"40": "6. Completed"
}
},
{
"name": "Account.Id",
"caption": "Account",
"values": {
"353": "First account",
"-1": "All",
"1450": "PlanMill Oy"
}
},
{
"name": "Task.ParentId",
"caption": "Parent task",
"values": {
"-1": "All"
}
},
{
"name": "Assignment.PersonId",
"caption": "Performer",
"values": {
"-1": "All"
}
},
{
"name": "Task.ResponsibleId",
"caption": "Responsible person",
"values": {
"1018": "Verdezoto, Ivan",
"1456": "no.api.key, Right",
"1467": "TEST, DBUNIT_BOARD",
"-1": "All",
"1455": "ThirdUser, third.auth.person",
"356": "User, First",
"1465": "access.right, Right",
"1454": "SecondUser, second.auth.person",
"1453": "User, auth.person",
"1462": "access.right, Right",
"1470": "user, reportable.assignment"
}
},
{
"name": "interval",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"values": {
"Task.Start": "Start",
"Task.ActualFinish": "Completed",
"Request.Modified": "Modified",
"Task.Finish": "Deadline",
"Request.Created": "Created"
}
},
{
"name": "rowcount",
"caption": "Rows",
"values": {
"100": "100",
"25": "25",
"50": "50",
"150": "150",
"250": "250",
"75": "75"
}
}
],
"fields": null
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/reports
Collection of available reports in PlanMill. This is a read-only collection.
Get a list of reports
get /reports
Get a list of reports
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- modernOnly: (boolean - default: false)
Only list reports which can be viewed by the report API
- exportType: (one of level1, level2, detailed)
Export type which can be used to only export top 1 or 2 categories of a report. (Only applies when exporting to pdf, xsl, csv or xml); level1 exports only top level categories; level2 exports only top 2 categories; detailed (default when parameter not set) export all rows
- rowcount: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- sort: (integer)
Sorts the results using number that is associated with each column
- order: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"Project homepage": [
{
"reports": [
{
"localizedName": "Time and expense reports by month",
"modern": false,
"hasAccess": true,
"name": "Time and expense reports by month",
"favorite": true
},
{
"localizedName": "Time and expense reports by person",
"modern": false,
"hasAccess": true,
"name": "Time and expense reports by person",
"favorite": true
}
],
"localizedName": "Time & expense"
},
{
"reports": [
{
"localizedName": "Revenues summary by month",
"modern": false,
"hasAccess": true,
"name": "Revenues summary by month",
"favorite": true
}
],
"localizedName": "Expenses & invoices"
},
{
"reports": [
{
"localizedName": "Requests by status",
"modern": false,
"hasAccess": true,
"name": "Requests by status",
"favorite": true
},
{
"localizedName": "Open tasks & requests",
"modern": false,
"hasAccess": true,
"name": "Open tasks & requests",
"favorite": true
}
],
"localizedName": "Other project related"
}
],
"Portfolio homepage": [
{
"reports": [
{
"localizedName": "Time and expense reports by person and project",
"modern": false,
"hasAccess": true,
"name": "Time and expense reports by person and project",
"favorite": true
},
{
"localizedName": "Time and expense reports by month and project",
"modern": false,
"hasAccess": true,
"name": "Time and expense reports by month and project",
"favorite": true
}
],
"localizedName": "Time & expense"
}
],
"Portal": [
{
"reports": [],
"localizedName": "Self generated reports"
},
{
"reports": [
{
"localizedName": "My accounts by status & country",
"modern": false,
"hasAccess": true,
"name": "My accounts by status & country",
"description": "Lists all the accounts where you are the owner.",
"favorite": true
},
{
"localizedName": "My expense reports",
"modern": false,
"hasAccess": true,
"name": "My expense reports",
"favorite": true
}
],
"localizedName": "My reports"
},
{
"reports": [
{
"localizedName": "Account billable time analysis",
"modern": false,
"hasAccess": false,
"name": "Account billable time analysis",
"favorite": true
},
{
"localizedName": "Account project billable time analysis",
"modern": false,
"hasAccess": false,
"name": "Account project billable time analysis",
"favorite": true
}
],
"localizedName": "Portfolio analysis"
},
{
"reports": [
{
"localizedName": "Draft invoices by month",
"modern": false,
"hasAccess": true,
"name": "Draft invoices by month",
"favorite": true
},
{
"localizedName": "Invoices by country",
"modern": false,
"hasAccess": true,
"name": "Invoices by country",
"favorite": true
}
],
"localizedName": "Invoicing"
},
{
"reports": [
{
"localizedName": "All expense summary by month",
"modern": false,
"hasAccess": true,
"name": "All expense summary by month",
"favorite": true
},
{
"localizedName": "Taxation expense items",
"modern": false,
"hasAccess": false,
"name": "Taxation expense items",
"favorite": true
}
],
"localizedName": "Time & expense"
},
{
"reports": [
{
"localizedName": "Actual utilization analysis by cost center",
"modern": true,
"hasAccess": true,
"name": "Actual utilization analysis by cost center",
"description": "Also includes absences",
"favorite": true
},
{
"localizedName": "Actual utilization analysis by person",
"modern": true,
"hasAccess": true,
"name": "Actual utilization analysis by person",
"description": "Also includes absences",
"favorite": true
}
],
"localizedName": "Resources & utilization"
},
{
"reports": [
{
"localizedName": "Accounts by owner",
"modern": false,
"hasAccess": true,
"name": "Accounts by owner",
"favorite": true
},
{
"localizedName": "Actions analysis by month",
"modern": false,
"hasAccess": true,
"name": "Actions analysis by month",
"favorite": true
}
],
"localizedName": "Sales & service"
},
{
"reports": [
{
"localizedName": "Revenue item preparation",
"modern": true,
"hasAccess": true,
"name": "Revenue item preparation",
"favorite": true
},
{
"localizedName": "Time report invoice preparation",
"modern": true,
"hasAccess": true,
"name": "Time report invoice preparation",
"favorite": true
}
],
"localizedName": "Update reports"
},
{
"reports": [
{
"localizedName": "Project list",
"modern": false,
"hasAccess": true,
"name": "Project list",
"favorite": true
},
{
"localizedName": "Task list",
"modern": true,
"hasAccess": true,
"name": "Task list",
"favorite": true
}
],
"localizedName": "List reports"
},
{
"reports": [
{
"localizedName": "Appraisals summary - Topics",
"modern": true,
"hasAccess": false,
"name": "Appraisals summary - Topics",
"favorite": false
},
{
"localizedName": "Competences by team",
"modern": true,
"hasAccess": false,
"name": "Competences by team",
"favorite": true
}
],
"localizedName": "Other"
}
]
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single report in PlanMill. This is a read-only item.
View details of a single report.
get /reports/{reportName}
View details of a single report.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- reportName: required(string)
Headers
- Accept: (one of application/json, application/pdf, application/vnd.ms-excel, application/xml, text/csv)
Get report in PDF, CSV, MS-Excel and XML formats
Example:
Accept: application/pdf
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- exportType: (one of level1, level2, detailed - default: detailed)
Export type which can be used to only export top 1 or 2 categories of a report. (Only applies when exporting to json, pdf, xsl, csv or xml); level1 exports only top level categories; level2 exports only top 2 categories; detailed - exports all rows (it is default when parameter is not set)
- paramX: (number)
Report filter parameters which are given in separate query parameters. Check the meta resource for information on the report's parameters
Example:
param1=3¶m2=2016¶m3=-100
- delim: required(string - default: (horizontal tab))
Delimiter character used to separate fields in exported csv files
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
[
[
"Test project",
"Time and material based service",
"Test project",
"2",
"2016-01-27T09:00:00.000+0200",
"2020-01-26T16:30:00.000+0200",
null,
null,
"4693",
"0",
"3925",
"3865",
"0",
"3865",
null,
"PlanMill User",
null
],
[
"test project - expense",
"test task - expense",
"test project - expense",
"2",
"2016-03-02T09:00:00.000+0200",
"2016-04-04T16:30:00.000+0300",
null,
null,
"10800",
"0",
"0",
"0",
"0",
"0",
null,
"Tester Qasim",
null
]
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for a report. Includes the report's name in user's language and information on columns and report filter parameters
View details of a single meta.
get /reports/{reportName}/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- reportName: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"localizedName": "My weekly time reports",
"columns": [
{
"type": "text",
"name": "Project"
},
{
"type": "text",
"name": "Task"
},
{
"type": "text",
"enumeration": "Enumeration values.Project.Billable status",
"name": "Type"
},
{
"type": "effortunit",
"name": "Mon"
},
{
"type": "effortunit",
"name": "Tue"
},
{
"type": "effortunit",
"name": "Wed"
},
{
"type": "effortunit",
"name": "Thu"
},
{
"type": "effortunit",
"name": "Fri"
},
{
"type": "effortunit",
"name": "Sat"
},
{
"type": "effortunit",
"name": "Sun"
},
{
"type": "effortunit",
"name": "Total"
}
],
"name": "My weekly time reports",
"parameters": [
{
"name": "param1",
"caption": "Week",
"values": {
"1": "1",
"2": "2",
"3": "3",
"4": "4",
"5": "5",
"6": "6",
"7": "7",
"8": "8",
"9": "9",
"10": "10",
"11": "11",
"12": "12",
"13": "13",
"14": "14",
"15": "15",
"16": "16",
"17": "17",
"18": "18",
"19": "19",
"20": "20",
"21": "21",
"22": "22",
"23": "23",
"24": "24",
"25": "25",
"26": "26",
"27": "27",
"28": "28",
"29": "29",
"30": "30",
"31": "31",
"32": "32",
"33": "33",
"34": "34",
"35": "35",
"36": "36",
"37": "37",
"38": "38",
"39": "39",
"40": "40",
"41": "41",
"42": "42",
"43": "43",
"44": "44",
"45": "45",
"46": "46",
"47": "47",
"48": "48",
"49": "49",
"50": "50",
"51": "51",
"52": "52",
"53": "53"
}
},
{
"name": "param2",
"caption": "Year",
"values": {
"2016": "2016"
}
},
{
"name": "param3",
"caption": "Invoice type",
"values": {
"1": "Billable",
"3": "Non-billable",
"-1": "All"
}
},
{
"name": "param4",
"caption": "Task type",
"values": {
"1": "Fixed",
"2": "Time based",
"3": "Non-billable",
"-1": "All"
}
}
]
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/requests
Collection of available requests in PlanMill. See requests/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Get a list of requests. See requests/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Add a new request to PlanMill or update existing (if id is given). See requests/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /requests
Get a list of requests. See requests/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (string)
Sorts the results using string that is a JSON attribute
- interval?: (string)
Interval type, e.g. start, finish, created, or modified. It is required in combination with intervalstart or intervalfinish
- intervalstart?: (string)
Start date of the interval in UTC format, intervalfinish required
Example:
2021-08-05T00:00:00.000+0200
- intervalfinish?: (string)
Finish date of the interval in UTC format, intervalstart required
Example:
2021-08-05T00:00:00.000+0200
HTTP status code 200
Body
Media type: application/json
Type: request
Example:
[
{
"taskBillableStatus": 3,
"targetEffort": 180,
"accountName": "Test Account",
"offDuty": 2040,
"origin": 1,
"project": 1975,
"type": 1,
"requestId": 1978,
"actualEffort": 0,
"responsible": 3081,
"reported": 0,
"modifiedBy": 3081,
"id": 1977,
"deadline": "2015-08-12T16:40:00.000+0300",
"unitPrice": 9.5,
"plannedEffort": 150,
"purchases": 0,
"created": "2015-08-11T16:39:38.340+0300",
"contactName": "Tester, Mikko",
"start": "2015-08-11T16:40:00.000+0300",
"emailsAmount": 1,
"remainingEffort": 150,
"totalEffort": 150,
"priority": 3,
"task": 1985,
"createdBy": 1680,
"name": "Test Request 1",
"projectName": "Test Project A (8)",
"status": 0,
"expenses": 0
},
{
"taskBillableStatus": 3,
"targetEffort": 0,
"accountName": "Test Account 2",
"offDuty": 0,
"origin": 4,
"project": 7362,
"type": 2,
"requestId": -1,
"actualEffort": 0,
"responsible": null,
"reported": 0,
"modifiedBy": null,
"id": -1,
"deadline": "2015-08-19T15:14:00.000+0300",
"unitPrice": null,
"plannedEffort": 360,
"purchases": 0,
"created": "2015-08-12T15:14:23.680+0300",
"contactName": "Tester, Second",
"start": "2015-08-12T15:14:00.000+0300",
"emailsAmount": 0,
"remainingEffort": 360,
"totalEffort": 360,
"priority": 0,
"task": -1,
"createdBy": 7339,
"name": "Test Request 2",
"projectName": "Test Project B (5874)",
"status": 0,
"expenses": 0
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /requests
Add a new request to PlanMill or update existing (if id is given). See requests/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: request
Example:
{
"taskBillableStatus": 2,
"targetEffort": 180,
"offDuty": 2040,
"origin": 1,
"description": "<p>test description</p>",
"project": 7362,
"type": 1,
"competence": null,
"notification": null,
"requestId": 7365,
"responsible": 3081,
"contact": 7360,
"id": 7364,
"deadline": "2015-08-13T15:14:00.000+0300",
"unitPrice": 9.5,
"invoiceReference": "",
"parentTask": 7363,
"start": "2015-08-12T15:14:00.000+0300",
"priceType": null,
"priority": 3,
"task": 7372,
"name": "Test Request",
"comment": "",
"projectName": "Test Project A",
"status": 0
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for requests. Includes resource's fields names and type and related filters
View details of a single meta.
get /requests/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"filters": [
{
"name": "searchkey",
"caption": ""
},
{
"name": "viewby",
"caption": "View by",
"values": {
"All open requests - late": "19",
"My active requests": "31",
"All requests with only active performers": "35",
"All open requests - late more than 14 days": "23",
"All requests with active performers": "33",
"My requests": "0",
"My recently closed requests - this week": "9",
"All open requests - late more than 7 days": "22",
"All open requests - late more than 1 day": "20",
"My recently created requests - this week": "3",
"All requests created by email capture - this week": "28",
"My closed requests": "37",
"All open requests - deadline this week": "11",
"All requests created by me - this week": "39",
"All requests created by me - last week": "40",
"All recently closed requests - this week": "26",
"My requests - excluding team assignments": "1",
"All requests created by email capture - last week": "29",
"My open requests - late more than 3 days": "16",
"All requests created by me": "38",
"All requests with only inactive performers": "36",
"All requests created by email capture": "30",
"All open requests - no performer(s)": "7",
"My open requests - deadline this week": "2",
"My open requests - late more than 1 day": "15",
"My recently closed requests - last week": "10",
"All open requests - late more than 3 days": "21",
"All requests": "5",
"My open requests - late more than 7 days": "17",
"My open requests - late": "14",
"All recently created requests - last week": "13",
"All recently closed requests - last week": "27",
"My inactive requests": "32",
"All recently created requests - this week": "12",
"My open requests - late more than 14 days": "18",
"My recently created requests - last week": "4",
"All requests with inactive performers": "34"
}
},
{
"name": "type",
"caption": "Type",
"values": {
"All": "-1",
"6. Ordered": "6",
"3. Feature enhancement": "3",
"1. Support": "1",
"9. Other": "0",
"2. Bug": "2",
"4. New feature": "4",
"8. Trial": "8",
"7. Product info": "7",
"5. Work estimate": "5"
}
},
{
"name": "viewby2",
"caption": "Status",
"values": {
"All": "-1",
"6. Completed": "40",
"3. In progress - waiting for info": "2",
"5. Solved": "35",
"4. Suspended": "3",
"1. Received": "0",
"Open (1,2,3)": "-100",
"2. In progress": "1"
}
},
{
"name": "Account.Id",
"caption": "Account",
"values": {
"All": "-1",
"PlanMill Oy": "2728",
"Company Oy": "7028"
}
},
{
"name": "project",
"caption": "Project",
"values": {
"Test project import (12857)": "5974",
"All": "-1",
"Testi project (16935)": "7057"
}
},
{
"name": "createdBy",
"caption": "Created by",
"values": {
"All": "-1",
"PlanMill, Admin": "1000"
}
},
{
"name": "Assignment.PersonId",
"caption": "Performer",
"values": {
"All": "-1",
"Mikkonen, Juha": "2629",
"Team: R & D Team": "4853"
}
},
{
"name": "responsible",
"caption": "Responsible person",
"values": {
"All": "-1",
"PlanMill Maintenance, User": "2773",
"Check, Testing": "2764",
"Top, Testinen": "2209"
}
},
{
"name": "interval",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"values": {
"Modified": "Request.Modified",
"Start": "start",
"Deadline": "deadline",
"Completed": "Task.ActualFinish",
"Created": "created"
}
},
{
"name": "rowcount",
"caption": "Rows",
"values": {
"25": "25",
"50": "50",
"75": "75",
"100": "100",
"150": "150",
"250": "250"
}
}
],
"fields": {
"taskBillableStatus": {
"format": "Enumeration values.Project.Billable status",
"caption": "Billing type"
},
"targetEffort": {
"format": "effortunit",
"caption": "Estimated"
},
"accountName": {
"format": "text",
"caption": "Account"
},
"offDuty": {
"format": "Enumeration values.Task.Offduty",
"caption": "Duty type"
},
"origin": {
"format": "Enumeration values.Sales management.Requests.Origin",
"caption": "Origin"
},
"project": {
"format": "text",
"caption": "PMVProject.Id"
},
"type": {
"format": "Enumeration values.Sales management.Requests.Type",
"caption": "Type"
},
"requestId": {
"format": "text",
"caption": "_ID"
},
"actualEffort": {
"format": "effortunit",
"caption": "Actual"
},
"responsible": {
"format": "text",
"caption": "Task.ResponsibleId"
},
"reported": {
"format": "effortunit",
"caption": "Reported"
},
"modifiedBy": {
"format": "text",
"caption": "Request.ModifiedBy"
},
"id": {
"format": "text",
"caption": "Request.Id"
},
"deadline": {
"format": "shortdate",
"caption": "Deadline"
},
"unitPrice": {
"format": "currency",
"caption": "Unit price"
},
"plannedEffort": {
"format": "effortunit",
"caption": "Planned"
},
"purchases": {
"format": "currency",
"caption": "Purchases"
},
"created": {
"format": "mediumdate",
"caption": "Created"
},
"contactName": {
"format": "text",
"caption": "Contact"
},
"start": {
"format": "shortdate",
"caption": "Start"
},
"emailsAmount": {
"format": "number",
"caption": "Emails"
},
"remainingEffort": {
"format": "effortunit",
"caption": "Remain"
},
"totalEffort": {
"format": "effortunit",
"caption": "Forecast"
},
"priority": {
"format": "Enumeration values.Sales management.Requests.Priority",
"caption": "Priority"
},
"task": {
"format": "text",
"caption": "Task.Id"
},
"createdBy": {
"format": "text",
"caption": "Request.CreatedBy"
},
"name": {
"format": "text",
"caption": "_Subject"
},
"projectName": {
"format": "text",
"caption": "Project (ID)"
},
"status": {
"format": "Enumeration values.Sales management.Requests.Status",
"caption": "Status"
},
"expenses": {
"format": "currency",
"caption": "Expenses"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single request in PlanMill.
View details of a single request. See requests/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Update an existing resource request to PlanMill. See requests/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Remove a request from PlanMill.
get /requests/{request_id}
View details of a single request. See requests/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- request_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: request
Example:
{
"taskBillableStatus": 2,
"targetEffort": 180,
"offDuty": 2040,
"origin": 1,
"description": "<p>test description</p>",
"project": 7362,
"type": 1,
"competence": null,
"notification": null,
"requestId": 7365,
"responsible": 3081,
"contact": 7360,
"id": 7364,
"deadline": "2015-08-13T15:14:00.000+0300",
"unitPrice": 9.5,
"invoiceReference": "",
"parentTask": 7363,
"start": "2015-08-12T15:14:00.000+0300",
"priceType": null,
"priority": 3,
"task": 7372,
"name": "Test Request",
"comment": "",
"projectName": "Test Project A",
"status": 0
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /requests/{request_id}
Update an existing resource request to PlanMill. See requests/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- request_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: request
Example:
{
"taskBillableStatus": 2,
"targetEffort": 180,
"offDuty": 2040,
"origin": 1,
"description": "<p>test description</p>",
"project": 7362,
"type": 1,
"competence": null,
"notification": null,
"requestId": 7365,
"responsible": 3081,
"contact": 7360,
"id": 7364,
"deadline": "2015-08-13T15:14:00.000+0300",
"unitPrice": 9.5,
"invoiceReference": "",
"parentTask": 7363,
"start": "2015-08-12T15:14:00.000+0300",
"priceType": null,
"priority": 3,
"task": 7372,
"name": "Test Request",
"comment": "",
"projectName": "Test Project A",
"status": 0
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /requests/{request_id}
Remove a request from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- request_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for the updatable fields of the request
View details of a single meta.
get /requests/{request_id}/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- request_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"filters": [
{
"name": "searchkey",
"caption": ""
},
{
"name": "viewby",
"caption": "View by",
"values": {
"All open requests - late": "19",
"My active requests": "31",
"All requests with only active performers": "35",
"All open requests - late more than 14 days": "23",
"All requests with active performers": "33",
"My requests": "0",
"My recently closed requests - this week": "9",
"All open requests - late more than 7 days": "22",
"All open requests - late more than 1 day": "20",
"My recently created requests - this week": "3",
"All requests created by email capture - this week": "28",
"My closed requests": "37",
"All open requests - deadline this week": "11",
"All requests created by me - this week": "39",
"All requests created by me - last week": "40",
"All recently closed requests - this week": "26",
"My requests - excluding team assignments": "1",
"All requests created by email capture - last week": "29",
"My open requests - late more than 3 days": "16",
"All requests created by me": "38",
"All requests with only inactive performers": "36",
"All requests created by email capture": "30",
"All open requests - no performer(s)": "7",
"My open requests - deadline this week": "2",
"My open requests - late more than 1 day": "15",
"My recently closed requests - last week": "10",
"All open requests - late more than 3 days": "21",
"All requests": "5",
"My open requests - late more than 7 days": "17",
"My open requests - late": "14",
"All recently created requests - last week": "13",
"All recently closed requests - last week": "27",
"My inactive requests": "32",
"All recently created requests - this week": "12",
"My open requests - late more than 14 days": "18",
"My recently created requests - last week": "4",
"All requests with inactive performers": "34"
}
},
{
"name": "type",
"caption": "Type",
"values": {
"All": "-1",
"6. Ordered": "6",
"3. Feature enhancement": "3",
"1. Support": "1",
"9. Other": "0",
"2. Bug": "2",
"4. New feature": "4",
"8. Trial": "8",
"7. Product info": "7",
"5. Work estimate": "5"
}
},
{
"name": "viewby2",
"caption": "Status",
"values": {
"All": "-1",
"6. Completed": "40",
"3. In progress - waiting for info": "2",
"5. Solved": "35",
"4. Suspended": "3",
"1. Received": "0",
"Open (1,2,3)": "-100",
"2. In progress": "1"
}
},
{
"name": "Account.Id",
"caption": "Account",
"values": {
"All": "-1",
"PlanMill Oy": "2728",
"Company Oy": "7028"
}
},
{
"name": "project",
"caption": "Project",
"values": {
"Test project import (12857)": "5974",
"All": "-1",
"Testi project (16935)": "7057"
}
},
{
"name": "createdBy",
"caption": "Created by",
"values": {
"All": "-1",
"PlanMill, Admin": "1000"
}
},
{
"name": "Assignment.PersonId",
"caption": "Performer",
"values": {
"All": "-1",
"Mikkonen, Juha": "2629",
"Team: R & D Team": "4853"
}
},
{
"name": "responsible",
"caption": "Responsible person",
"values": {
"All": "-1",
"PlanMill Maintenance, User": "2773",
"Check, Testing": "2764",
"Top, Testinen": "2209"
}
},
{
"name": "interval",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"values": {
"Modified": "Request.Modified",
"Start": "start",
"Deadline": "deadline",
"Completed": "Task.ActualFinish",
"Created": "created"
}
},
{
"name": "rowcount",
"caption": "Rows",
"values": {
"25": "25",
"50": "50",
"75": "75",
"100": "100",
"150": "150",
"250": "250"
}
}
],
"fields": {
"taskBillableStatus": {
"format": "Enumeration values.Project.Billable status",
"caption": "Billing type"
},
"targetEffort": {
"format": "effortunit",
"caption": "Estimated"
},
"accountName": {
"format": "text",
"caption": "Account"
},
"offDuty": {
"format": "Enumeration values.Task.Offduty",
"caption": "Duty type"
},
"origin": {
"format": "Enumeration values.Sales management.Requests.Origin",
"caption": "Origin"
},
"project": {
"format": "text",
"caption": "PMVProject.Id"
},
"type": {
"format": "Enumeration values.Sales management.Requests.Type",
"caption": "Type"
},
"requestId": {
"format": "text",
"caption": "_ID"
},
"actualEffort": {
"format": "effortunit",
"caption": "Actual"
},
"responsible": {
"format": "text",
"caption": "Task.ResponsibleId"
},
"reported": {
"format": "effortunit",
"caption": "Reported"
},
"modifiedBy": {
"format": "text",
"caption": "Request.ModifiedBy"
},
"id": {
"format": "text",
"caption": "Request.Id"
},
"deadline": {
"format": "shortdate",
"caption": "Deadline"
},
"unitPrice": {
"format": "currency",
"caption": "Unit price"
},
"plannedEffort": {
"format": "effortunit",
"caption": "Planned"
},
"purchases": {
"format": "currency",
"caption": "Purchases"
},
"created": {
"format": "mediumdate",
"caption": "Created"
},
"contactName": {
"format": "text",
"caption": "Contact"
},
"start": {
"format": "shortdate",
"caption": "Start"
},
"emailsAmount": {
"format": "number",
"caption": "Emails"
},
"remainingEffort": {
"format": "effortunit",
"caption": "Remain"
},
"totalEffort": {
"format": "effortunit",
"caption": "Forecast"
},
"priority": {
"format": "Enumeration values.Sales management.Requests.Priority",
"caption": "Priority"
},
"task": {
"format": "text",
"caption": "Task.Id"
},
"createdBy": {
"format": "text",
"caption": "Request.CreatedBy"
},
"name": {
"format": "text",
"caption": "_Subject"
},
"projectName": {
"format": "text",
"caption": "Project (ID)"
},
"status": {
"format": "Enumeration values.Sales management.Requests.Status",
"caption": "Status"
},
"expenses": {
"format": "currency",
"caption": "Expenses"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available assignments in PlanMill. See assignments/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Get a list of assignments. See assignments/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Add a new assignment to PlanMill or update existing (if id is given). See assignments/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /requests/{request_id}/assignments
Get a list of assignments. See assignments/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- request_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (string)
Sorts the results using string that is a JSON attribute
- interval?: (string)
Interval type, e.g. start, finish, created, or modified. It is required in combination with intervalstart or intervalfinish
- intervalstart?: (string)
Start date of the interval in UTC format, intervalfinish required
Example:
2021-08-05T00:00:00.000+0200
- intervalfinish?: (string)
Finish date of the interval in UTC format, intervalstart required
Example:
2021-08-05T00:00:00.000+0200
HTTP status code 200
Body
Media type: application/json
Type: assignment
Example:
[
{
"unitPrice": null,
"reportedEffort": 123,
"taskBillableStatus": 2,
"request": 7451,
"taskStart": "2015-08-13T09:58:00.000+0300",
"proposedDeadline": null,
"actualAmount": 0,
"personOrTeam": 7467,
"proposedEffortAmount": -600,
"proposedAmount": 0,
"remainingAmount": 600,
"totalAmount": 600,
"personOrTeamName": "Tester, First",
"task": 7468,
"declined": 0,
"taskName": "Test Task 1",
"comment": null,
"plannedAmount": 600,
"id": 7470,
"taskFinish": "2015-08-14T09:58:00.000+0300",
"taskStatus": "3. In progress",
"status": null
},
{
"unitPrice": null,
"reportedEffort": 0,
"taskBillableStatus": 3,
"request": 7451,
"taskStart": "2015-08-13T09:58:00.000+0300",
"proposedDeadline": null,
"actualAmount": 0,
"personOrTeam": 7447,
"proposedEffortAmount": null,
"proposedAmount": null,
"remainingAmount": 0,
"totalAmount": 0,
"personOrTeamName": "Tester, Second",
"task": 7468,
"declined": 0,
"taskName": "Test Task 2",
"comment": null,
"plannedAmount": 150,
"id": 7453,
"taskFinish": "2015-08-14T09:58:00.000+0300",
"taskStatus": "1. Received",
"status": null
},
{
"unitPrice": null,
"reportedEffort": 180,
"taskBillableStatus": 2,
"request": 7451,
"taskStart": "2015-08-13T09:58:00.000+0300",
"proposedDeadline": null,
"actualAmount": 0,
"personOrTeam": 7463,
"proposedEffortAmount": -240,
"proposedAmount": null,
"remainingAmount": 0,
"totalAmount": 0,
"personOrTeamName": "Tester, Third",
"task": 7468,
"declined": 0,
"taskName": "Test Task 3",
"comment": null,
"plannedAmount": 240,
"id": 7471,
"taskFinish": "2015-08-14T09:58:00.000+0300",
"taskStatus": "100% complete",
"status": null
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /requests/{request_id}/assignments
Add a new assignment to PlanMill or update existing (if id is given). See assignments/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- request_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: assignment
Example:
{
"remainingAmount": 0,
"taskStart": "2015-08-13T09:58:00.000+0300",
"task": 7468,
"timereportsAmount": 120,
"personOrTeam": 7447,
"actualAmount": 0,
"totalReported": 120,
"project": 7449,
"plannedAmount": 240,
"taskFinish": "2015-08-14T09:58:00.000+0300"
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single meta in PlanMill. This is a read-only item.
View details of a single meta.
get /requests/{request_id}/assignments/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- request_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"filters": [
{
"name": "searchkey",
"caption": ""
},
{
"name": "Person.Id",
"caption": "Performer",
"values": {
"All": "-1"
}
},
{
"name": "task",
"caption": "Task",
"values": {
"All": "-1"
}
},
{
"name": "taskStatus",
"caption": "Status",
"values": {
"All": "-1"
}
},
{
"name": "taskBillableStatus",
"caption": "Billing type",
"values": {
"All": "-1",
"Non-billable": "3",
"Time based": "2",
"Fixed": "1"
}
},
{
"name": "Baseline.Id",
"caption": "Baseline",
"values": {
"-": "-1"
}
},
{
"name": "status",
"caption": "Assignment status",
"values": {
"All": "-1",
"Declined": "30",
"Proposed": "10",
"Accepted": "20",
"Open": "-2"
}
},
{
"name": "interval",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"values": {
"Modified": "Assignment.Modified",
"Start": "taskStart",
"Finish": "taskFinish",
"Created": "Assignment.Created"
}
}
],
"fields": {
"unitPrice": {
"format": "projectcurrency",
"caption": "Unit price"
},
"reportedEffort": {
"format": "projecteffortunit",
"caption": "Reported"
},
"taskBillableStatus": {
"format": "Enumeration values.Project.Billable status",
"caption": "Billing type"
},
"request": {
"format": "text",
"caption": "Request.Id"
},
"taskStart": {
"format": "shortdate",
"caption": "Start"
},
"proposedDeadline": {
"format": "shortdate",
"caption": "Proposal deadline"
},
"actualAmount": {
"format": "projecteffortunit",
"caption": "Accepted"
},
"personOrTeam": {
"format": null,
"caption": null
},
"proposedEffortAmount": {
"format": "projecteffortunit",
"caption": "Proposed-Planned"
},
"proposedAmount": {
"format": "projecteffortunit",
"caption": "Proposed"
},
"remainingAmount": {
"format": "projecteffortunit",
"caption": "Remain"
},
"totalAmount": {
"format": "projecteffortunit",
"caption": "Forecast"
},
"personOrTeamName": {
"format": "text",
"caption": "_Performer"
},
"task": {
"format": "text",
"caption": "Task.Id"
},
"declined": {
"format": "projecteffortunit",
"caption": "Declined"
},
"taskName": {
"format": "text",
"caption": "_Task"
},
"comment": {
"format": null,
"caption": "Proposal hint"
},
"plannedAmount": {
"format": "projecteffortunit",
"caption": "Planned"
},
"id": {
"format": "text",
"caption": "Assignment.Id"
},
"taskFinish": {
"format": "shortdate",
"caption": "Finish"
},
"taskStatus": {
"format": "text",
"caption": "Status"
},
"status": {
"format": "Enumeration values.Assignment.Status",
"caption": "Assignment status"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single assignment in PlanMill.
View details of a single assignment. See assignments/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Update an existing resource assignment to PlanMill. See assignments/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Remove a assignment from PlanMill.
get /requests/{request_id}/assignments/{assignment_id}
View details of a single assignment. See assignments/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- request_id: required(string)
- assignment_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: assignment
Example:
{
"remainingAmount": 0,
"taskStart": "2015-08-13T09:58:00.000+0300",
"task": 7468,
"timereportsAmount": 120,
"personOrTeam": 7447,
"actualAmount": 0,
"totalReported": 120,
"project": 7449,
"plannedAmount": 240,
"taskFinish": "2015-08-14T09:58:00.000+0300"
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /requests/{request_id}/assignments/{assignment_id}
Update an existing resource assignment to PlanMill. See assignments/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- request_id: required(string)
- assignment_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: assignment
Example:
{
"remainingAmount": 0,
"taskStart": "2015-08-13T09:58:00.000+0300",
"task": 7468,
"timereportsAmount": 120,
"personOrTeam": 7447,
"actualAmount": 0,
"totalReported": 120,
"project": 7449,
"plannedAmount": 240,
"taskFinish": "2015-08-14T09:58:00.000+0300"
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /requests/{request_id}/assignments/{assignment_id}
Remove a assignment from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- request_id: required(string)
- assignment_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single meta in PlanMill. This is a read-only item.
View details of a single meta.
get /requests/{request_id}/assignments/{assignment_id}/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- request_id: required(string)
- assignment_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"taskStart": {
"caption": "",
"format": "shortdate",
"values": null
},
"proposedDeadline": {
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"caption": "Proposal deadline",
"format": "string",
"description": "",
"maxlength": "10",
"values": null
},
"personOrTeam": {
"caption": "Assigned to",
"values": {
"Mikkonen, Juha": "5798",
"-": "",
"Team: R & D Team": "4853"
},
"format": "int"
},
"actualAmount": {
"caption": "Accepted",
"format": "double",
"values": null
},
"totalReported": {
"caption": "AssignmentReported",
"format": "double",
"values": null
},
"project": {
"caption": "",
"format": "int",
"values": null
},
"proposedAmount": {
"caption": "Proposed",
"format": "double",
"values": null
},
"remainingAmount": {
"caption": "Remain",
"format": "double",
"values": null
},
"task": {
"caption": "Task",
"values": {
"PlanMill Professional Services, 25.09.2012 - 31.12.2012": "2856",
"PlanMill ERP Cloud Quick Setup Pack, 25.09.2012 - 30.09.2012": "2175",
"-": "",
"PlanMill Integration for SAP Finance, 25.09.2012 - 31.12.2012": "2873"
},
"format": "int"
},
"timereportsAmount": {
"caption": "Reported",
"format": "double",
"values": null
},
"comment": {
"caption": "Proposal hint",
"description": "",
"maxlength": "50",
"values": null
},
"plannedAmount": {
"caption": "Planned",
"format": "double",
"values": null
},
"taskFinish": {
"caption": "",
"values": null
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available attachments in PlanMill. This is a read-only collection.
Get a list of attachments
get /requests/{request_id}/attachments
Get a list of attachments
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- request_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
[
{
"size": 8497,
"createdBy": 50,
"created": "2022-01-13T13:05:10.837+0200",
"name": "attached_file_test.txt",
"modified": "2022-01-13T13:18:25.353+0200",
"id": 1543
},
{
"size": 146169,
"createdBy": 50,
"created": "2022-01-13T13:18:25.353+0200",
"name": "attached_file.txt",
"modified": "2022-01-13T13:18:25.353+0200",
"id": 1545
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
attachment_id is returned by /tempfiles endpoint on file upload.
View details of single attachment.
put /requests/{request_id}/attachments/{attachment_id}
attachment_id is returned by /tempfiles endpoint on file upload.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- request_id: required(string)
- attachment_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
get /requests/{request_id}/attachments/{attachment_id}
View details of single attachment.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- request_id: required(string)
- attachment_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
Contents of file
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available mails in PlanMill. See mails/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Get a list of mails. See mails/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Add a new mail to PlanMill or update existing (if id is given). See mails/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /requests/{request_id}/mails
Get a list of mails. See mails/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- request_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (string)
Sorts the results using string that is a JSON attribute
- interval?: (string)
Interval type, e.g. start, finish, created, or modified. It is required in combination with intervalstart or intervalfinish
- intervalstart?: (string)
Start date of the interval in UTC format, intervalfinish required
Example:
2021-08-05T00:00:00.000+0200
- intervalfinish?: (string)
Finish date of the interval in UTC format, intervalstart required
Example:
2021-08-05T00:00:00.000+0200
HTTP status code 200
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all request mail entities",
"oneOf": [{
"type": "array",
"items": {
"$ref": "#/definitions/requestMailArray"
}
}, {
"$ref": "#/definitions/requestMailSingle"
}],
"definitions": {
"requestMailSingle": {
"type": "object",
"required": ["sender"],
"additionalProperties": false,
"properties": {
"sender": {
"type": ["string", "null"],
"description": "sender's id"
},
"subject": {
"type": "string",
"description": "message subject "
},
"id": {
"type": "integer",
"description": "ID of the mail"
},
"primaryTo": {
"type": ["string", "null"],
"description": "recipient email address"
},
"carbonCopy": {
"type": ["string", "null"],
"description": "recipient cc email address"
},
"blindCarbonCopy": {
"type": ["string", "null"],
"description": "recipient bcc email address"
},
"body": {
"type": ["string", "null"],
"description": "message body"
},
"nonDraft":{
"type": ["integer", "null"]
}
}
},
"requestMailArray": {
"type": "object",
"required": ["sender"],
"additionalProperties": false,
"properties": {
"senderName": {
"type": "string",
"description": "sender email address"
},
"sender": {
"type": ["string", "null"],
"description": "sender's id"
},
"receiverName": {
"type": ["string", "null"],
"description": "receiver's name"
},
"subject": {
"type": "string",
"description": "message subject"
},
"id": {
"type": "integer",
"description": "ID of the mail"
},
"created": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1]) ([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})",
"description": "created date"
},
"primaryTo": {
"type": ["string", "null"],
"description": "recipient email address"
},
"creator": {
"type": ["integer"],
"description": "ID of the person that created the mail"
},
"creatorName": {
"type": ["string"],
"description": "name of the person that created the mail"
},
"receiver": {
"type": ["integer","null"],
"description": "ID of the receiver that created the mail"
},
"request": {
"type": ["integer"],
"description": "request id that the mail is attached to"
}
}
}
}
}
Example:
[
{
"request": 7665,
"senderName": "sender@mail.com",
"creator": 7629,
"receiver": null,
"sender": "sender@mail.com",
"created": "2015-08-13 12:15:59.207",
"subject": "This is the first request mail ",
"receiverName": "test@planmill.com",
"creatorName": "User, Peter",
"id": 7668
},
{
"request": 4142,
"senderName": "mikko.tester@planmill.com",
"creator": 3081,
"receiver": null,
"sender": "qasim.tester@planmill.com",
"created": "2015-09-08 16:48:23.903",
"subject": "test request (ID 3938, lastName firstName / UI.PlanMill Oy)",
"receiverName": "receiver@planmill.com",
"creatorName": "Tester, First",
"id": 4149
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /requests/{request_id}/mails
Add a new mail to PlanMill or update existing (if id is given). See mails/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- request_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all request mail entities",
"oneOf": [{
"type": "array",
"items": {
"$ref": "#/definitions/requestMailArray"
}
}, {
"$ref": "#/definitions/requestMailSingle"
}],
"definitions": {
"requestMailSingle": {
"type": "object",
"required": ["sender"],
"additionalProperties": false,
"properties": {
"sender": {
"type": ["string", "null"],
"description": "sender's id"
},
"subject": {
"type": "string",
"description": "message subject "
},
"id": {
"type": "integer",
"description": "ID of the mail"
},
"primaryTo": {
"type": ["string", "null"],
"description": "recipient email address"
},
"carbonCopy": {
"type": ["string", "null"],
"description": "recipient cc email address"
},
"blindCarbonCopy": {
"type": ["string", "null"],
"description": "recipient bcc email address"
},
"body": {
"type": ["string", "null"],
"description": "message body"
},
"nonDraft":{
"type": ["integer", "null"]
}
}
},
"requestMailArray": {
"type": "object",
"required": ["sender"],
"additionalProperties": false,
"properties": {
"senderName": {
"type": "string",
"description": "sender email address"
},
"sender": {
"type": ["string", "null"],
"description": "sender's id"
},
"receiverName": {
"type": ["string", "null"],
"description": "receiver's name"
},
"subject": {
"type": "string",
"description": "message subject"
},
"id": {
"type": "integer",
"description": "ID of the mail"
},
"created": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1]) ([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})",
"description": "created date"
},
"primaryTo": {
"type": ["string", "null"],
"description": "recipient email address"
},
"creator": {
"type": ["integer"],
"description": "ID of the person that created the mail"
},
"creatorName": {
"type": ["string"],
"description": "name of the person that created the mail"
},
"receiver": {
"type": ["integer","null"],
"description": "ID of the receiver that created the mail"
},
"request": {
"type": ["integer"],
"description": "request id that the mail is attached to"
}
}
}
}
}
Example:
{
"sender": "tester@planmill.com",
"subject": "test request (ID 3938, Tester Peter / PlanMill Oy)",
"carbonCopy": "bug@planmill.com",
"blindCarbonCopy": "test@planmill.com",
"nonDraft": 0,
"id": 4149,
"primaryTo": "receiver@planmill.com",
"body": "This is the first request mail"
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single meta in PlanMill. This is a read-only item.
View details of a single meta.
get /requests/{request_id}/mails/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- request_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"filters": [
{
"name": "rowcount",
"caption": "Rows",
"values": {
"25": "25",
"50": "50",
"75": "75",
"100": "100",
"150": "150",
"250": "250"
}
}
],
"fields": {
"request": {
"format": null,
"caption": null
},
"senderName": {
"format": null,
"caption": null
},
"creator": {
"format": null,
"caption": null
},
"receiver": {
"format": null,
"caption": null
},
"sender": {
"format": null,
"caption": null
},
"created": {
"format": null,
"caption": null
},
"subject": {
"format": null,
"caption": null
},
"receiverName": {
"format": null,
"caption": null
},
"creatorName": {
"format": null,
"caption": null
},
"id": {
"format": null,
"caption": null
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/resources
Collection of resources in PlanMill. Resource is an assignment with it's daily schedule information included.
Get a list of resources.
get /resources
Get a list of resources.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- start: required(string - default: Today)
Period start date in UTC format. Required if Finish date is given.
Example:
2016-12-31T00:00:00.000+0200
- finish: required(string - default: Start date plus one year)
Period finish date in UTC format
Example:
2016-12-31T00:00:00.000+0200
HTTP status code 200
Body
Media type: application/json
Type:
{
"$schema": "http://json-schema.org/draft-06/schema#",
"description": "base schema for all resource entities (resource = assignment + schedule) based on team or person",
"oneOf": [
{
"type": "array",
"items": { "$ref": "#/definitions/resouceArray" }
}
],
"definitions": {
"resouceArray": {
"type": "object",
"required": [ "remainingAmount", "taskStart", "task", "assignment", "person", "team", "actualAmount", "totalReported", "taskFinish"],
"additionalProperties": false,
"properties": {
"remainingAmount": {
"type": "integer",
"description": "Assignment remaining time in minutes"
},
"schedules": {
"type": "array",
"items": { "$ref": "#/definitions/schedule" }
},
"taskStart": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Task start date"
},
"task": {
"type": "integer",
"description": "Task id"
},
"assignment": {
"type": "integer",
"description": "Assignment id"
},
"person": {
"type": ["integer", null],
"description": "Person id"
},
"team": {
"type": ["integer", null],
"description": "Team id"
},
"actualAmount": {
"type": "integer",
"description": "Actual Amount in minutes"
},
"totalReported": {
"type": "integer",
"description": "Total reported time in minutes"
},
"taskFinish": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Task finish date and time of a team or person"
}
}
},
"schedule": {
"type": "object",
"required": [ "name" ],
"additionalProperties": false,
"properties": {
"date": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Date of the schedule planned"
},
"owner": {
"type": "integer",
"description": "Id of a manager person of a team"
},
"plannedAmount": {
"type": "integer",
"description": "Planned amount for the team or project"
}
}
}
}
}
Example:
{
"$schema": "http://json-schema.org/draft-06/schema#",
"description": "base schema for all resource entities (resource = assignment + schedule) based on team or person",
"oneOf": [
{
"type": "array",
"items": { "$ref": "#/definitions/resouceArray" }
}
],
"definitions": {
"resouceArray": {
"type": "object",
"required": [ "remainingAmount", "taskStart", "task", "assignment", "person", "team", "actualAmount", "totalReported", "taskFinish"],
"additionalProperties": false,
"properties": {
"remainingAmount": {
"type": "integer",
"description": "Assignment remaining time in minutes"
},
"schedules": {
"type": "array",
"items": { "$ref": "#/definitions/schedule" }
},
"taskStart": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Task start date"
},
"task": {
"type": "integer",
"description": "Task id"
},
"assignment": {
"type": "integer",
"description": "Assignment id"
},
"person": {
"type": ["integer", null],
"description": "Person id"
},
"team": {
"type": ["integer", null],
"description": "Team id"
},
"actualAmount": {
"type": "integer",
"description": "Actual Amount in minutes"
},
"totalReported": {
"type": "integer",
"description": "Total reported time in minutes"
},
"taskFinish": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Task finish date and time of a team or person"
}
}
},
"schedule": {
"type": "object",
"required": [ "name" ],
"additionalProperties": false,
"properties": {
"date": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Date of the schedule planned"
},
"owner": {
"type": "integer",
"description": "Id of a manager person of a team"
},
"plannedAmount": {
"type": "integer",
"description": "Planned amount for the team or project"
}
}
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "start : Please enter a valid date.",
"code": "00403"
}, |
{
"message": "start date missing",
"code": "00403"
}, |
{
"message": "finish : Please enter a valid date.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/salesorders
Collection of available salesorders in PlanMill. See salesorders/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Get a list of salesorders. See salesorders/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Add a new salesorder to PlanMill or update existing (if id is given). See salesorders/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /salesorders
Get a list of salesorders. See salesorders/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (string)
Sorts the results using string that is a JSON attribute
- interval?: (string)
Interval type, e.g. start, finish, created, or modified. It is required in combination with intervalstart or intervalfinish
- intervalstart?: (string)
Start date of the interval in UTC format, intervalfinish required
Example:
2021-08-05T00:00:00.000+0200
- intervalfinish?: (string)
Finish date of the interval in UTC format, intervalstart required
Example:
2021-08-05T00:00:00.000+0200
HTTP status code 200
Body
Media type: application/json
Type: array of salesorder
Items: salesorder
- name: (string)
Name of a sales order
- orderDate: (union of string or nil)
Ordered date of a sales order
- status: (integer)
Status of a sales order
- termsOfPayment: (union of number or nil)
Terms of payment
- delayInterest: (union of number or nil)
Interest on delay of payment
- responsible: (union of integer or nil)
Sales executive person's id of a sales order
- operationalId: (union of integer or string)
Operational id of a sales order
- quoteDate: (union of datetime or nil)
Start date of a quote
- quoteUntil: (union of datetime or nil)
Finish date of a quote
- billingAccount: (union of integer or nil)
Billing account id of a customer's account
- contractDPS: (union of integer or nil)
Contract DPS field for Hansel agreements
- accountName: (union of string or nil)
Name of a cutomer's account
- contact: (string)
Contact person of a customer's account
- supplierName: (union of string or nil)
Name of a supplier contact person
- responsibleName: (union of string or nil)
Sales executive person's name of a sales order
- projectName: (union of string or nil)
Name of a project related to a sales order
- contractName: (union of string or nil)
Name of a contract
- VAT: (union of string or integer or nil)
VAT reg. no. of a cutomer's account
- totalExcludeVAT: (union of number or nil)
Total contract value (TCV), total Exclude VAT
- supplier: (union of integer or nil)
Id of a supplier's account
- invoiceAppendix: (union of integer or nil)
Invoice appendix
- created: (datetime)
- supplierContact: (string)
Name of a supplier contact person
- id: (integer)
Id of a sales order
- account: (union of integer or nil)
Id of a cutomer's account
- shippingAccountName: (union of string or nil)
Name of a shipping accountr
- billingAccountName: (union of string or nil)
Name of a customer's billing account
- shippingAccount: (union of integer or nil)
Id of a shipping account
Example:
[
{
"shippingAccountName": "Shipping Account Oy",
"shippingAccount": 353,
"accountName": "PlanMill Oy",
"VAT": "FI56985210",
"delayInterest": 0,
"operationalId": 1001,
"billingAccount": 51,
"contact": "PlanMill, Maintenance-user",
"supplier": 353,
"responsible": null,
"contractName": null,
"id": 1529,
"responsibleName": null,
"quoteDate": "2022-01-07T00:00:00.000+0200",
"supplierName": "Your organisation legal trading name (update)",
"quoteUntil": "2022-08-07T00:00:00.000+0300",
"invoiceAppendix": null,
"created": "2022-01-07T14:20:20.797+0200",
"name": "PlanMill PSA Cloud Service",
"billingAccountName": "PlanMill Oy",
"projectName": null,
"supplierContact": "User (update), First",
"orderDate": "2022-01-08T00:00:00.000+0200",
"termsOfPayment": 0,
"account": 51,
"status": 0,
"totalExcludeVAT": null,
"contractDPS": null
},
{
"shippingAccountName": null,
"shippingAccount": null,
"accountName": "Your organisation legal trading name (update)",
"VAT": "",
"delayInterest": 8,
"operationalId": 1000,
"billingAccount": 353,
"contact": "User (update), First",
"supplier": 51,
"responsible": 356,
"contractName": null,
"id": 1527,
"responsibleName": "User (update), First",
"quoteDate": "2022-01-07T00:00:00.000+0300",
"supplierName": "PlanMill Oy",
"quoteUntil": "2022-04-07T00:00:00.000+0300",
"invoiceAppendix": -1,
"created": "2022-01-07T13:35:12.690+0200",
"name": "Test sales order",
"billingAccountName": "Your organisation legal trading name (update)",
"projectName": "Administrative duties (2)",
"supplierContact": "PlanMill, Maintenance-user",
"orderDate": "2022-01-07T00:00:00.000+0200",
"termsOfPayment": 14,
"account": 353,
"status": 40,
"totalExcludeVAT": 0,
"contractDPS": null
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /salesorders
Add a new salesorder to PlanMill or update existing (if id is given). See salesorders/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8)
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: object
Properties- name: required(string)
Name of a sales order
- contact: required(string)
Contact person of a customer's account
- supplierContact: (string)
Name of a supplier contact person.Required if contact field is missing shippingAccount?: type: integer | nil description:
- orderDate: (union of string or nil)
Ordered date of a sales order
- status: (integer)
Status of a sales order
- termsOfPayment: (union of number or nil)
Terms of payment
- delayInterest: (union of number or nil)
Interest on delay of payment
- responsible: (union of integer or nil)
Sales executive person's id of a sales order
- operationalId: (union of integer or string)
Operational id of a sales order
- quoteDate: (union of datetime or nil)
Start date of a quote
- quoteUntil: (union of datetime or nil)
Finish date of a quote
- billingAccount: (union of integer or nil)
Billing account id of a customer's account
- contractDPS: (union of integer or nil)
Contract DPS field for Hansel agreements
- accountName: (union of string or nil)
Name of a cutomer's account
- supplierName: (union of string or nil)
Name of a supplier contact person
- responsibleName: (union of string or nil)
Sales executive person's name of a sales order
- projectName: (union of string or nil)
Name of a project related to a sales order
- contractName: (union of string or nil)
Name of a contract
- VAT: (union of string or integer or nil)
VAT reg. no. of a cutomer's account
- totalExcludeVAT: (union of number or nil)
Total contract value (TCV), total Exclude VAT
- supplier: (union of integer or nil)
Id of a supplier's account
- invoiceAppendix: (union of integer or nil)
Invoice appendix
- created: (datetime)
- languageAndCurrency: required(string)
Language snd currency, is name of the corresponding xsl file f.e. planmill_en_eur.xsl
- CustomerPerson.Name: (union of string or integer)
Required if contact field is missing
- yourReference: (union of string or nil)
Reference of a customer
- ourReference: (union of string or nil)
Reference of a supplier
- type: (integer)
Type of a sales order
- comment: (union of string or nil)
Comment of a sales order
- project: (union of integer or nil)
Id of a related project
- request: (union of integer or nil)
Id of a related request
- reverseCharge: (union of integer or nil)
Reverse charge
- invoiceItemSubtotaling: (union of integer or nil)
Contact person of a customer's account
- handlingFee: (integer)
Handling fee
- handlingFeeVat: (integer)
Handling fee VAT
- noticeTime: (integer)
Notice time of payment of a sales order
- description: (string)
Description of a sales order
Example:
{
"name": "PlanMill PSA Cloud Service",
"supplierContact": "356",
"quoteDate": "2022-01-07T00:00:00.000+0200",
"quoteUntil": "2022-08-07T00:00:00.000+0200",
"contact": "356",
"orderDate": "2022-01-07T00:00:00.000+0200",
"languageAndCurrency": "planmill_en_eur.xsl",
"CustomerPerson.Name":51,
"status": 40,
"termsOfPayment": 14,
"delayInterest": 8,
"responsible": 356,
"operationalId": 1050,
"billingAccount": 353,
"accountName": "Your organisation legal trading name (update)",
"supplierName": "PlanMill Oy",
"responsibleName": "User (update), First",
"projectName": "Administrative duties (2)",
"contractName": null,
"VAT": "",
"totalExcludeVAT": null,
"supplier": 51,
"invoiceAppendix": -1,
"created": "2022-01-07T13:35:12.690+0200",
"shippingAccountName": null,
"shippingAccount": null,
"ourReference": null,
"type": 10,
"comment": "Testing",
"project": null,
"request": null,
"reverseCharge": null,
"invoiceItemSubtotaling": 0,
"handlingFee": 0,
"handlingFeeVat": 0,
"noticeTime": 0,
"description": "Test",
"contractDPS": null
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for sales orders. Includes resource's fields names and type and related filters.
View details of a single meta.
get /salesorders/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"filters": [
{
"type": "string",
"name": "freetextsearch",
"caption": ""
},
{
"type": "string",
"name": "viewtemplate",
"value": "7",
"caption": "View by",
"values": {
"11": "All quotes",
"12": "All orders",
"13": "All valid orders",
"14": "All recently created - last 14 days",
"15": "All recently created - last 30 days",
"16": "All recently created - this week",
"17": "All recently created - last week",
"18": "All recently created - this month",
"19": "All recently created - last month",
"0": "My all",
"1": "My quotes",
"2": "My orders",
"3": "My recently created - last 14 days",
"4": "My recently created - last 30 days",
"5": "My recently created - this week",
"6": "My recently created - last week",
"7": "My team's all",
"8": "My team's recently created - this week",
"9": "My team's recently created - last week",
"10": "All"
}
},
{
"type": "multivalue",
"name": "portfolio",
"value": "-1",
"caption": "Portfolio",
"values": {
"210": "B) Internal projects portfolio",
"211": "B) Internal projects portfolio \\ Administrative projects",
"-1": "All",
"209": "A) Customer projects portfolio"
}
},
{
"type": "multivalue",
"name": "country",
"value": "-1",
"caption": "Country",
"values": {
"0": "-",
"-1": "All",
"73": "Finland"
}
},
{
"type": "string",
"name": "SalesOrder.BusinessUnit",
"value": "-1",
"caption": "Business unit",
"values": {
"1": "1. Value",
"2": "2. Value",
"3": "3. Value",
"-1": "All",
"4": "4. Value",
"5": "5. Value"
}
},
{
"type": "interval",
"name": "interval",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"values": {
"SalesOrder.OrderDate": "Order date",
"SalesOrder.Created": "Created",
"SalesOrder.Modified": "Modified"
}
},
{
"type": "string",
"name": "rowcount",
"value": "100",
"caption": "Rows",
"values": {
"100": "100",
"25": "25",
"50": "50",
"150": "150",
"250": "250",
"75": "75"
}
},
{
"type": "multivalue",
"name": "responsible",
"value": "-1",
"caption": "Salesperson",
"values": {
"-1": "All",
"356": "User (update), First"
}
},
{
"type": "multivalue",
"name": "status",
"value": "-1",
"caption": "Status",
"values": {
"-1": "All",
"40": "Ordered"
}
},
{
"type": "multivalue",
"name": "account",
"value": "-1",
"caption": "Customer",
"values": {
"-1": "All",
"51": "PlanMill Oy"
}
},
{
"type": "multivalue",
"name": "supplier",
"value": "-1",
"caption": "Supplier",
"values": {
"353": "Your organisation legal trading name (update)",
"-1": "All"
}
},
{
"type": "multivalue",
"name": "product",
"value": "-1",
"caption": "Product",
"values": {
"1314": "Fixed one-time service",
"-1": "All"
}
},
{
"type": "multivalue",
"name": "revenueType",
"value": "-1",
"caption": "Revenue type",
"values": {
"-1": "All",
"4": "Services"
}
}
],
"fields": {
"shippingAccountName": {
"format": "text",
"caption": "Shipping account"
},
"shippingAccount": {
"format": "text",
"caption": "ShippingAccount.Id"
},
"accountName": {
"format": "text",
"caption": "Customer"
},
"VAT": {
"format": "text",
"caption": "VAT number"
},
"delayInterest": {
"values": {
"9.5": "9,5 %",
"11.5": "11,5 %",
"10.5": "10,5 %",
"0.0": "-",
"1.0": "1,0 %",
"2.0": "2,0 %",
"12.0": "12,0 %",
"3.0": "3,0 %",
"11.0": "11,0 %",
"4.0": "4,0 %",
"10.0": "10,0 %",
"5.0": "5,0 %",
"1.5": "1,5 %",
"6.0": "6,0 %",
"2.5": "2,5 %",
"7.0": "7,0 %",
"3.5": "3,5 %",
"8.0": "8,0 %",
"4.5": "4,5 %",
"9.0": "9,0 %",
"5.5": "5,5 %",
"6.5": "6,5 %",
"19.0": "19,0 %",
"7.5": "7,5 %",
"8.5": "8,5 %"
},
"format": "Enumeration values.Finance control.Invoice position summary.Invoices.Delay interest",
"caption": "Delay interest"
},
"operationalId": {
"format": "text",
"caption": "Order\/Quote No."
},
"billingAccount": {
"format": "text",
"caption": "BillingAccount.Id"
},
"contact": {
"format": "text",
"caption": "Customer contact"
},
"supplier": {
"format": "text",
"caption": "Supplier.Id"
},
"responsible": {
"format": "text",
"caption": "Person2.Id"
},
"contractName": {
"format": "text",
"caption": "Contract"
},
"id": {
"format": "text",
"caption": "SalesOrder.Id"
},
"responsibleName": {
"format": "text",
"caption": "Salesperson"
},
"quoteDate": {
"format": "mediumdate",
"caption": "Quote date"
},
"supplierName": {
"format": "text",
"caption": "Supplier"
},
"quoteUntil": {
"format": "mediumdate",
"caption": "Quote valid until"
},
"invoiceAppendix": {
"values": {
"0": "None",
"1": "Invoice items by task",
"2": "Invoice items by person",
"3": "Priced invoice items by task",
"4": "Priced invoice items by person"
},
"format": "Enumeration values.Finance control.Invoice position summary.Invoices.Appendix",
"caption": "Invoice appendix"
},
"created": {
"format": "shortdate",
"caption": "Created"
},
"name": {
"format": "text",
"caption": "Name"
},
"billingAccountName": {
"format": "text",
"caption": "Billing account"
},
"projectName": {
"format": "text",
"caption": "Project (ID)"
},
"supplierContact": {
"format": "text",
"caption": "Supplier contact"
},
"orderDate": {
"format": "mediumdate",
"caption": "Order date"
},
"termsOfPayment": {
"values": {
"45": "45 days net",
"35": "35 days net",
"14": "14 days net",
"37": "37 days net",
"28": "28 days net",
"180": "180 days net",
"120": "120 days net",
"0": "Immediately",
"7": "7 days net",
"90": "90 days net",
"70": "70 days net",
"60": "60 days net",
"50": "50 days net",
"40": "40 days net",
"30": "30 days net",
"20": "20 days net",
"31": "31 days net",
"75": "75 days net",
"21": "21 days net",
"32": "32 days net"
},
"format": "Enumeration values.Sales management.Accounts.Terms of Payment",
"caption": "Terms of Payment"
},
"account": {
"format": "text",
"caption": "Account.Id"
},
"status": {
"values": {
"optgroup": "Sales order",
"\/optgroup": "-",
"70": "Cancelled",
"60": "Completed",
"50": "Confirmed",
"40": "Ordered",
"30": "Draft sales order",
"20": "Quoted",
"10": "Draft quote"
},
"format": "Enumeration values.Sales management.Sales orders.Status",
"caption": "Status"
},
"totalExcludeVAT": {
"format": "currency",
"caption": "Total contract value (TCV)"
},
"contractDPS": {
"format": "text",
"caption": "Contract DPS"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single salesorder in PlanMill.
View details of a single salesorder. See salesorders/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Update an existing resource salesorder to PlanMill. See salesorders/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Remove a salesorder from PlanMill.
get /salesorders/{sales_order_id}
View details of a single salesorder. See salesorders/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- sales_order_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- name: (string)
Name of a sales order
- orderDate: (union of string or nil)
Ordered date of a sales order
- status: (integer)
Status of a sales order
- termsOfPayment: (union of number or nil)
Terms of payment
- delayInterest: (union of number or nil)
Interest on delay of payment
- responsible: (union of integer or nil)
Sales executive person's id of a sales order
- operationalId: (union of integer or string)
Operational id of a sales order
- quoteDate: (union of datetime or nil)
Start date of a quote
- quoteUntil: (union of datetime or nil)
Finish date of a quote
- billingAccount: (union of integer or nil)
Billing account id of a customer's account
- contractDPS: (union of integer or nil)
Contract DPS field for Hansel agreements
- yourReference: (union of string or nil)
Reference of a customer
- ourReference: (union of string or nil)
Reference of a supplier
- type: (integer)
Type of a sales order
- comment: (string)
Comment of a sales order
- project: (union of integer or nil)
Id of a related project
- languageAndCurrency: (string)
Language snd currency, is name of the corresponding xsl file f.e. planmill_en_eur.xsl
- request: (union of integer or nil)
Id of a related request
- reverseCharge: (union of integer or nil)
Reverse charge
- invoiceItemSubtotaling: (union of integer or nil)
Contact person of a customer's account
- handlingFee: (integer)
Handling fee
- handlingFeeVat: (integer)
Handling fee VAT
- noticeTime: (integer)
Notice time of payment of a sales order
- description: (string)
Description of a sales order
- contract: (union of integer or nil)
Id of a related contract
- opportunity: (union of string or nil)
Id of a related opportunity
- id: (integer)
Id of a sales order
- accountName: (union of string or nil)
Name of a cutomer's account
- contact: (integer)
Contact person of a customer's account
- shippingAccount: (union of integer or nil)
Id of a shipping account
- supplierContact: (integer)
Name of a supplier contact person
Example:
{
"request": null,
"shippingAccount": null,
"handlingFee": 40,
"handlingFeeVat": 24,
"project": 1046,
"description": "<p>Testing<\/p>",
"delayInterest": 8,
"operationalId": 1000,
"type": 10,
"billingAccount": 353,
"ourReference": null,
"responsible": 356,
"id": 1541,
"invoiceItemSubtotaling": 0,
"noticeTime": 0,
"quoteDate": "2022-01-07T00:00:00.000+0200",
"quoteUntil": "2022-08-07T00:00:00.000+0300",
"yourReference": "",
"languageAndCurrency": "planmill_en_eur.xsl",
"contract": null,
"opportunity": null,
"reverseCharge": null,
"name": "Test sales order 2",
"comment": "Test",
"orderDate": "2022-01-07T00:00:00.000+0200",
"supplierContact": 50,
"termsOfPayment": 14,
"status": 40,
"contractDPS": null
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /salesorders/{sales_order_id}
Update an existing resource salesorder to PlanMill. See salesorders/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- sales_order_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: object
Properties- name: (string)
Name of a sales order
- orderDate: (union of string or nil)
Ordered date of a sales order
- status: (integer)
Status of a sales order
- termsOfPayment: (union of number or nil)
Terms of payment
- delayInterest: (union of number or nil)
Interest on delay of payment
- responsible: (union of integer or nil)
Sales executive person's id of a sales order
- operationalId: (union of integer or string)
Operational id of a sales order
- quoteDate: (union of datetime or nil)
Start date of a quote
- quoteUntil: (union of datetime or nil)
Finish date of a quote
- billingAccount: (union of integer or nil)
Billing account id of a customer's account
- contractDPS: (union of integer or nil)
Contract DPS field for Hansel agreements
- yourReference: (union of string or nil)
Reference of a customer
- ourReference: (union of string or nil)
Reference of a supplier
- type: (integer)
Type of a sales order
- comment: (string)
Comment of a sales order
- project: (union of integer or nil)
Id of a related project
- languageAndCurrency: (string)
Language snd currency, is name of the corresponding xsl file f.e. planmill_en_eur.xsl
- request: (union of integer or nil)
Id of a related request
- reverseCharge: (union of integer or nil)
Reverse charge
- invoiceItemSubtotaling: (union of integer or nil)
Contact person of a customer's account
- handlingFee: (integer)
Handling fee
- handlingFeeVat: (integer)
Handling fee VAT
- noticeTime: (integer)
Notice time of payment of a sales order
- description: (string)
Description of a sales order
- contract: (union of integer or nil)
Id of a related contract
- opportunity: (union of string or nil)
Id of a related opportunity
- contractName: (union of string or nil)
Name of a contract
- projectName: (union of string or nil)
Name of a project related to a sales order
- VAT: (union of string or integer or nil)
VAT reg. no. of a cutomer's account
- supplier: (union of integer or nil)
Id of a supplier's account
- CustomerPerson.Name: (union of string or integer)
- supplierContact: (string)
Name of a supplier contact person
Example:
{
"name": "PlanMill PSA Cloud Service",
"supplierContact": "356",
"quoteDate": "2022-01-07T00:00:00.000+0200",
"quoteUntil": "2022-08-07T00:00:00.000+0200",
"contact": "356",
"orderDate": "2022-01-07T00:00:00.000+0200",
"languageAndCurrency": "planmill_en_eur.xsl",
"CustomerPerson.Name":51,
"status": 40,
"termsOfPayment": 14,
"delayInterest": 8,
"responsible": 356,
"operationalId": 1050,
"billingAccount": 353,
"accountName": "Your organisation legal trading name (update)",
"supplierName": "PlanMill Oy",
"responsibleName": "User (update), First",
"projectName": "Administrative duties (2)",
"contractName": null,
"VAT": "",
"totalExcludeVAT": null,
"supplier": 51,
"invoiceAppendix": -1,
"created": "2022-01-07T13:35:12.690+0200",
"shippingAccountName": null,
"shippingAccount": null,
"ourReference": null,
"type": 10,
"comment": "Testing",
"project": null,
"request": null,
"reverseCharge": null,
"invoiceItemSubtotaling": 0,
"handlingFee": 0,
"handlingFeeVat": 0,
"noticeTime": 0,
"description": "Test",
"contractDPS": null
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /salesorders/{sales_order_id}
Remove a salesorder from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- sales_order_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available attachments in PlanMill. This is a read-only collection.
Get a list of attachments
get /salesorders/{sales_order_id}/attachments
Get a list of attachments
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- sales_order_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
[
{
"size": 8497,
"createdBy": 50,
"created": "2022-01-13T13:05:10.837+0200",
"name": "attached_file_test.txt",
"modified": "2022-01-13T13:18:25.353+0200",
"id": 1543
},
{
"size": 146169,
"createdBy": 50,
"created": "2022-01-13T13:18:25.353+0200",
"name": "attached_file.txt",
"modified": "2022-01-13T13:18:25.353+0200",
"id": 1545
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
attachment_id is returned by /tempfiles endpoint on file upload.
View details of single attachment.
put /salesorders/{sales_order_id}/attachments/{attachment_id}
attachment_id is returned by /tempfiles endpoint on file upload.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- sales_order_id: required(string)
- attachment_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
get /salesorders/{sales_order_id}/attachments/{attachment_id}
View details of single attachment.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- sales_order_id: required(string)
- attachment_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
Contents of file
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for the updatable fields of the sales orders
View details of a single meta.
get /salesorders/{sales_order_id}/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- sales_order_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"request": {
"type": "string",
"caption": "",
"format": "int",
"description": "",
"values": null
},
"shippingAccount": {
"type": "string",
"caption": "",
"format": "int",
"description": "",
"values": null
},
"handlingFee": {
"type": "string",
"value": "0,00",
"caption": "Handling fee",
"format": "double",
"description": "",
"values": null
},
"handlingFeeVat": {
"type": "string",
"caption": "VAT",
"values": {
"8,875 %": "8.875",
"10,25 %": "10.25",
"9%": "9.0",
"17,5 %": "17.5",
"24 %": "24.0",
"23 %": "23.0",
"22 %": "22.0",
"7,8 %": "7.8",
"21 %": "21.0",
"20 %": "20.0",
"6,25 %": "6.25",
"7,75 %": "7.75",
"9,25 %": "9.25",
"7,5 %": "7.5",
"25 %": "25.0",
"8,9 %": "8.9",
"12%": "12.0",
"8,5 %": "8.5",
"13 %": "13.0",
"0.0": "0 %",
"10 %": "10.0",
"5 %": "5.0",
"19 %": "19.0",
"6 %": "6.0",
"18 %": "18.0",
"7 %": "7.0",
"17 %": "17.0",
"16 %": "16.0",
"8 %": "8.0",
"6,625 %": "6.625",
"15 %": "15.0",
"9,5 %": "9.5",
"14 %": "14.0"
},
"format": "double",
"description": "",
"enumeration": "Enumeration values.Finance control.Invoice position summary.Invoices.VAT"
},
"project": {
"type": "string",
"value": "-1",
"caption": "",
"format": "int",
"description": "",
"values": null
},
"description": {
"type": "string",
"caption": "",
"format": "string",
"description": "",
"values": null
},
"delayInterest": {
"type": "string",
"caption": "Delay interest",
"description": "",
"enumeration": "Enumeration values.Finance control.Invoice position summary.Invoices.Delay interest",
"values": {
"5,0 %": "5.0",
"6,5 %": "6.5",
"11,5 %": "11.5",
"4,0 %": "4.0",
"11,0 %": "11.0",
"2,5 %": "2.5",
"12,0 %": "12.0",
"7,0 %": "7.0",
"7,5 %": "7.5",
"3,0 %": "3.0",
"3,5 %": "3.5",
"19,0 %": "19.0",
"8,0 %": "8.0",
"-": "0.0",
"2,0 %": "2.0",
"8,5 %": "8.5",
"6,0 %": "6.0",
"4,5 %": "4.5",
"9,0 %": "9.0",
"1,5 %": "1.5",
"10,5 %": "10.5",
"5,5 %": "5.5",
"1,0 %": "1.0",
"10,0 %": "10.0",
"9,5 %": "9.5"
}
},
"operationalId": {
"type": "string",
"description": "Will be automatically generated",
"caption": "Order\/Quote No.",
"maxlength": "50",
"values": null
},
"type": {
"type": "string",
"value": "10",
"caption": "Type",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Sales management.Sales orders.Type",
"values": {
"Sales order": "10"
}
},
"billingAccount": {
"type": "string",
"caption": "",
"format": "int",
"description": "",
"values": null
},
"ourReference": {
"type": "string",
"caption": "Our reference",
"description": "",
"maxlength": "255",
"values": null
},
"responsible": {
"type": "string",
"caption": "Salesperson",
"values": {
"356": "User (update), First",
"User (update), First": 356
},
"format": "int",
"description": ""
},
"contact": {
"type": "string",
"caption": "",
"format": "int",
"description": "",
"values": null
},
"id": {
"type": "string",
"caption": "",
"format": "int",
"description": "",
"values": null
},
"invoiceItemSubtotaling": {
"type": "string",
"caption": "Invoice item subtotalling",
"description": "",
"enumeration": "Enumeration values.Sales management.Sales orders.Show sub-totals",
"values": {
"No task subtotals": "0",
"Include VAT - no task subtotals": "3",
"Project total by VAT": "2",
"Include VAT - show task subtotals": "4",
"Default": "-1",
"Show task subtotals": "1",
"Hide zero value rows": "6",
"Hide all item prices and subtotals": "5"
}
},
"noticeTime": {
"type": "string",
"value": "8",
"caption": "Notice time",
"description": "",
"enumeration": "Enumeration values.Finance control.Invoice position summary.Invoices.Notice time",
"values": {
"15 days": "15",
"-": "0",
"8 days": "8"
}
},
"quoteDate": {
"type": "string",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"caption": "Quote date",
"format": "string",
"description": "",
"values": null
},
"quoteUntil": {
"type": "string",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"caption": "Valid until",
"format": "string",
"description": "",
"values": null
},
"yourReference": {
"type": "string",
"description": "Maximum length is 35 characters due to Finvoice standard limit",
"caption": "Your reference",
"maxlength": "35",
"values": null
},
"languageAndCurrency": {
"type": "string",
"description": "Additional currencies must be added by Power user in Administration settings.",
"caption": "Language & currency",
"values": {
"": "-",
"Swedish (EUR)": "planmill_sv_eur.xsl",
"Dutch (EUR)": "planmill_nl_eur.xsl",
"English (EUR)": "planmill_en_eur.xsl",
"planmill_en_eur.xsl": "English (EUR)",
"planmill_nl_eur.xsl": "Dutch (EUR)",
"planmill_sv_eur.xsl": "Swedish (EUR)",
"planmill_et_eur.xsl": "Estonian (EUR)",
"German (EUR)": "planmill_de_eur.xsl",
"planmill_de_eur.xsl": "German (EUR)",
"planmill_fi_eur.xsl": "Finnish (EUR)",
"Estonian (EUR)": "planmill_et_eur.xsl",
"Finnish (EUR)": "planmill_fi_eur.xsl"
}
},
"contract": {
"type": "string",
"caption": "",
"format": "int",
"description": "",
"values": null
},
"opportunity": {
"type": "string",
"caption": "",
"format": "int",
"description": "",
"values": null
},
"reverseCharge": {
"type": "string",
"caption": "Reverse charge",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Sales management.Sales orders.Reverse charge",
"values": {
"0,0 % VAT Reverse charge": "10"
}
},
"name": {
"type": "string",
"caption": "Name",
"format": "string",
"description": "",
"maxlength": "150",
"values": null
},
"comment": {
"type": "string",
"format": "string",
"description": "",
"values": null
},
"orderDate": {
"type": "string",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"caption": "Order date",
"format": "string",
"description": "",
"values": null
},
"supplierContact": {
"type": "string",
"value": "[userid]",
"caption": "",
"format": "int",
"description": "",
"values": null
},
"termsOfPayment": {
"type": "string",
"value": "14",
"caption": "Terms of Payment",
"description": "",
"enumeration": "Enumeration values.Sales management.Accounts.Terms of Payment",
"values": {
"180 days net": "180",
"40 days net": "40",
"14 days net": "14",
"Immediately": "0",
"75 days net": "75",
"50 days net": "50",
"30 days net": "30",
"37 days net": "37",
"120 days net": "120",
"31 days net": "31",
"90 days net": "90",
"21 days net": "21",
"35 days net": "35",
"32 days net": "32",
"45 days net": "45",
"28 days net": "28",
"20 days net": "20",
"7 days net": "7",
"60 days net": "60",
"70 days net": "70"
}
},
"status": {
"type": "string",
"value": "10",
"caption": "Status",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Sales management.Sales orders.Status",
"values": {
"Sales order": "optgroup",
"Quoted": "20",
"Completed": "60",
"Ordered": "40",
"Cancelled": "70",
"Confirmed": "50",
"Draft quote": "10",
"Draft sales order": "30",
"-": "\/optgroup"
}
},
"contractDPS": {
"format": "text",
"caption": "Contract DPS"
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available items in PlanMill. See items/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Get a list of sales order items. See salesorder/{sales_order_id}/items/meta for list of filters, columns and formats. Sales order item values are returned in currency of the sales order, currency header does not apply.
Add a new sales order item to PlanMill or update existing (if id is given). See salesorders/{sales_order_id}/items/meta for list of columns and formats.
get /salesorders/{sales_order_id}/items
Get a list of sales order items. See salesorder/{sales_order_id}/items/meta for list of filters, columns and formats. Sales order item values are returned in currency of the sales order, currency header does not apply.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- sales_order_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (string)
Sorts the results using string that is a JSON attribute
- interval?: (string)
Interval type, e.g. start, finish, created, or modified. It is required in combination with intervalstart or intervalfinish
- intervalstart?: (string)
Start date of the interval in UTC format, intervalfinish required
Example:
2021-08-05T00:00:00.000+0200
- intervalfinish?: (string)
Finish date of the interval in UTC format, intervalstart required
Example:
2021-08-05T00:00:00.000+0200
HTTP status code 200
Body
Media type: application/json
Type: array of salesorderitem_get
Items: salesorderitem_get
- name: (string)
Name of a salesorder item
- product: (union of string or nil)
Sales order item product id
- operationalId: (union of integer or nil)
Sales order item operational id
- quantity: (union of integer or nil)
Sales order item quantity
- unit: (union of integer or nil)
Sales order item unit value
- sellingPrice: (union of number or nil)
Sales order item selling price
- selfCost: (union of integer or nil)
Sales order item self cost
- discount: (union of integer or nil)
Sales order item discount
- billingType: (integer)
Sales order item billing type
- orderStatus: (union of integer or nil)
Sales order item order status
- invoicingPeriod: (union of integer or nil)
Sales order item invoicing period type
- warrantyPeriod: (union of integer or nil)
Sales order item warranty period
- contractPeriod: (union of integer or nil)
Period of the corresponding contract
- VAT: (union of integer or nil)
Sales order item VAT value
- revenueType: (union of integer or nil)
Sales order item revenue type: 0= Own New License, 1=Own Maintenance License, 2=3rd Party New License, 3=3rd Party Maintenance License, 4=Services, 5=Hoisting,6=Travel Expenses, 7=Other, 8=Subscription, 9=3rd Party Subscription
- validFrom: (datetime)
Sales order item valid start date
- validUntil: (datetime)
Sales order item ending valid date
- contractItem: (union of integer or nil)
Sales order item contract item
- invoiceProcess: (union of integer or nil)
Sales order item invoice process
- costCenter: (union of integer or nil)
Sales order item cost center
- salesAccount: (union of integer or nil)
Sales account of sales order item
- task: (union of integer or nil)
Sales order item task id
- generatePriceType: (union of integer or nil)
Sales order item price type
- competence: (union of integer or nil)
Sales order item competence
- person: (union of integer or nil)
Sales order item person id
- description: (union of string or nil)
Sales order item description
- salesorder: (union of integer or nil)
Sales order that the sales order item belongs to
- createTask: (union of integer or nil)
Create a corresponding task, for GET always 0
- id: (integer)
Unique identificator of a salesorder item
Example:
[
{
"invoiceProcess": 3,
"generatePriceType": 0,
"VAT": 24,
"discount": 10,
"orderStatus": null,
"validFrom": "2015-09-09T00:00:00.000+0300",
"salesorder": 4229,
"competence": 4263,
"sellingPrice": 16.67,
"warrantyPeriod": 360,
"billingType": 1,
"id": 4230,
"revenuetype": 4,
"contractItem": 4265,
"product": 2394,
"salesAccount": 4,
"quantity": 1,
"invoicingPeriod": 3,
"costCenter": null,
"contractPeriod": 140,
"unit": 2,
"task": 4158,
"person": 2365,
"name": "PlanMill test product",
"validUntil": "2017-09-08T00:00:00.000+0300",
"selfCost": 0
},
{
"invoiceProcess": null,
"generatePriceType": 0,
"VAT": 20,
"discount": 0,
"orderStatus": null,
"validFrom": "2015-06-30T12:53:00.000+0300",
"salesorder": 2843784,
"competence": null,
"sellingPrice": 140,
"warrantyPeriod": null,
"billingType": 2,
"id": 2843787,
"revenuetype": 4,
"contractItem": null,
"product": 2843775,
"salesAccount": null,
"quantity": 3,
"invoicingPeriod": -13,
"costCenter": null,
"contractPeriod": null,
"unit": 6,
"task": null,
"person": null,
"name": "Test sales order item",
"validUntil": null,
"selfCost": 0
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /salesorders/{sales_order_id}/items
Add a new sales order item to PlanMill or update existing (if id is given). See salesorders/{sales_order_id}/items/meta for list of columns and formats.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- sales_order_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: object
Properties- name: (string)
Name of a salesorder item
- product: (union of string or nil)
Sales order item product id
- operationalId: (union of integer or nil)
Sales order item operational id
- quantity: (union of integer or nil)
Sales order item quantity
- unit: (union of integer or nil)
Sales order item unit value
- sellingPrice: (union of number or nil)
Sales order item selling price
- selfCost: (union of integer or nil)
Sales order item self cost
- discount: (union of integer or nil)
Sales order item discount
- billingType: (integer)
Sales order item billing type
- orderStatus: (union of integer or nil)
Sales order item order status
- invoicingPeriod: (union of integer or nil)
Sales order item invoicing period type
- warrantyPeriod: (union of integer or nil)
Sales order item warranty period
- contractPeriod: (union of integer or nil)
Period of the corresponding contract
- VAT: (union of integer or nil)
Sales order item VAT value
- revenueType: (union of integer or nil)
Sales order item revenue type: 0= Own New License, 1=Own Maintenance License, 2=3rd Party New License, 3=3rd Party Maintenance License, 4=Services, 5=Hoisting,6=Travel Expenses, 7=Other, 8=Subscription, 9=3rd Party Subscription
- validFrom: (datetime)
Sales order item valid start date
- validUntil: (datetime)
Sales order item ending valid date
- contractItem: (union of integer or nil)
Sales order item contract item
- invoiceProcess: (union of integer or nil)
Sales order item invoice process
- costCenter: (union of integer or nil)
Sales order item cost center
- salesAccount: (union of integer or nil)
Sales account of sales order item
- task: (union of integer or nil)
Sales order item task id
- generatePriceType: (union of integer or nil)
Sales order item price type
- competence: (union of integer or nil)
Sales order item competence
- person: (union of integer or nil)
Sales order item person id
- description: (union of string or nil)
Sales order item description
- salesorder: (union of integer or nil)
Sales order that the sales order item belongs to
- createTask: (union of integer or nil)
Create a corresponding task, for GET always 0
Example:
{
"invoiceProcess": 3,
"generatePriceType": 0,
"VAT": 24,
"revenueType": 4,
"discount": 10,
"orderStatus": null,
"description": "<p>test description</p>",
"validFrom": "2015-09-09T00:00:00.000+0300",
"operationalId": "",
"salesorder": 4229,
"competence": 4263,
"sellingPrice": 16.67,
"warrantyPeriod": 360,
"billingType": 1,
"contractItem": 4265,
"product": 2394,
"salesAccount": 4,
"quantity": 1,
"invoicingPeriod": 3,
"costCenter": null,
"contractPeriod": 140,
"unit": 2,
"task": 4158,
"person": 2365,
"name": "Sales order item 1",
"validUntil": "2017-09-08T00:00:00.000+0300",
"selfCost": 0
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single item in PlanMill.
View details of single item of single sales order item.
Update an existing resource single item of single sales order to PlanMill.
Remove a item from PlanMill.
get /salesorders/{sales_order_id}/items/{sales_order_item_id}
View details of single item of single sales order item.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- sales_order_id: required(string)
- sales_order_item_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- name: (string)
Name of a salesorder item
- product: (union of string or nil)
Sales order item product id
- operationalId: (union of integer or nil)
Sales order item operational id
- quantity: (union of integer or nil)
Sales order item quantity
- unit: (union of integer or nil)
Sales order item unit value
- sellingPrice: (union of number or nil)
Sales order item selling price
- selfCost: (union of integer or nil)
Sales order item self cost
- discount: (union of integer or nil)
Sales order item discount
- billingType: (integer)
Sales order item billing type
- orderStatus: (union of integer or nil)
Sales order item order status
- invoicingPeriod: (union of integer or nil)
Sales order item invoicing period type
- warrantyPeriod: (union of integer or nil)
Sales order item warranty period
- contractPeriod: (union of integer or nil)
Period of the corresponding contract
- VAT: (union of integer or nil)
Sales order item VAT value
- revenueType: (union of integer or nil)
Sales order item revenue type: 0= Own New License, 1=Own Maintenance License, 2=3rd Party New License, 3=3rd Party Maintenance License, 4=Services, 5=Hoisting,6=Travel Expenses, 7=Other, 8=Subscription, 9=3rd Party Subscription
- validFrom: (datetime)
Sales order item valid start date
- validUntil: (datetime)
Sales order item ending valid date
- contractItem: (union of integer or nil)
Sales order item contract item
- invoiceProcess: (union of integer or nil)
Sales order item invoice process
- costCenter: (union of integer or nil)
Sales order item cost center
- salesAccount: (union of integer or nil)
Sales account of sales order item
- task: (union of integer or nil)
Sales order item task id
- generatePriceType: (union of integer or nil)
Sales order item price type
- competence: (union of integer or nil)
Sales order item competence
- person: (union of integer or nil)
Sales order item person id
- description: (union of string or nil)
Sales order item description
- salesorder: (union of integer or nil)
Sales order that the sales order item belongs to
- createTask: (union of integer or nil)
Create a corresponding task, for GET always 0
- volumePrice: (union of integer or nil)
Id of highest quantity volume price
- volumePriceLimit: (union of integer or nil)
Volume price active from which quantity., iff null, highest quantity price
- volumePriceCeiling: (union of integer or nil)
Price of highest quantity volume price
Example:
{
"id": 1627003,
"invoiceProcess": 3,
"generatePriceType": 0,
"VAT": 24,
"revenueType": 4,
"discount": 10,
"orderStatus": null,
"description": "<p>test description</p>",
"validFrom": "2015-09-09T00:00:00.000+0300",
"operationalId": "",
"salesorder": 4229,
"competence": 4263,
"sellingPrice": 16.67,
"warrantyPeriod": 360,
"billingType": 1,
"contractItem": 4265,
"product": 2394,
"salesAccount": 4,
"quantity": 1,
"invoicingPeriod": 3,
"costCenter": null,
"contractPeriod": 140,
"unit": 2,
"task": 4158,
"person": 2365,
"name": "Sales order item 1",
"validUntil": "2017-09-08T00:00:00.000+0300",
"selfCost": 0
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /salesorders/{sales_order_id}/items/{sales_order_item_id}
Update an existing resource single item of single sales order to PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- sales_order_id: required(string)
- sales_order_item_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: object
Properties- name: (string)
Name of a salesorder item
- product: (union of string or nil)
Sales order item product id
- operationalId: (union of integer or nil)
Sales order item operational id
- quantity: (union of integer or nil)
Sales order item quantity
- unit: (union of integer or nil)
Sales order item unit value
- sellingPrice: (union of number or nil)
Sales order item selling price
- selfCost: (union of integer or nil)
Sales order item self cost
- discount: (union of integer or nil)
Sales order item discount
- billingType: (integer)
Sales order item billing type
- orderStatus: (union of integer or nil)
Sales order item order status
- invoicingPeriod: (union of integer or nil)
Sales order item invoicing period type
- warrantyPeriod: (union of integer or nil)
Sales order item warranty period
- contractPeriod: (union of integer or nil)
Period of the corresponding contract
- VAT: (union of integer or nil)
Sales order item VAT value
- revenueType: (union of integer or nil)
Sales order item revenue type: 0= Own New License, 1=Own Maintenance License, 2=3rd Party New License, 3=3rd Party Maintenance License, 4=Services, 5=Hoisting,6=Travel Expenses, 7=Other, 8=Subscription, 9=3rd Party Subscription
- validFrom: (datetime)
Sales order item valid start date
- validUntil: (datetime)
Sales order item ending valid date
- contractItem: (union of integer or nil)
Sales order item contract item
- invoiceProcess: (union of integer or nil)
Sales order item invoice process
- costCenter: (union of integer or nil)
Sales order item cost center
- salesAccount: (union of integer or nil)
Sales account of sales order item
- task: (union of integer or nil)
Sales order item task id
- generatePriceType: (union of integer or nil)
Sales order item price type
- competence: (union of integer or nil)
Sales order item competence
- person: (union of integer or nil)
Sales order item person id
- description: (union of string or nil)
Sales order item description
- salesorder: (union of integer or nil)
Sales order that the sales order item belongs to
- createTask: (union of integer or nil)
Create a corresponding task, for GET always 0
Example:
{
"invoiceProcess": 3,
"generatePriceType": 0,
"VAT": 24,
"revenueType": 4,
"discount": 10,
"orderStatus": null,
"description": "<p>test description</p>",
"validFrom": "2015-09-09T00:00:00.000+0300",
"operationalId": "",
"salesorder": 4229,
"competence": 4263,
"sellingPrice": 16.67,
"warrantyPeriod": 360,
"billingType": 1,
"contractItem": 4265,
"product": 2394,
"salesAccount": 4,
"quantity": 1,
"invoicingPeriod": 3,
"costCenter": null,
"contractPeriod": 140,
"unit": 2,
"task": 4158,
"person": 2365,
"name": "Sales order item 1",
"validUntil": "2017-09-08T00:00:00.000+0300",
"selfCost": 0
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /salesorders/{sales_order_id}/items/{sales_order_item_id}
Remove a item from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- sales_order_id: required(string)
- sales_order_item_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single costcentersplitting in PlanMill. This is a read-only item.
View details of a single costcentersplitting.
get /salesorders/items/costcentersplittings
View details of a single costcentersplitting.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: array of costcentersplitting
Items: costcentersplitting
- id: required(integer)
Unique identifier of a cost center splitting
- salesOrderItemId: required(integer)
Sales order item of a cost center splitting
- costCenterId: required(integer)
Cost center id of a cost center splitting
- percentage: required(number)
Share of the cost center splitting (sum of shares over sales order item is 100)
Example:
[
{
"id": 62902,
"costCenterId": 3100,
"salesOrderItemId": 61988,
"percentage": 40.5
},
{
"id": 61903,
"costCenterId": 4100,
"salesOrderItemId": 61988,
"percentage": 59.5
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single volumeprice in PlanMill. This is a read-only item.
View details of a single volumeprice.
get /salesorders/items/volumeprices
View details of a single volumeprice.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: array of volumeprice
Items: volumeprice
- id: required(integer)
Unique identifier of a volume price.
- salesOrderItemId: required(integer)
Sales order item of a volume price.
- limit: (union of integer or nil)
Upper volume limit of the application of the price
- price: required(number)
Price in the range defined by the limit.
- ceiling: (union of integer or nil)
1 if this is the price of the highest volume, 0 otherwise.
Example:
[
{
"id": 62902,
"salesOrderItemId": 61988,
"ceiling": 0,
"limit": 5,
"price": 3
},
{
"id": 62903,
"salesOrderItemId": 61988,
"ceiling": 1,
"price": 2.5
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/tasks
Collection of available tasks in PlanMill. See tasks/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Get a list of tasks. See tasks/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Add a new task to PlanMill. See tasks/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /tasks
Get a list of tasks. See tasks/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- project: required(integer)
Unique identifier of the project of the task.
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (string)
Sorts the results using string that is a JSON attribute
HTTP status code 200
Body
Media type: application/json
Type: array of task_get
Items: task_get
- actualStart: (union of datetime or nil)
Actual start of the task.
- actualFinish: (union of string or nil)
Actual start of the task.
- name: required(string)
Name of the task. Has to be unique per project.
- type: required(union of integer or nil)
100 = task (default), 101 = milestone, 200 = imported booking.
- start: (union of datetime or nil)
Start of the task. If not defined, is not set to January 1970.
- finish: (union of datetime or nil)
Finish of the task. If not defined, is not set to January 1970.
- dutyType: (union of integer or nil)
Duty type of the task.
- billableStatus: (union of integer or nil)
Billable status of the task.
- status: (union of integer or nil)
Status of the task.
- parent: required(integer)
Parent of the task. May be a task or project Id.
- predecessorTask: (union of integer or nil)
Previous task that should be finished first.
- targetEffort: (union of integer or nil)
Target effort of the task.
- unitPrice: (union of number or nil)
Price of the unit of the task.
- competence: (union of integer or nil)
Competence level of the task.
- wbs: (union of string or nil)
Work breakdown structure of the task.
- priceType: (union of integer or nil)
Price type of the task.
- description: (union of string or nil)
Description of the task
- created: (datetime)
Timestamp of the task creation.
- modified: (union of datetime or nil)
When task was modified last time.
- plannedEffort: (union of number or nil)
Planned effort of the task.
- actualEffort: (union of number or nil)
Actual effort of the task.
- remainingEffort: (union of number or nil)
Sum of the effort of the assignments.
- totalEffort: (union of number or nil)
Actual + remaining effort of the task.
- workCompleteness: (union of number or nil)
Work completeness of the task.
- duration: (union of integer or nil)
Duration of the task.
- totalRemainingEffort: (union of number or nil)
Total effort - actual effort of the task.
- finishOld: (union of datetime or nil)
Old finish of the task. Currently unused legacy field.
- originalFinish: (union of datetime or nil)
Original finish of the task. Currently unused legacy field.
- originalStart: (union of datetime or nil)
Original start of the task. Currently unused legacy field.
- tempFinish: (union of datetime or nil)
Temporary finish of the task. Currently unused legacy field.
- id: required(integer)
Unique identificator of the task.
- attachments: required(integer)
Amount of attachments in task.
- performerIds: (union of string or nil)
List of unique identificators of the performers of the task.
- performers: (union of string or nil)
List of names of performers of the task.
- reported: (union of integer or nil)
Sum of all reported time in minutes.
Example:
[
{
"dutyType": 2030,
"parent": 2123,
"attachments": 0,
"targetEffort": 0,
"wbs": "",
"description": "",
"predecessorTask": null,
"type": 100,
"duration": 586800,
"actualEffort": 0,
"reported": 0,
"modified": "2021-01-21T10:52:43.740+0200",
"finish": "2025-12-31T16:30:00.000+0200",
"id": 233,
"workCompleteness": 0,
"unitPrice": null,
"performers": "Team: First team (update e.g. your company name)",
"plannedEffort": 0,
"created": "2009-01-07T12:33:06.000+0200",
"start": "2021-01-01T09:00:00.000+0200",
"remainingEffort": 0,
"totalEffort": 0,
"totalRemainingEffort": 0,
"billableStatus": 3,
"actualFinish": null,
"name": "Test Task 1",
"performerIds": "1041",
"actualStart": null,
"status": 20
},
{
"dutyType": 2110,
"parent": 213,
"attachments": 0,
"targetEffort": 0,
"wbs": "",
"description": "",
"predecessorTask": null,
"type": 100,
"duration": 586800,
"actualEffort": 0,
"reported": 0,
"modified": "2021-01-21T11:45:37.167+0200",
"finish": "2025-12-31T16:30:00.000+0200",
"id": 229,
"workCompleteness": 0,
"unitPrice": null,
"performers": "Team: First team (update e.g. your company name)",
"plannedEffort": 0,
"created": "2009-01-07T12:33:06.000+0200",
"start": "2021-01-01T09:00:00.000+0200",
"remainingEffort": 0,
"totalEffort": 0,
"totalRemainingEffort": 0,
"billableStatus": 3,
"actualFinish": null,
"name": "Office work",
"performerIds": "1061",
"actualStart": null,
"status": 120
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /tasks
Add a new task to PlanMill. See tasks/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: object
Properties- actualStart: (union of datetime or nil)
Actual start of the task.
- actualFinish: (union of string or nil)
Actual start of the task.
- name: required(string)
Name of the task. Has to be unique per project.
- type: required(union of integer or nil)
100 = task (default), 101 = milestone, 200 = imported booking.
- start: (union of datetime or nil)
Start of the task. If not defined, is not set to January 1970.
- finish: (union of datetime or nil)
Finish of the task. If not defined, is not set to January 1970.
- dutyType: (union of integer or nil)
Duty type of the task.
- billableStatus: (union of integer or nil)
Billable status of the task.
- status: (union of integer or nil)
Status of the task.
- parent: required(integer)
Parent of the task. May be a task or project Id.
- predecessorTask: (union of integer or nil)
Previous task that should be finished first.
- targetEffort: (union of integer or nil)
Target effort of the task.
- unitPrice: (union of number or nil)
Price of the unit of the task.
- competence: (union of integer or nil)
Competence level of the task.
- wbs: (union of string or nil)
Work breakdown structure of the task.
- priceType: (union of integer or nil)
Price type of the task.
- description: (union of string or nil)
Description of the task
- created: (datetime)
Timestamp of the task creation.
- modified: (union of datetime or nil)
When task was modified last time.
- plannedEffort: (union of number or nil)
Planned effort of the task.
- actualEffort: (union of number or nil)
Actual effort of the task.
- remainingEffort: (union of number or nil)
Sum of the effort of the assignments.
- totalEffort: (union of number or nil)
Actual + remaining effort of the task.
- workCompleteness: (union of number or nil)
Work completeness of the task.
- duration: (union of integer or nil)
Duration of the task.
- totalRemainingEffort: (union of number or nil)
Total effort - actual effort of the task.
- finishOld: (union of datetime or nil)
Old finish of the task. Currently unused legacy field.
- originalFinish: (union of datetime or nil)
Original finish of the task. Currently unused legacy field.
- originalStart: (union of datetime or nil)
Original start of the task. Currently unused legacy field.
- tempFinish: (union of datetime or nil)
Temporary finish of the task. Currently unused legacy field.
- project: required(integer)
project of the task.
Example:
{
"unitPrice": 10,
"dutyType": 2040,
"parent": 1046,
"targetEffort": 120,
"start": "2021-12-17T09:00:00.000+0200",
"priceType": null,
"project": 1046,
"wbs": "",
"description": "<p>Test description</p>",
"predecessorTask": null,
"type": 100,
"billableStatus": 1,
"duration":10800,
"actualFinish":null,
"name": "Test task",
"finish": "2022-01-19T16:30:00.000+0200",
"actualStart":null,
"workCompleteness":0,
"status": -1
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for tasks. Includes resource's fields names and type and related filters.
View details of a single meta.
get /tasks/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"filters": [
{
"type": "string",
"name": "searchkey",
"caption": ""
},
{
"type": "string",
"name": "viewby",
"value": "-1",
"caption": "View by",
"values": {
"-1": "All",
"150": "All not completed milestones",
"140": "All not completed requests",
"130": "All not completed tasks",
"120": "All not completed tasks & requests",
"110": "All completed requests",
"100": "All completed tasks & requests",
"6": "All tasks in progress - late",
"50": "All recently completed tasks - last month",
"40": "All recently completed tasks - this month",
"30": "All recently created tasks - last month",
"20": "All recently created tasks - this month",
"10": "My tasks"
}
},
{
"type": "interval",
"name": "interval",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"values": {
"Task.Modified": "Modified",
"Task.Start": "Start",
"Task.Created": "Created",
"Task.Finish": "Finish"
}
},
{
"type": "multivalue",
"name": "CreatedPerson.Id",
"value": "-1",
"caption": "Created by",
"values": {
"0": "System,",
"-1": "All",
"50": "PlanMill, Maintenance-user"
}
},
{
"type": "string",
"name": "viewby2",
"value": "-1",
"caption": "Type",
"values": {
"25": "Tasks & milestones",
"-1": "All",
"30": "Requests",
"20": "Milestones",
"10": "Tasks"
}
},
{
"type": "multivalue",
"name": "Task.Status",
"value": "-1",
"caption": "Status",
"values": {
"-1": "All",
"-99991": "Open (1,2,3)",
"-99992": "Open (1,2,3)",
"20": "2. Assigned"
}
},
{
"type": "multivalue",
"name": "billableStatus",
"value": "-1",
"caption": "Billing type",
"values": {
"1": "Fixed",
"2": "Time based",
"3": "Non-billable",
"-1": "All"
}
},
{
"type": "multivalue",
"name": "Assignment.PersonId",
"value": "-1",
"caption": "Performer",
"values": {
"-1": "All",
"356": "User (update), First",
"-1041": "Team: First team (update e.g. your company name)"
}
},
{
"type": "multivalue",
"name": "Team.Id",
"value": "-1",
"caption": "Team",
"values": {
"-1": "All",
"1041": "First team (update e.g. your company name)"
}
},
{
"type": "multivalue",
"name": "parent",
"caption": "Parent",
"values": {
"-1": "All"
}
},
{
"type": "multivalue",
"name": "Baseline.Id",
"caption": "Baseline",
"values": {
"-1": "-"
}
}
],
"fields": {
"dutyType": {
"values": {
"1080": "Overtime leave",
"2070": "HRM",
"2090": "Management",
"optgroup": "Administrative duty",
"1000": "Annual holiday",
"1165": "Saved leave",
"1220": "Parental leave other parent (unpaid)",
"1120": "Layoff",
"2110": "Office work",
"1020": "Sick leave due to child",
"1240": "Pregnancy and parental leave (paid)",
"2010": "Marketing",
"1140": "Study leave (unpaid)",
"2130": "Emergency duty < 22.00",
"1040": "Paternity leave (pre 4.9.22, unpaid)",
"1260": "Parental leave other person (paid)",
"2030": "Development",
"1160": "Other annual leave",
"1060": "Other unpaid leave",
"2050": "IT",
"1180": "Paternity leave (pre 4.9.22, paid)",
"1210": "Pregnancy and parental leave (unpaid)",
"9999": "Other",
"1190": "Maternity leave (pre 4.9.22, unpaid)",
"1090": "Balance leave",
"2080": "HRD",
"\/optgroup": "-",
"1110": "Military refresher",
"2100": "Internal events",
"1010": "Sick leave",
"1230": "Parental leave other person (unpaid)",
"2000": "Education",
"1130": "Child care leave",
"2120": "Customer service",
"1030": "Maternity leave (pre 4.9.22, paid)",
"1250": "Parental leave other parent (paid)",
"2020": "Presales",
"2140": "On call",
"1050": "Military leave",
"2040": "R&D",
"1170": "Parental leave (pre 4.9.22, unpaid)",
"1070": "Other paid leave",
"2060": "Finance",
"1025": "Sick leave by medical certificate",
"1200": "Parental leave",
"2135": "Emergency duty 22.00-06.00",
"1100": "Bonus holiday"
},
"format": "Enumeration values.Task.Offduty",
"caption": "Duty type"
},
"parent": {
"format": "text",
"caption": null
},
"attachments": {
"format": "number",
"caption": "Attachments"
},
"targetEffort": {
"format": "projecteffortunit",
"caption": "Estimated"
},
"wbs": {
"format": "text",
"caption": "WBS"
},
"description": {
"format": "text",
"caption": "Description"
},
"predecessorTask": {
"format": "text",
"caption": "Depends on (Finish to Start)"
},
"type": {
"values": {
"1": "Project",
"100": "Task",
"2": "Portfolio",
"101": "Milestone",
"5": "Portfolio",
"150": "Request"
},
"format": "Enumeration values.Task.Type",
"caption": "Type"
},
"duration": {
"format": "day",
"caption": "Duration"
},
"actualEffort": {
"format": "projecteffortunit",
"caption": "Accepted"
},
"reported": {
"format": "projecteffortunit",
"caption": "Reported"
},
"modified": {
"format": "mediumdate",
"caption": "Modified"
},
"finish": {
"format": "shortdate",
"caption": "Finish"
},
"id": {
"format": "text",
"caption": "Task.Id"
},
"workCompleteness": {
"format": "percent",
"caption": "Completeness"
},
"unitPrice": {
"format": "projectcurrency",
"caption": "Unit price"
},
"performers": {
"format": "text",
"caption": "Performer(s)"
},
"plannedEffort": {
"format": "projecteffortunit",
"caption": "Planned"
},
"created": {
"format": "mediumdate",
"caption": "Created"
},
"start": {
"format": "shortdate",
"caption": "Start"
},
"remainingEffort": {
"format": "projecteffortunit",
"caption": "Remain"
},
"totalEffort": {
"format": "projecteffortunit",
"caption": "Forecast"
},
"totalRemainingEffort": {
"format": "projecteffortunit",
"caption": "Total remain"
},
"billableStatus": {
"values": {
"1": "Fixed",
"2": "Time based",
"3": "Non-billable"
},
"format": "Enumeration values.Project.Billable status",
"caption": "Billing type"
},
"actualFinish": {
"format": "mediumdate",
"caption": "Actual finish"
},
"name": {
"format": "text",
"caption": "Task"
},
"performerIds": {
"format": "text",
"caption": null
},
"actualStart": {
"format": "mediumdate",
"caption": "Actual start"
},
"status": {
"values": {
"110": "Progressing",
"100": "On hold",
"160": "100% complete",
"40": "4. Completed",
"150": "75% complete",
"30": "3. In progress",
"140": "50% complete",
"20": "2. Assigned",
"130": "25% complete",
"10": "1. Not assigned",
"120": "Approved"
},
"format": "Enumeration values.Task.Status",
"caption": null
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single task in PlanMill.
View details of a single task. See tasks/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Update an existing resource task to PlanMill. See tasks/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Remove a task from PlanMill.
get /tasks/{task_id}
View details of a single task. See tasks/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- task_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- actualStart: (union of datetime or nil)
Actual start of the task.
- actualFinish: (union of string or nil)
Actual start of the task.
- name: required(string)
Name of the task. Has to be unique per project.
- type: required(union of integer or nil)
100 = task (default), 101 = milestone, 200 = imported booking.
- start: (union of datetime or nil)
Start of the task. If not defined, is not set to January 1970.
- finish: (union of datetime or nil)
Finish of the task. If not defined, is not set to January 1970.
- dutyType: (union of integer or nil)
Duty type of the task.
- billableStatus: (union of integer or nil)
Billable status of the task.
- status: (union of integer or nil)
Status of the task.
- parent: required(integer)
Parent of the task. May be a task or project Id.
- predecessorTask: (union of integer or nil)
Previous task that should be finished first.
- targetEffort: (union of integer or nil)
Target effort of the task.
- unitPrice: (union of number or nil)
Price of the unit of the task.
- competence: (union of integer or nil)
Competence level of the task.
- wbs: (union of string or nil)
Work breakdown structure of the task.
- priceType: (union of integer or nil)
Price type of the task.
- description: (union of string or nil)
Description of the task
- created: (datetime)
Timestamp of the task creation.
- modified: (union of datetime or nil)
When task was modified last time.
- plannedEffort: (union of number or nil)
Planned effort of the task.
- actualEffort: (union of number or nil)
Actual effort of the task.
- remainingEffort: (union of number or nil)
Sum of the effort of the assignments.
- totalEffort: (union of number or nil)
Actual + remaining effort of the task.
- workCompleteness: (union of number or nil)
Work completeness of the task.
- duration: (union of integer or nil)
Duration of the task.
- totalRemainingEffort: (union of number or nil)
Total effort - actual effort of the task.
- finishOld: (union of datetime or nil)
Old finish of the task. Currently unused legacy field.
- originalFinish: (union of datetime or nil)
Original finish of the task. Currently unused legacy field.
- originalStart: (union of datetime or nil)
Original start of the task. Currently unused legacy field.
- tempFinish: (union of datetime or nil)
Temporary finish of the task. Currently unused legacy field.
- id: required(integer)
Unique identificator of the task.
- project: required(integer)
project of the task.
Example:
Can not resolve task_get.sample
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /tasks/{task_id}
Update an existing resource task to PlanMill. See tasks/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- task_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: object
Properties- actualStart: (union of datetime or nil)
Actual start of the task.
- actualFinish: (union of string or nil)
Actual start of the task.
- name: required(string)
Name of the task. Has to be unique per project.
- type: required(union of integer or nil)
100 = task (default), 101 = milestone, 200 = imported booking.
- start: (union of datetime or nil)
Start of the task. If not defined, is not set to January 1970.
- finish: (union of datetime or nil)
Finish of the task. If not defined, is not set to January 1970.
- dutyType: (union of integer or nil)
Duty type of the task.
- billableStatus: (union of integer or nil)
Billable status of the task.
- status: (union of integer or nil)
Status of the task.
- parent: required(integer)
Parent of the task. May be a task or project Id.
- predecessorTask: (union of integer or nil)
Previous task that should be finished first.
- targetEffort: (union of integer or nil)
Target effort of the task.
- unitPrice: (union of number or nil)
Price of the unit of the task.
- competence: (union of integer or nil)
Competence level of the task.
- wbs: (union of string or nil)
Work breakdown structure of the task.
- priceType: (union of integer or nil)
Price type of the task.
- description: (union of string or nil)
Description of the task
- created: (datetime)
Timestamp of the task creation.
- modified: (union of datetime or nil)
When task was modified last time.
- plannedEffort: (union of number or nil)
Planned effort of the task.
- actualEffort: (union of number or nil)
Actual effort of the task.
- remainingEffort: (union of number or nil)
Sum of the effort of the assignments.
- totalEffort: (union of number or nil)
Actual + remaining effort of the task.
- workCompleteness: (union of number or nil)
Work completeness of the task.
- duration: (union of integer or nil)
Duration of the task.
- totalRemainingEffort: (union of number or nil)
Total effort - actual effort of the task.
- finishOld: (union of datetime or nil)
Old finish of the task. Currently unused legacy field.
- originalFinish: (union of datetime or nil)
Original finish of the task. Currently unused legacy field.
- originalStart: (union of datetime or nil)
Original start of the task. Currently unused legacy field.
- tempFinish: (union of datetime or nil)
Temporary finish of the task. Currently unused legacy field.
- project: required(integer)
project of the task.
Example:
{
"unitPrice": 10,
"dutyType": 2040,
"parent": 1046,
"targetEffort": 120,
"start": "2021-12-17T09:00:00.000+0200",
"priceType": null,
"project": 1046,
"wbs": "",
"description": "<p>Test description</p>",
"predecessorTask": null,
"type": 100,
"billableStatus": 1,
"duration":10800,
"actualFinish":null,
"name": "Test task",
"finish": "2022-01-19T16:30:00.000+0200",
"actualStart":null,
"workCompleteness":0,
"status": -1
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /tasks/{task_id}
Remove a task from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- task_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for the updatable fields of the task
View details of a single meta.
get /tasks/{task_id}/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- task_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"unitPrice": {
"type": "string",
"caption": "Task unit price",
"format": "double",
"values": null
},
"dutyType": {
"type": "string",
"description": "NOTE: Consult PlanMill-support before selecting Absence-duty types",
"caption": "Duty type",
"values": {
"HRM": "2070",
"Finance": "2060",
"Office work": "2110",
"Internal events": "2100",
"Presales": "2020",
"Management": "2090",
"Customer service": "2120",
"IT": "2050",
"On call": "2140",
"Marketing": "2010",
"0": "-",
"R&D": "2040",
"Emergency duty 22.00-06.00": "2135",
"Education": "2000",
"Development": "2030",
"HRD": "2080",
"Emergency duty < 22.00": "2130",
"Other": "9999"
},
"format": "int",
"enumeration": "Enumeration values.Task.DutyType"
},
"parent": {
"type": "string",
"caption": "Parent",
"values": {
"1578": "-"
},
"format": "int"
},
"targetEffort": {
"type": "string",
"caption": "Estimated work",
"format": "double",
"values": null
},
"start": {
"type": "string",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"caption": "Start",
"format": "string",
"values": null
},
"tempFinish": {
"type": "string",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"caption": "",
"values": null
},
"originalFinish": {
"type": "string",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"caption": "Finish",
"format": "string",
"values": null
},
"priceType": {
"type": "string",
"caption": "Price type",
"format": "int",
"description": "",
"values": null
},
"project": {
"type": "string",
"value": "1578",
"caption": "",
"format": "int",
"values": null
},
"wbs": {
"type": "string",
"caption": "WBS",
"format": "string",
"maxlength": "50",
"values": null
},
"description": {
"type": "string",
"caption": "",
"format": "string",
"values": null
},
"finishOld": {
"type": "string",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"caption": "",
"values": null
},
"predecessorTask": {
"type": "string",
"caption": "Depends on (Finish to Start)",
"values": {
"-1": "-"
},
"format": "int"
},
"type": {
"type": "string",
"value": "100",
"caption": "Type",
"format": "int",
"enumeration": "Enumeration values.Task.Type in form",
"values": {
"Task": "100",
"Milestone": "101"
}
},
"billableStatus": {
"type": "string",
"caption": "Billing type",
"format": "int",
"enumeration": "Enumeration values.Project.Billable status short",
"values": {
"Non-billable": "3",
"Time based": "2",
"Fixed": "1"
}
},
"duration": {
"type": "string",
"value": "1",
"values": null
},
"actualFinish": {
"type": "string",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"caption": "Actual finish",
"format": "string",
"values": null
},
"originalStart": {
"type": "string",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"caption": "Start",
"format": "string",
"values": null
},
"name": {
"type": "string",
"caption": "Name",
"format": "string",
"maxlength": "255",
"values": null
},
"finish": {
"type": "string",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"caption": "Finish",
"format": "string",
"values": null
},
"id": {
"type": "string",
"caption": "",
"format": "int",
"values": null
},
"actualStart": {
"type": "string",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"caption": "Actual start",
"format": "string",
"values": null
},
"workCompleteness": {
"type": "string",
"values": null
},
"status": {
"type": "string",
"caption": "Status",
"format": "int",
"enumeration": "Enumeration values.Task.Status in form",
"values": {
"Manually set status values": "optgroup",
"100% complete": "160",
"75% complete": "150",
"On hold": "100",
"50% complete": "140",
"Approved": "120",
"25% complete": "130",
"-": "\/optgroup",
"Progressing": "110"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available assignments in PlanMill. See assignments/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Get a list of assignments. See assignments/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Add a new assignment to PlanMill or update existing (if id is given). See assignments/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /tasks/{task_id}/assignments
Get a list of assignments. See assignments/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- task_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (string)
Sorts the results using string that is a JSON attribute
- interval?: (string)
Interval type, e.g. start, finish, created, or modified. It is required in combination with intervalstart or intervalfinish
- intervalstart?: (string)
Start date of the interval in UTC format, intervalfinish required
Example:
2021-08-05T00:00:00.000+0200
- intervalfinish?: (string)
Finish date of the interval in UTC format, intervalstart required
Example:
2021-08-05T00:00:00.000+0200
HTTP status code 200
Body
Media type: application/json
Type: assignment
Example:
[
{
"unitPrice": null,
"reportedEffort": 123,
"taskBillableStatus": 2,
"request": 7451,
"taskStart": "2015-08-13T09:58:00.000+0300",
"proposedDeadline": null,
"actualAmount": 0,
"personOrTeam": 7467,
"proposedEffortAmount": -600,
"proposedAmount": 0,
"remainingAmount": 600,
"totalAmount": 600,
"personOrTeamName": "Tester, First",
"task": 7468,
"declined": 0,
"taskName": "Test Task 1",
"comment": null,
"plannedAmount": 600,
"id": 7470,
"taskFinish": "2015-08-14T09:58:00.000+0300",
"taskStatus": "3. In progress",
"status": null
},
{
"unitPrice": null,
"reportedEffort": 0,
"taskBillableStatus": 3,
"request": 7451,
"taskStart": "2015-08-13T09:58:00.000+0300",
"proposedDeadline": null,
"actualAmount": 0,
"personOrTeam": 7447,
"proposedEffortAmount": null,
"proposedAmount": null,
"remainingAmount": 0,
"totalAmount": 0,
"personOrTeamName": "Tester, Second",
"task": 7468,
"declined": 0,
"taskName": "Test Task 2",
"comment": null,
"plannedAmount": 150,
"id": 7453,
"taskFinish": "2015-08-14T09:58:00.000+0300",
"taskStatus": "1. Received",
"status": null
},
{
"unitPrice": null,
"reportedEffort": 180,
"taskBillableStatus": 2,
"request": 7451,
"taskStart": "2015-08-13T09:58:00.000+0300",
"proposedDeadline": null,
"actualAmount": 0,
"personOrTeam": 7463,
"proposedEffortAmount": -240,
"proposedAmount": null,
"remainingAmount": 0,
"totalAmount": 0,
"personOrTeamName": "Tester, Third",
"task": 7468,
"declined": 0,
"taskName": "Test Task 3",
"comment": null,
"plannedAmount": 240,
"id": 7471,
"taskFinish": "2015-08-14T09:58:00.000+0300",
"taskStatus": "100% complete",
"status": null
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /tasks/{task_id}/assignments
Add a new assignment to PlanMill or update existing (if id is given). See assignments/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- task_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: assignment
Example:
{
"remainingAmount": 0,
"taskStart": "2015-08-13T09:58:00.000+0300",
"task": 7468,
"timereportsAmount": 120,
"personOrTeam": 7447,
"actualAmount": 0,
"totalReported": 120,
"project": 7449,
"plannedAmount": 240,
"taskFinish": "2015-08-14T09:58:00.000+0300"
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single meta in PlanMill. This is a read-only item.
View details of a single meta.
get /tasks/{task_id}/assignments/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- task_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"filters": [
{
"name": "searchkey",
"caption": ""
},
{
"name": "Person.Id",
"caption": "Performer",
"values": {
"All": "-1"
}
},
{
"name": "task",
"caption": "Task",
"values": {
"All": "-1"
}
},
{
"name": "taskStatus",
"caption": "Status",
"values": {
"All": "-1"
}
},
{
"name": "taskBillableStatus",
"caption": "Billing type",
"values": {
"All": "-1",
"Non-billable": "3",
"Time based": "2",
"Fixed": "1"
}
},
{
"name": "Baseline.Id",
"caption": "Baseline",
"values": {
"-": "-1"
}
},
{
"name": "status",
"caption": "Assignment status",
"values": {
"All": "-1",
"Declined": "30",
"Proposed": "10",
"Accepted": "20",
"Open": "-2"
}
},
{
"name": "interval",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"values": {
"Modified": "Assignment.Modified",
"Start": "taskStart",
"Finish": "taskFinish",
"Created": "Assignment.Created"
}
}
],
"fields": {
"unitPrice": {
"format": "projectcurrency",
"caption": "Unit price"
},
"reportedEffort": {
"format": "projecteffortunit",
"caption": "Reported"
},
"taskBillableStatus": {
"format": "Enumeration values.Project.Billable status",
"caption": "Billing type"
},
"request": {
"format": "text",
"caption": "Request.Id"
},
"taskStart": {
"format": "shortdate",
"caption": "Start"
},
"proposedDeadline": {
"format": "shortdate",
"caption": "Proposal deadline"
},
"actualAmount": {
"format": "projecteffortunit",
"caption": "Accepted"
},
"personOrTeam": {
"format": null,
"caption": null
},
"proposedEffortAmount": {
"format": "projecteffortunit",
"caption": "Proposed-Planned"
},
"proposedAmount": {
"format": "projecteffortunit",
"caption": "Proposed"
},
"remainingAmount": {
"format": "projecteffortunit",
"caption": "Remain"
},
"totalAmount": {
"format": "projecteffortunit",
"caption": "Forecast"
},
"personOrTeamName": {
"format": "text",
"caption": "_Performer"
},
"task": {
"format": "text",
"caption": "Task.Id"
},
"declined": {
"format": "projecteffortunit",
"caption": "Declined"
},
"taskName": {
"format": "text",
"caption": "_Task"
},
"comment": {
"format": null,
"caption": "Proposal hint"
},
"plannedAmount": {
"format": "projecteffortunit",
"caption": "Planned"
},
"id": {
"format": "text",
"caption": "Assignment.Id"
},
"taskFinish": {
"format": "shortdate",
"caption": "Finish"
},
"taskStatus": {
"format": "text",
"caption": "Status"
},
"status": {
"format": "Enumeration values.Assignment.Status",
"caption": "Assignment status"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single assignment in PlanMill.
View details of a single assignment. See assignments/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Update an existing resource assignment to PlanMill. See assignments/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Remove a assignment from PlanMill.
get /tasks/{task_id}/assignments/{assignment_id}
View details of a single assignment. See assignments/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- task_id: required(string)
- assignment_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: assignment
Example:
{
"remainingAmount": 0,
"taskStart": "2015-08-13T09:58:00.000+0300",
"task": 7468,
"timereportsAmount": 120,
"personOrTeam": 7447,
"actualAmount": 0,
"totalReported": 120,
"project": 7449,
"plannedAmount": 240,
"taskFinish": "2015-08-14T09:58:00.000+0300"
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /tasks/{task_id}/assignments/{assignment_id}
Update an existing resource assignment to PlanMill. See assignments/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- task_id: required(string)
- assignment_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: assignment
Example:
{
"remainingAmount": 0,
"taskStart": "2015-08-13T09:58:00.000+0300",
"task": 7468,
"timereportsAmount": 120,
"personOrTeam": 7447,
"actualAmount": 0,
"totalReported": 120,
"project": 7449,
"plannedAmount": 240,
"taskFinish": "2015-08-14T09:58:00.000+0300"
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /tasks/{task_id}/assignments/{assignment_id}
Remove a assignment from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- task_id: required(string)
- assignment_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single meta in PlanMill. This is a read-only item.
View details of a single meta.
get /tasks/{task_id}/assignments/{assignment_id}/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- task_id: required(string)
- assignment_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"taskStart": {
"caption": "",
"format": "shortdate",
"values": null
},
"proposedDeadline": {
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"caption": "Proposal deadline",
"format": "string",
"description": "",
"maxlength": "10",
"values": null
},
"personOrTeam": {
"caption": "Assigned to",
"values": {
"Team: Support": "2768",
"-": "",
"Poranen, Timo": "2853",
"Team: R & D Team": "4853"
},
"format": "int"
},
"actualAmount": {
"caption": "Accepted",
"format": "double",
"values": null
},
"totalReported": {
"caption": "AssignmentReported",
"format": "double",
"values": null
},
"project": {
"caption": "",
"format": "int",
"values": null
},
"proposedAmount": {
"caption": "Proposed",
"format": "double",
"values": null
},
"remainingAmount": {
"caption": "Remain",
"format": "double",
"values": null
},
"task": {
"caption": "Task",
"values": {
"test task, 01.02.2014 - 16.07.2015": "2863",
"-": ""
},
"format": "int"
},
"timereportsAmount": {
"caption": "Reported",
"format": "double",
"values": null
},
"comment": {
"caption": "Proposal hint",
"description": "",
"maxlength": "50",
"values": null
},
"plannedAmount": {
"caption": "Planned",
"format": "double",
"values": null
},
"taskFinish": {
"caption": "",
"values": null
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available attachments in PlanMill. This is a read-only collection.
Get a list of attachments
get /tasks/{task_id}/attachments
Get a list of attachments
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- task_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
[
{
"size": 8497,
"createdBy": 50,
"created": "2022-01-13T13:05:10.837+0200",
"name": "attached_file_test.txt",
"modified": "2022-01-13T13:18:25.353+0200",
"id": 1543
},
{
"size": 146169,
"createdBy": 50,
"created": "2022-01-13T13:18:25.353+0200",
"name": "attached_file.txt",
"modified": "2022-01-13T13:18:25.353+0200",
"id": 1545
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
attachment_id is returned by /tempfiles endpoint on file upload.
View details of single attachment.
put /tasks/{task_id}/attachments/{attachment_id}
attachment_id is returned by /tempfiles endpoint on file upload.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- task_id: required(string)
- attachment_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
get /tasks/{task_id}/attachments/{attachment_id}
View details of single attachment.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- task_id: required(string)
- attachment_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
Contents of file
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/teams
Collection of available teams in PlanMill. See teams/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Get a list of teams. See teams/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Add a new team to PlanMill or update existing (if id is given). See teams/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /teams
Get a list of teams. See teams/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- order: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort: (string)
Sorts the results using string that is a JSON attribute
- interval: (string)
Interval type, e.g. start, finish, created, or modified. It is required in combination with intervalstart or intervalfinish
- intervalstart: (string)
Start date of the interval in UTC format, intervalfinish required
Example:
2021-08-05T00:00:00.000+0200
- intervalfinish: (string)
Finish date of the interval in UTC format, intervalstart required
Example:
2021-08-05T00:00:00.000+0200
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
HTTP status code 200
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all team entities",
"oneOf": [
{
"type": "array",
"items": { "$ref": "#/definitions/teamArray" }
},
{
"$ref": "#/definitions/teamSingle"
}
],
"definitions": {
"teamArray": {
"type": "object",
"required": [ "name" ],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal id of a team"
},
"latestMember": {
"type": ["integer", "null"],
"description": "Id of latest member person of a team"
},
"manager": {
"type": ["integer", "null"],
"description": "Id of a manager person of a team"
},
"parentTeamName": {
"type": ["string", "null"],
"description": "Parent team name of a team"
},
"costCenter": {
"type": "integer",
"description": "Cost center of a team"
},
"created": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Creation date and time of a team"
},
"description": {
"type": ["string", "null"],
"description": "Description of a team"
},
"parentTeam": {
"type": ["integer", "null"],
"description": "Parent team id of a team"
},
"passive": {
"type": "integer",
"description": "Active state of a team; 0=Active, 1=Inactive"
},
"createdBy": {
"type": "integer",
"description": "Id of a creator person of a team"
},
"members": {
"type": "integer",
"description": "Number of members of a team"
},
"name": {
"type": "string",
"description": "Name of a team"
},
"childTeams": {
"type": "integer",
"description": "Number of child teams of a team"
},
"modified": {
"type": ["string", "null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Modification date and time of a team"
},
"modifiedBy": {
"type": ["integer", "null"],
"description": "Id of a modifier person of a team"
}
}
},
"teamSingle": {
"type": "object",
"required": [ "name" ],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal id of a team"
},
"owner": {
"type": "integer",
"description": "Id of a manager person of a team"
},
"goalPeriod": {
"type": "integer",
"description": "Period of a goal; 1=Week, 2=Month, 3=Year"
},
"secondaryCountry": {
"type": ["integer", "null"],
"description": "Id of a secondary country location of a team"
},
"parent": {
"type": ["integer", "null"],
"description": "Id of a parent team of a team"
},
"goalType": {
"type": "integer",
"description": "Type of a goal; 1=Hours, 2=Percent, 3=Revenue"
},
"goalValue": {
"type": "number",
"description": "Amount associated with a goal"
},
"secondaryAddress": {
"type": ["string", "null"],
"description": "Secondary address of a team"
},
"primaryState": {
"type": ["string", "null"],
"description": "Primary state of a team"
},
"primaryPostalCode": {
"type": "string",
"description": "Primary postal code of a team"
},
"costCenter": {
"type": "integer",
"description": "Cost center of a team"
},
"description": {
"type": "string",
"description": "Description about a team"
},
"secondaryState": {
"type": ["string", "null"],
"description": "Secondary state of a team"
},
"secondaryDepartment": {
"type": ["string", "null"],
"description": "Secondary department of a team"
},
"passive": {
"type": "integer",
"description": "Active state of a team; 0=Active, 1=Inactive"
},
"primaryCity": {
"type": "string",
"description": "Primary city of a team"
},
"secondaryPostalCode": {
"type": ["string", "null"],
"description": "Secondary postal code of a team"
},
"name": {
"type": "string",
"description": "Name of a team"
},
"primaryDepartment": {
"type": ["string", "null"],
"description": "Primary department of a team"
},
"secondaryCity": {
"type": ["string", "null"],
"description": "Secondary city of a team"
},
"primaryAddress": {
"type": "string",
"description": "Primary address of a team"
},
"primaryCountry": {
"type": "integer",
"description": "Primary country of a team"
}
}
}
}
}
Example:
[
{
"latestMember": null,
"manager": 2845523,
"parentTeamName": null,
"costCenter": 0,
"created": "2015-07-28T18:08:08.950+0300",
"description": "team for development",
"parentTeam": null,
"createdBy": 2845504,
"members": 0,
"name": "Support Team",
"childTeams": 1,
"modified": null,
"modifiedBy": null,
"id": 2845524
},
{
"latestMember": 2717546,
"manager": 222076,
"parentTeamName": "Support Team",
"costCenter": 3,
"created": "2005-04-11T14:04:23.897+0300",
"description": "Text of description",
"parentTeam": 498896,
"createdBy": 222076,
"members": 9,
"name": "R & D Team",
"childTeams": 1,
"modified": "2010-05-19T14:45:57.607+0300",
"modifiedBy": 222076,
"id": 480530
},
{
"latestMember": 2840388,
"manager": 26394,
"parentTeamName": "R & D Team",
"costCenter": 1,
"created": "2005-04-15T12:25:27.653+0300",
"description": "Finland & Switzerland",
"parentTeam": 480530,
"createdBy": 26394,
"members": 10,
"name": "Sales Team",
"childTeams": 0,
"modified": "2008-01-18T09:13:20.267+0200",
"modifiedBy": 26284,
"id": 481244
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /teams
Add a new team to PlanMill or update existing (if id is given). See teams/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all team entities",
"oneOf": [
{
"type": "array",
"items": { "$ref": "#/definitions/teamArray" }
},
{
"$ref": "#/definitions/teamSingle"
}
],
"definitions": {
"teamArray": {
"type": "object",
"required": [ "name" ],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal id of a team"
},
"latestMember": {
"type": ["integer", "null"],
"description": "Id of latest member person of a team"
},
"manager": {
"type": ["integer", "null"],
"description": "Id of a manager person of a team"
},
"parentTeamName": {
"type": ["string", "null"],
"description": "Parent team name of a team"
},
"costCenter": {
"type": "integer",
"description": "Cost center of a team"
},
"created": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Creation date and time of a team"
},
"description": {
"type": ["string", "null"],
"description": "Description of a team"
},
"parentTeam": {
"type": ["integer", "null"],
"description": "Parent team id of a team"
},
"passive": {
"type": "integer",
"description": "Active state of a team; 0=Active, 1=Inactive"
},
"createdBy": {
"type": "integer",
"description": "Id of a creator person of a team"
},
"members": {
"type": "integer",
"description": "Number of members of a team"
},
"name": {
"type": "string",
"description": "Name of a team"
},
"childTeams": {
"type": "integer",
"description": "Number of child teams of a team"
},
"modified": {
"type": ["string", "null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Modification date and time of a team"
},
"modifiedBy": {
"type": ["integer", "null"],
"description": "Id of a modifier person of a team"
}
}
},
"teamSingle": {
"type": "object",
"required": [ "name" ],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal id of a team"
},
"owner": {
"type": "integer",
"description": "Id of a manager person of a team"
},
"goalPeriod": {
"type": "integer",
"description": "Period of a goal; 1=Week, 2=Month, 3=Year"
},
"secondaryCountry": {
"type": ["integer", "null"],
"description": "Id of a secondary country location of a team"
},
"parent": {
"type": ["integer", "null"],
"description": "Id of a parent team of a team"
},
"goalType": {
"type": "integer",
"description": "Type of a goal; 1=Hours, 2=Percent, 3=Revenue"
},
"goalValue": {
"type": "number",
"description": "Amount associated with a goal"
},
"secondaryAddress": {
"type": ["string", "null"],
"description": "Secondary address of a team"
},
"primaryState": {
"type": ["string", "null"],
"description": "Primary state of a team"
},
"primaryPostalCode": {
"type": "string",
"description": "Primary postal code of a team"
},
"costCenter": {
"type": "integer",
"description": "Cost center of a team"
},
"description": {
"type": "string",
"description": "Description about a team"
},
"secondaryState": {
"type": ["string", "null"],
"description": "Secondary state of a team"
},
"secondaryDepartment": {
"type": ["string", "null"],
"description": "Secondary department of a team"
},
"passive": {
"type": "integer",
"description": "Active state of a team; 0=Active, 1=Inactive"
},
"primaryCity": {
"type": "string",
"description": "Primary city of a team"
},
"secondaryPostalCode": {
"type": ["string", "null"],
"description": "Secondary postal code of a team"
},
"name": {
"type": "string",
"description": "Name of a team"
},
"primaryDepartment": {
"type": ["string", "null"],
"description": "Primary department of a team"
},
"secondaryCity": {
"type": ["string", "null"],
"description": "Secondary city of a team"
},
"primaryAddress": {
"type": "string",
"description": "Primary address of a team"
},
"primaryCountry": {
"type": "integer",
"description": "Primary country of a team"
}
}
}
}
}
Example:
{
"owner": 2834513,
"goalPeriod": 3,
"secondaryCountry": 0,
"parent": 490066,
"goalType": 3,
"goalValue": 5000,
"secondaryAddress": "",
"primaryState": "",
"primaryPostalCode": "00500",
"costCenter": 1,
"description": "Test description",
"secondaryState": "",
"secondaryDepartment": "",
"passive": 0,
"primaryCity": "Helsinki",
"secondaryPostalCode": "",
"name": "Test team",
"primaryDepartment": "HR department",
"secondaryCity": "",
"id": 2845554,
"primaryAddress": "Hämeentie 19",
"primaryCountry": 73
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for teams. Includes resource's fields names and type and related filters
View details of a single meta.
get /teams/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"filters": [
{
"name": "searchkey",
"caption": ""
},
{
"name": "viewby",
"caption": "View by",
"values": {
"My recently modified teams - last 7 days": "9",
"All inactive teams": "1",
"My inactive teams": "6",
"All recently modified teams - last 7 days": "4",
"All active teams": "0",
"All teams": "2",
"My active teams": "5",
"My teams": "7",
"My recently created teams - last 7 days": "8",
"All recently created teams - last 7 days": "3"
}
},
{
"name": "Location.City",
"caption": "City",
"values": {
"All": "-1",
"Helsinki": "Helsinki"
}
},
{
"name": "Location.CountryId",
"caption": "Country",
"values": {
"All": "-1",
"Bhutan": "26",
"Finland": "73"
}
},
{
"name": "rowcount",
"caption": "Rows",
"values": {
"25": "25",
"50": "50",
"75": "75",
"100": "100",
"150": "150",
"250": "250"
}
}
],
"fields": {
"latestMember": {
"format": "text",
"caption": "LatestId"
},
"manager": {
"format": "text",
"caption": "Person.Id"
},
"parentTeamName": {
"format": "text",
"caption": "Parent team"
},
"costCenter": {
"format": "Enumeration values.Employee directory.Team.Cost center",
"caption": "Cost center"
},
"created": {
"format": "mediumdate",
"caption": "Created"
},
"description": {
"format": "text",
"caption": "Description"
},
"parentTeam": {
"format": "text",
"caption": "ParentTeam.Id"
},
"createdBy": {
"format": "text",
"caption": "Person1.Id"
},
"members": {
"format": "text",
"caption": "Members"
},
"name": {
"format": "text",
"caption": "_Team"
},
"childTeams": {
"format": "number",
"caption": "Child teams"
},
"modified": {
"format": "mediumdate",
"caption": "Modified"
},
"modifiedBy": {
"format": "text",
"caption": "Person2.Id"
},
"id": {
"format": "checkbox",
"caption": "_"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single team in PlanMill.
View details of a single team. See teams/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Update an existing resource team to PlanMill. See teams/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Remove a team from PlanMill.
get /teams/{team_id}
View details of a single team. See teams/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- team_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all team entities",
"oneOf": [
{
"type": "array",
"items": { "$ref": "#/definitions/teamArray" }
},
{
"$ref": "#/definitions/teamSingle"
}
],
"definitions": {
"teamArray": {
"type": "object",
"required": [ "name" ],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal id of a team"
},
"latestMember": {
"type": ["integer", "null"],
"description": "Id of latest member person of a team"
},
"manager": {
"type": ["integer", "null"],
"description": "Id of a manager person of a team"
},
"parentTeamName": {
"type": ["string", "null"],
"description": "Parent team name of a team"
},
"costCenter": {
"type": "integer",
"description": "Cost center of a team"
},
"created": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Creation date and time of a team"
},
"description": {
"type": ["string", "null"],
"description": "Description of a team"
},
"parentTeam": {
"type": ["integer", "null"],
"description": "Parent team id of a team"
},
"passive": {
"type": "integer",
"description": "Active state of a team; 0=Active, 1=Inactive"
},
"createdBy": {
"type": "integer",
"description": "Id of a creator person of a team"
},
"members": {
"type": "integer",
"description": "Number of members of a team"
},
"name": {
"type": "string",
"description": "Name of a team"
},
"childTeams": {
"type": "integer",
"description": "Number of child teams of a team"
},
"modified": {
"type": ["string", "null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Modification date and time of a team"
},
"modifiedBy": {
"type": ["integer", "null"],
"description": "Id of a modifier person of a team"
}
}
},
"teamSingle": {
"type": "object",
"required": [ "name" ],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal id of a team"
},
"owner": {
"type": "integer",
"description": "Id of a manager person of a team"
},
"goalPeriod": {
"type": "integer",
"description": "Period of a goal; 1=Week, 2=Month, 3=Year"
},
"secondaryCountry": {
"type": ["integer", "null"],
"description": "Id of a secondary country location of a team"
},
"parent": {
"type": ["integer", "null"],
"description": "Id of a parent team of a team"
},
"goalType": {
"type": "integer",
"description": "Type of a goal; 1=Hours, 2=Percent, 3=Revenue"
},
"goalValue": {
"type": "number",
"description": "Amount associated with a goal"
},
"secondaryAddress": {
"type": ["string", "null"],
"description": "Secondary address of a team"
},
"primaryState": {
"type": ["string", "null"],
"description": "Primary state of a team"
},
"primaryPostalCode": {
"type": "string",
"description": "Primary postal code of a team"
},
"costCenter": {
"type": "integer",
"description": "Cost center of a team"
},
"description": {
"type": "string",
"description": "Description about a team"
},
"secondaryState": {
"type": ["string", "null"],
"description": "Secondary state of a team"
},
"secondaryDepartment": {
"type": ["string", "null"],
"description": "Secondary department of a team"
},
"passive": {
"type": "integer",
"description": "Active state of a team; 0=Active, 1=Inactive"
},
"primaryCity": {
"type": "string",
"description": "Primary city of a team"
},
"secondaryPostalCode": {
"type": ["string", "null"],
"description": "Secondary postal code of a team"
},
"name": {
"type": "string",
"description": "Name of a team"
},
"primaryDepartment": {
"type": ["string", "null"],
"description": "Primary department of a team"
},
"secondaryCity": {
"type": ["string", "null"],
"description": "Secondary city of a team"
},
"primaryAddress": {
"type": "string",
"description": "Primary address of a team"
},
"primaryCountry": {
"type": "integer",
"description": "Primary country of a team"
}
}
}
}
}
Example:
{
"owner": 2834513,
"goalPeriod": 3,
"secondaryCountry": 0,
"parent": 490066,
"goalType": 3,
"goalValue": 5000,
"secondaryAddress": "",
"primaryState": "",
"primaryPostalCode": "00500",
"costCenter": 1,
"description": "Test description",
"secondaryState": "",
"secondaryDepartment": "",
"passive": 0,
"primaryCity": "Helsinki",
"secondaryPostalCode": "",
"name": "Test team",
"primaryDepartment": "HR department",
"secondaryCity": "",
"id": 2845554,
"primaryAddress": "Hämeentie 19",
"primaryCountry": 73
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /teams/{team_id}
Update an existing resource team to PlanMill. See teams/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- team_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all team entities",
"oneOf": [
{
"type": "array",
"items": { "$ref": "#/definitions/teamArray" }
},
{
"$ref": "#/definitions/teamSingle"
}
],
"definitions": {
"teamArray": {
"type": "object",
"required": [ "name" ],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal id of a team"
},
"latestMember": {
"type": ["integer", "null"],
"description": "Id of latest member person of a team"
},
"manager": {
"type": ["integer", "null"],
"description": "Id of a manager person of a team"
},
"parentTeamName": {
"type": ["string", "null"],
"description": "Parent team name of a team"
},
"costCenter": {
"type": "integer",
"description": "Cost center of a team"
},
"created": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Creation date and time of a team"
},
"description": {
"type": ["string", "null"],
"description": "Description of a team"
},
"parentTeam": {
"type": ["integer", "null"],
"description": "Parent team id of a team"
},
"passive": {
"type": "integer",
"description": "Active state of a team; 0=Active, 1=Inactive"
},
"createdBy": {
"type": "integer",
"description": "Id of a creator person of a team"
},
"members": {
"type": "integer",
"description": "Number of members of a team"
},
"name": {
"type": "string",
"description": "Name of a team"
},
"childTeams": {
"type": "integer",
"description": "Number of child teams of a team"
},
"modified": {
"type": ["string", "null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Modification date and time of a team"
},
"modifiedBy": {
"type": ["integer", "null"],
"description": "Id of a modifier person of a team"
}
}
},
"teamSingle": {
"type": "object",
"required": [ "name" ],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal id of a team"
},
"owner": {
"type": "integer",
"description": "Id of a manager person of a team"
},
"goalPeriod": {
"type": "integer",
"description": "Period of a goal; 1=Week, 2=Month, 3=Year"
},
"secondaryCountry": {
"type": ["integer", "null"],
"description": "Id of a secondary country location of a team"
},
"parent": {
"type": ["integer", "null"],
"description": "Id of a parent team of a team"
},
"goalType": {
"type": "integer",
"description": "Type of a goal; 1=Hours, 2=Percent, 3=Revenue"
},
"goalValue": {
"type": "number",
"description": "Amount associated with a goal"
},
"secondaryAddress": {
"type": ["string", "null"],
"description": "Secondary address of a team"
},
"primaryState": {
"type": ["string", "null"],
"description": "Primary state of a team"
},
"primaryPostalCode": {
"type": "string",
"description": "Primary postal code of a team"
},
"costCenter": {
"type": "integer",
"description": "Cost center of a team"
},
"description": {
"type": "string",
"description": "Description about a team"
},
"secondaryState": {
"type": ["string", "null"],
"description": "Secondary state of a team"
},
"secondaryDepartment": {
"type": ["string", "null"],
"description": "Secondary department of a team"
},
"passive": {
"type": "integer",
"description": "Active state of a team; 0=Active, 1=Inactive"
},
"primaryCity": {
"type": "string",
"description": "Primary city of a team"
},
"secondaryPostalCode": {
"type": ["string", "null"],
"description": "Secondary postal code of a team"
},
"name": {
"type": "string",
"description": "Name of a team"
},
"primaryDepartment": {
"type": ["string", "null"],
"description": "Primary department of a team"
},
"secondaryCity": {
"type": ["string", "null"],
"description": "Secondary city of a team"
},
"primaryAddress": {
"type": "string",
"description": "Primary address of a team"
},
"primaryCountry": {
"type": "integer",
"description": "Primary country of a team"
}
}
}
}
}
Example:
{
"owner": 2834513,
"goalPeriod": 3,
"secondaryCountry": 0,
"parent": 490066,
"goalType": 3,
"goalValue": 5000,
"secondaryAddress": "",
"primaryState": "",
"primaryPostalCode": "00500",
"costCenter": 1,
"description": "Test description",
"secondaryState": "",
"secondaryDepartment": "",
"passive": 0,
"primaryCity": "Helsinki",
"secondaryPostalCode": "",
"name": "Test team",
"primaryDepartment": "HR department",
"secondaryCity": "",
"id": 2845554,
"primaryAddress": "Hämeentie 19",
"primaryCountry": 73
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /teams/{team_id}
Remove a team from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- team_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for the updatable fields of the team
View details of a single meta.
get /teams/{team_id}/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- team_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"owner": {
"caption": "Team owner",
"values": {
"Mikkola, User": 2819,
"User, Testing": 2744,
"Tester, Test": 2741
},
"description": ""
},
"goalPeriod": {
"caption": "Period",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Employee directory.Contact.Goal period",
"values": {
"Month": "2",
"Year": "3",
"-": "0",
"Week": "1"
}
},
"secondaryCountry": {
"caption": "Secondary country",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Location.CountryId",
"values": {
"Papua New Guinea": "165",
"Cambodia": "37",
"Paraguay": "166",
"�land Islands": "236",
"Bahamas": "17",
"Solomon Islands": "188",
"Montserrat": "142",
"Mali": "130",
"Marshall Islands": "132",
"Guadeloupe": "239",
"Panama": "164",
"Virgin Islands, British": "27",
"Iran, Islamic Republic of": "98",
"Tanzania, United Republic of": "205",
"Argentina": "9",
"Seychelles": "183",
"Zambia": "233",
"Belize": "23",
"Bahrain": "19",
"-": "0",
"Guinea-Bissau": "89",
"Namibia": "146",
"Comoros": "50",
"Faroe Islands": "71",
"Finland": "73",
"Netherlands Antilles": "150",
"Georgia": "79",
"French Southern territories": "258",
"Saint Kitts and Nevis": "194",
"Yemen": "235",
"Eritrea": "67",
"Puerto Rico": "171",
"Viet Nam": "225",
"Yugoslavia (discontinued)": "231",
"Aruba": "11",
"Madagascar": "126",
"Svalbard and Jan Mayen": "254",
"Saint Martin": "251",
"South Georgia and the South Sandwich Islands": "253",
"Sweden": "199",
"Malawi": "127",
"Cocos (Keeling) Islands": "260",
"Andorra": "5",
"Liechtenstein": "122",
"Poland": "169",
"Bulgaria": "34",
"Jordan": "106",
"Tunisia": "211",
"Australian External Territories(discontinued)": "14",
"Tuvalu": "214",
"United Arab Emirates": "217",
"Kenya": "108",
"Yemen Arab Republic (North Yemen)(discontinued)": "230",
"French Polynesia": "202",
"Lebanon": "117",
"Djibouti": "62",
"Azerbaijan": "16",
"Cuba": "55",
"Czech Republic": "57",
"Saint Lucia": "250",
"Mauritania": "134",
"Guernsey": "240",
"Mayotte": "136",
"Korea, Republic of (South Korea)": "111",
"San Marino": "178",
"Israel": "101",
"Australia": "13",
"Tajikistan": "204",
"Other": "1000",
"Myanmar": "145",
"Cameroon": "38",
"Gibraltar": "82",
"Cyprus": "56",
"Northern Mariana Islands": "159",
"Saipan(double)": "177",
"Malaysia": "128",
"Oman": "161",
"Iceland": "95",
"Armenia": "10",
"Macedonia, The former Yugoslav Republic of": "125",
"Gabon": "77",
"Luxembourg": "123",
"Brazil": "31",
"Turks and Caicos Islands": "255",
"Algeria": "3",
"Jersey": "247",
"Slovenia": "187",
"Antigua and Barbuda": "8",
"Colombia": "49",
"Ecuador": "63",
"Cape Verdi(double)": "43",
"Vanuatu": "222",
"United States Minor Outlying Islands": "257",
"Honduras": "92",
"Italy": "102",
"Antarctica": "237",
"Nauru": "147",
"Haiti": "91",
"Afghanistan": "1",
"Burundi": "36",
"Russian Federation": "175",
"Singapore": "185",
"French Guiana": "76",
"American Samoa": "4",
"Christmas Island": "259",
"Congo (Congo-Kinshasa)": "232",
"Netherlands": "149",
"China": "47",
"Martinique": "133",
"Palestinian Territory, Occupied": "244",
"Saint Pierre and Miquelon": "195",
"Kyrgyzstan": "114",
"Bhutan": "26",
"Romania": "174",
"Falkland Islands (Malvinas)": "70",
"Togo": "207",
"Philippines": "168",
"Uzbekistan": "221",
"Holy See (Vatican City State)": "223",
"Pitcairn": "248",
"Zimbabwe": "234",
"British Indian Ocean Territory": "59",
"Montenegro": "242",
"Dominica": "60",
"Indonesia": "97",
"Benin": "24",
"Yemen (People's Democratic Republic of)(discontinued)": "229",
"Angola": "6",
"East Timor": "245",
"Sudan": "196",
"Brunei Darussalam": "33",
"Portugal": "170",
"New Caledonia": "152",
"Grenada": "85",
"Cayman Islands": "42",
"Greece": "83",
"Latvia": "115",
"Mongolia": "141",
"Congo (Congo-Brazzaville)": "51",
"Morocco": "143",
"Guatemala": "87",
"Guyana": "90",
"Iraq": "99",
"Chile": "46",
"Nepal": "148",
"Heard Island and McDonald Islands": "241",
"Isle of Man": "246",
"Ukraine": "216",
"Ghana": "81",
"Anguilla": "7",
"India": "96",
"Canada": "39",
"Maldives": "129",
"Turkey": "212",
"Belgium": "22",
"C�te d?Ivoire": "103",
"Khmer Republic (Cambodia/Kampuchea)(double)": "109",
"South Africa": "190",
"Trinidad and Tobago": "210",
"Bermuda": "25",
"Central African Republic": "44",
"Lao People?s Democratic Republic": "116",
"Jamaica": "104",
"Peru": "167",
"Turkmenistan": "213",
"Germany": "80",
"Korea, Democratic People?s Republic of (North Korea)": "112",
"Fiji": "72",
"Tokelau": "208",
"Hong Kong": "93",
"Guinea": "88",
"United States": "220",
"Micronesia, Federated States of": "138",
"Chad": "45",
"Somalia": "189",
"Nevis(double)": "151",
"Sao Tome and Principe": "179",
"Thailand": "206",
"Kiribati": "110",
"Equatorial Guinea": "66",
"Costa Rica": "53",
"Kuwait": "113",
"Nigeria": "156",
"Croatia": "54",
"Syrian Arab Republic": "201",
"Cook Islands": "52",
"Sri Lanka": "192",
"Uruguay": "219",
"United Kingdom": "218",
"Switzerland": "200",
"Samoa": "228",
"Spain": "191",
"Liberia": "119",
"Venezuela": "224",
"Burkina Faso": "35",
"Virgin Islands, U.S.": "226",
"Swaziland": "198",
"Saint Barth�lemy": "249",
"Palau": "163",
"Estonia": "68",
"Libyan Arab Jamahiriya": "121",
"Kazakstan": "107",
"Wallis and Futuna": "227",
"Niue": "157",
"Austria": "15",
"Mozambique": "144",
"El Salvador": "65",
"Monaco": "140",
"Guam": "86",
"British V.I.(double)": "32",
"Lesotho": "118",
"Tonga": "209",
"Western Sahara": "256",
"R�union": "173",
"Hungary": "94",
"Japan": "105",
"Belarus": "21",
"Mauritius": "135",
"Bouvet Island": "238",
"Norfolk Island": "243",
"Albania": "2",
"New Zealand": "153",
"Senegal": "181",
"Moldova, Republic of": "139",
"Ethiopia": "69",
"Taiwan(double)": "203",
"Egypt": "64",
"Macau": "124",
"Sierra Leone": "184",
"North Korea(double)": "158",
"Bolivia": "28",
"Malta": "131",
"Saudi Arabia": "180",
"Cape Verde": "40",
"Pakistan": "162",
"Gambia": "78",
"Qatar": "172",
"Ireland": "100",
"Slovakia": "186",
"Lithuania": "120",
"France": "74",
"Serbia": "182",
"Bosnia and Herzegovina": "29",
"Taiwan, Province of China": "48",
"Niger": "155",
"French Antilles(discontinued)": "75",
"Rwanda": "176",
"Ascension Island(double,now part of St. Helena)": "12",
"Bangladesh": "20",
"Barbados": "18",
"Nicaragua": "154",
"Norway": "160",
"Saint Vincent and the Grenadines": "252",
"Botswana": "30",
"Denmark": "58",
"Dominican Republic": "61",
"Mexico": "137",
"Uganda": "215",
"Suriname": "197",
"Greenland": "84",
"Saint Helena": "193"
}
},
"parent": {
"caption": "Parent team",
"values": {
"Sales Team": "4244",
"Support Team": "4996",
"Executive Team": "5642"
},
"description": ""
},
"goalType": {
"caption": "Type",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Employee directory.Contact.Goal type",
"values": {
"[effortunit]": "1",
"Percent": "2",
"Revenue": "3"
}
},
"goalValue": {
"caption": "Value",
"format": "double",
"description": "",
"values": null
},
"secondaryAddress": {
"caption": "Secondary address",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"primaryState": {
"caption": "Primary state",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"primaryPostalCode": {
"caption": "Primary postal/Zip code",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"costCenter": {
"caption": "Cost center",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Employee directory.Team.Cost center",
"values": {
"1000": "1",
"2000": "2",
"3000": "3",
"-": "0"
}
},
"description": {
"caption": "Description",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"secondaryState": {
"caption": "Secondary state",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"secondaryDepartment": {
"caption": "Secondary department/reference",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"passive": {
"caption": "Status",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Sales management.Accounts.Status",
"values": {
"Active": "0",
"Inactive": "1"
}
},
"primaryCity": {
"caption": "Primary city",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"secondaryPostalCode": {
"caption": "Secondary postal/Zip code",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"name": {
"caption": "Name",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"primaryDepartment": {
"caption": "Primary department/reference",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"secondaryCity": {
"caption": "Secondary city",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"id": {
"caption": "",
"description": "",
"values": null
},
"primaryAddress": {
"caption": "Primary address",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"primaryCountry": {
"caption": "Primary country",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Location.CountryId",
"values": {
"Papua New Guinea": "165",
"Cambodia": "37",
"Paraguay": "166",
"�land Islands": "236",
"Bahamas": "17",
"Solomon Islands": "188",
"Montserrat": "142",
"Mali": "130",
"Marshall Islands": "132",
"Guadeloupe": "239",
"Panama": "164",
"Virgin Islands, British": "27",
"Iran, Islamic Republic of": "98",
"Tanzania, United Republic of": "205",
"Argentina": "9",
"Seychelles": "183",
"Zambia": "233",
"Belize": "23",
"Bahrain": "19",
"-": "0",
"Guinea-Bissau": "89",
"Namibia": "146",
"Comoros": "50",
"Faroe Islands": "71",
"Finland": "73",
"Netherlands Antilles": "150",
"Georgia": "79",
"French Southern territories": "258",
"Saint Kitts and Nevis": "194",
"Yemen": "235",
"Eritrea": "67",
"Puerto Rico": "171",
"Viet Nam": "225",
"Yugoslavia (discontinued)": "231",
"Aruba": "11",
"Madagascar": "126",
"Svalbard and Jan Mayen": "254",
"Saint Martin": "251",
"South Georgia and the South Sandwich Islands": "253",
"Sweden": "199",
"Malawi": "127",
"Cocos (Keeling) Islands": "260",
"Andorra": "5",
"Liechtenstein": "122",
"Poland": "169",
"Bulgaria": "34",
"Jordan": "106",
"Tunisia": "211",
"Australian External Territories(discontinued)": "14",
"Tuvalu": "214",
"United Arab Emirates": "217",
"Kenya": "108",
"Yemen Arab Republic (North Yemen)(discontinued)": "230",
"French Polynesia": "202",
"Lebanon": "117",
"Djibouti": "62",
"Azerbaijan": "16",
"Cuba": "55",
"Czech Republic": "57",
"Saint Lucia": "250",
"Mauritania": "134",
"Guernsey": "240",
"Mayotte": "136",
"Korea, Republic of (South Korea)": "111",
"San Marino": "178",
"Israel": "101",
"Australia": "13",
"Tajikistan": "204",
"Other": "1000",
"Myanmar": "145",
"Cameroon": "38",
"Gibraltar": "82",
"Cyprus": "56",
"Northern Mariana Islands": "159",
"Saipan(double)": "177",
"Malaysia": "128",
"Oman": "161",
"Iceland": "95",
"Armenia": "10",
"Macedonia, The former Yugoslav Republic of": "125",
"Gabon": "77",
"Luxembourg": "123",
"Brazil": "31",
"Turks and Caicos Islands": "255",
"Algeria": "3",
"Jersey": "247",
"Slovenia": "187",
"Antigua and Barbuda": "8",
"Colombia": "49",
"Ecuador": "63",
"Cape Verdi(double)": "43",
"Vanuatu": "222",
"United States Minor Outlying Islands": "257",
"Honduras": "92",
"Italy": "102",
"Antarctica": "237",
"Nauru": "147",
"Haiti": "91",
"Afghanistan": "1",
"Burundi": "36",
"Russian Federation": "175",
"Singapore": "185",
"French Guiana": "76",
"American Samoa": "4",
"Christmas Island": "259",
"Congo (Congo-Kinshasa)": "232",
"Netherlands": "149",
"China": "47",
"Martinique": "133",
"Palestinian Territory, Occupied": "244",
"Saint Pierre and Miquelon": "195",
"Kyrgyzstan": "114",
"Bhutan": "26",
"Romania": "174",
"Falkland Islands (Malvinas)": "70",
"Togo": "207",
"Philippines": "168",
"Uzbekistan": "221",
"Holy See (Vatican City State)": "223",
"Pitcairn": "248",
"Zimbabwe": "234",
"British Indian Ocean Territory": "59",
"Montenegro": "242",
"Dominica": "60",
"Indonesia": "97",
"Benin": "24",
"Yemen (People's Democratic Republic of)(discontinued)": "229",
"Angola": "6",
"East Timor": "245",
"Sudan": "196",
"Brunei Darussalam": "33",
"Portugal": "170",
"New Caledonia": "152",
"Grenada": "85",
"Cayman Islands": "42",
"Greece": "83",
"Latvia": "115",
"Mongolia": "141",
"Congo (Congo-Brazzaville)": "51",
"Morocco": "143",
"Guatemala": "87",
"Guyana": "90",
"Iraq": "99",
"Chile": "46",
"Nepal": "148",
"Heard Island and McDonald Islands": "241",
"Isle of Man": "246",
"Ukraine": "216",
"Ghana": "81",
"Anguilla": "7",
"India": "96",
"Canada": "39",
"Maldives": "129",
"Turkey": "212",
"Belgium": "22",
"C�te d?Ivoire": "103",
"Khmer Republic (Cambodia/Kampuchea)(double)": "109",
"South Africa": "190",
"Trinidad and Tobago": "210",
"Bermuda": "25",
"Central African Republic": "44",
"Lao People?s Democratic Republic": "116",
"Jamaica": "104",
"Peru": "167",
"Turkmenistan": "213",
"Germany": "80",
"Korea, Democratic People?s Republic of (North Korea)": "112",
"Fiji": "72",
"Tokelau": "208",
"Hong Kong": "93",
"Guinea": "88",
"United States": "220",
"Micronesia, Federated States of": "138",
"Chad": "45",
"Somalia": "189",
"Nevis(double)": "151",
"Sao Tome and Principe": "179",
"Thailand": "206",
"Kiribati": "110",
"Equatorial Guinea": "66",
"Costa Rica": "53",
"Kuwait": "113",
"Nigeria": "156",
"Croatia": "54",
"Syrian Arab Republic": "201",
"Cook Islands": "52",
"Sri Lanka": "192",
"Uruguay": "219",
"United Kingdom": "218",
"Switzerland": "200",
"Samoa": "228",
"Spain": "191",
"Liberia": "119",
"Venezuela": "224",
"Burkina Faso": "35",
"Virgin Islands, U.S.": "226",
"Swaziland": "198",
"Saint Barth�lemy": "249",
"Palau": "163",
"Estonia": "68",
"Libyan Arab Jamahiriya": "121",
"Kazakstan": "107",
"Wallis and Futuna": "227",
"Niue": "157",
"Austria": "15",
"Mozambique": "144",
"El Salvador": "65",
"Monaco": "140",
"Guam": "86",
"British V.I.(double)": "32",
"Lesotho": "118",
"Tonga": "209",
"Western Sahara": "256",
"R�union": "173",
"Hungary": "94",
"Japan": "105",
"Belarus": "21",
"Mauritius": "135",
"Bouvet Island": "238",
"Norfolk Island": "243",
"Albania": "2",
"New Zealand": "153",
"Senegal": "181",
"Moldova, Republic of": "139",
"Ethiopia": "69",
"Taiwan(double)": "203",
"Egypt": "64",
"Macau": "124",
"Sierra Leone": "184",
"North Korea(double)": "158",
"Bolivia": "28",
"Malta": "131",
"Saudi Arabia": "180",
"Cape Verde": "40",
"Pakistan": "162",
"Gambia": "78",
"Qatar": "172",
"Ireland": "100",
"Slovakia": "186",
"Lithuania": "120",
"France": "74",
"Serbia": "182",
"Bosnia and Herzegovina": "29",
"Taiwan, Province of China": "48",
"Niger": "155",
"French Antilles(discontinued)": "75",
"Rwanda": "176",
"Ascension Island(double,now part of St. Helena)": "12",
"Bangladesh": "20",
"Barbados": "18",
"Nicaragua": "154",
"Norway": "160",
"Saint Vincent and the Grenadines": "252",
"Botswana": "30",
"Denmark": "58",
"Dominican Republic": "61",
"Mexico": "137",
"Uganda": "215",
"Suriname": "197",
"Greenland": "84",
"Saint Helena": "193"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available attachments in PlanMill. This is a read-only collection.
Get a list of attachments
get /teams/{team_id}/attachments
Get a list of attachments
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- team_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
[
{
"size": 8497,
"createdBy": 50,
"created": "2022-01-13T13:05:10.837+0200",
"name": "attached_file_test.txt",
"modified": "2022-01-13T13:18:25.353+0200",
"id": 1543
},
{
"size": 146169,
"createdBy": 50,
"created": "2022-01-13T13:18:25.353+0200",
"name": "attached_file.txt",
"modified": "2022-01-13T13:18:25.353+0200",
"id": 1545
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
attachment_id is returned by /tempfiles endpoint on file upload.
View details of single attachment.
put /teams/{team_id}/attachments/{attachment_id}
attachment_id is returned by /tempfiles endpoint on file upload.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- team_id: required(string)
- attachment_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
get /teams/{team_id}/attachments/{attachment_id}
View details of single attachment.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- team_id: required(string)
- attachment_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
Contents of file
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available members in PlanMill. This is a read-only collection.
Get a list of members
get /teams/{team_id}/members
Get a list of members
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- team_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
[
{
"lastName": "Last Name",
"firstName": "First Name",
"added": "2015-08-18T12:43:46.817+0300",
"person": 2853944,
"addedBy": 2853944,
"primaryTeam": 1
},
{
"lastName": "User",
"firstName": "Person",
"added": "2015-08-18T12:43:46.817+0300",
"person": 2853944,
"addedBy": 2853944,
"primaryTeam": 1
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single team member in PlanMill
Remove a member from PlanMill.
put /teams/{team_id}/members/{member_id}
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- team_id: required(string)
- member_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- setPrimary: required(boolean)
Example:
true | false
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /teams/{team_id}/members/{member_id}
Remove a member from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- team_id: required(string)
- member_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
List of team member unit costs in PlanMill
Get a list of unitcosts
get /teams/{team_id}/unitcosts
Get a list of unitcosts
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- team_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
[
{
"amount": 1111,
"unit": 2,
"validUntil": null,
"comment": "",
"id": 10808,
"validFrom": null,
"type": 1
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/tempfiles
Add a new tempfile to PlanMill.
post /tempfiles
Add a new tempfile to PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- Content-Type: required(string - default: multipart/form-data )
Example:
multipart/form-data
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- name: (string)
Name of uploaded file
- description: (string)
Description of uploaded file
Body
Media type: multipart/form-data
Type: any
Example:
Contents of file
HTTP status code 201
Body
Media type: application/json
Type: any
Example:
{ "id" : 1627 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/timereports
Collection of available timereports in PlanMill. See timereports/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Get a list of timereports. See timereports/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Add a new timereport to PlanMill or update existing (if id is given). See timereports/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
get /timereports
Get a list of timereports. See timereports/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- person: required(integer)
Id of a person. Required, but if not given in request, authenticated API user's time reports are returned. For performance reasons time reports of all users can not be returned.
- period: (integer)
Default for the period is 'This year' (check meta for full list).
- status: (integer)
Used in enumeration of status
- billableStatus: (integer)
Used in enumeration of billableStatus
- project: (integer)
Id of a project. It could be used for querying multiple projects' time reports by comma-separated id, e.g., "projectfilter=projectid_1,projectid_2"
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (string)
Sorts the results using string that is a JSON attribute
- interval?: (string)
Interval type, e.g. start, finish, created, or modified. It is required in combination with intervalstart or intervalfinish
- intervalstart?: (string)
Start date of the interval in UTC format, intervalfinish required
Example:
2021-08-05T00:00:00.000+0200
- intervalfinish?: (string)
Finish date of the interval in UTC format, intervalstart required
Example:
2021-08-05T00:00:00.000+0200
HTTP status code 200
Body
Media type: application/json
Type: array of timereport_get
Items: timereport_get
- project: (union of integer or nil)
Id of project having task to report the time
- person: (integer)
User's id
- start: (datetime)
Start time of time report. Only date part is used when amount is provided.(Unless clock-times mode is active in users role).
- amount: (number)
Reported normal time in minutes.
- finish: (datetime)
Finish time of a time report. May be used instead of amount for a time report. System will then calculate amount. Note for 'overtimeAmount' or 'travelAmount' you must provide an explicit length in minutes.
- status: (integer)
Status of a time report
- comment: (union of string or nil)
Comments of a time report
- billingComment: (union of string or nil)
Billing comment of a time report
- billableStatus: (union of integer or nil)
If task's status is billable, time report's status can be either billable or non-billable
- task: (integer)
Id of task for which time is reported
- overtimeAmount: (union of integer or nil)
Overtime in minutes
- overtimeComment: (union of string or nil)
Comment for overtime work
- travelAmount: (union of integer or nil)
Travel time in minutes
- travelComment: (union of string or nil)
Travel time in minutes
- id: (integer)
Internal ID of a time report
- billableAmount: (union of integer or nil)
Billable amount of time report
- invoice: (union of integer or nil)
Internal invoice ID of any the invoice of a billable report
- invoiceposition: (union of integer or nil)
Internal invoice position ID of the invoice position of a billable time report
- salesorder: (union of integer or nil)
Internal salesorder ID of the salesorder of a billable time report
- salesorderitem: (union of integer or nil)
Internal salesorder item ID of the salesorder item of a billable time report
- dutyType: (union of integer or nil)
Type of duty
- unitPrice: (union of integer or nil)
Price per unit (hour)
- created: (datetime)
Created date
- modified: (datetime)
Last modified date
- modifiedBy: (union of integer or nil)
Last modified by this person
Example:
[
{
"amount": 1005,
"billableAmount": 1005,
"billableStatus": 1,
"billingComment": "requirements workshop preparation",
"comment": "testing comment",
"dutyType": 2030,
"finish": "2021-07-03T16:47:00.000+0300",
"id": 1528,
"invoice": 1531,
"invoiceposition": 1532,
"created": "2021-07-05T13:23:54.837+0300",
"modified": "2021-07-05T13:23:54.837+0300",
"modifiedBy": 356,
"overtimeAmount": 0,
"overtimeComment": "urgent bug fix in release",
"person": 356,
"project": 1525,
"salesorder": 1529,
"salesorderitem": 1530,
"start": "2021-07-03T00:07:00.000+0300",
"status": 1,
"task": 1526,
"travelAmount": 0,
"travelComment": "visit to customer permises for new installation",
"unitPrice": 0
},
{
"amount": 15,
"billableAmount": 15,
"billableStatus": null,
"billingComment": null,
"comment": "testing comment",
"dutyType": null,
"finish": "2021-07-03T00:15:00.000+0300",
"id": 1530,
"invoice": null,
"invoiceposition": null,
"created": "2021-07-02T10:35:03.477+0300",
"modified": "2021-07-02T10:35:03.477+0300",
"modifiedBy": 356,
"overtimeAmount": 0,
"overtimeComment": null,
"person": 356,
"project": null,
"salesorder": null,
"salesorderitem": null,
"start": "2021-07-03T00:07:00.000+0300",
"status": 0,
"task": -1,
"travelAmount": 0,
"travelComment": null,
"unitPrice": 0
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /timereports
Add a new timereport to PlanMill or update existing (if id is given). See timereports/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: object
Properties- project: (union of integer or nil)
Id of project having task to report the time
- person: (integer)
User's id
- start: (datetime)
Start time of time report. Only date part is used when amount is provided.(Unless clock-times mode is active in users role).
- amount: (number)
Reported normal time in minutes.
- finish: (datetime)
Finish time of a time report. May be used instead of amount for a time report. System will then calculate amount. Note for 'overtimeAmount' or 'travelAmount' you must provide an explicit length in minutes.
- status: (integer)
Status of a time report
- comment: (union of string or nil)
Comments of a time report
- billingComment: (union of string or nil)
Billing comment of a time report
- billableStatus: (union of integer or nil)
If task's status is billable, time report's status can be either billable or non-billable
- task: (integer)
Id of task for which time is reported
- overtimeAmount: (union of integer or nil)
Overtime in minutes
- overtimeComment: (union of string or nil)
Comment for overtime work
- travelAmount: (union of integer or nil)
Travel time in minutes
- travelComment: (union of string or nil)
Travel time in minutes
- billableAmount: (union of integer or nil)
Billable amount of time report can be given separately, if reported amount affecting person's balance is different
Example:
{
"amount": 1000,
"billableAmount": null,
"billableStatus": 0,
"comment": "testing request",
"finish": "2021-07-03T16:47:00.000+0300",
"overtimeAmount": 0,
"overtimeComment": "",
"person": 356,
"project": 211,
"start": "2021-07-03T00:07:00.000+0300",
"status": 1,
"task": 233,
"travelAmount": 0,
"billingComment": null,
"travelComment": ""
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for time reports. Includes resource's fields names and type and related filters.
View details of a single meta.
get /timereports/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"filters": [
{
"type": "string",
"name": "freetextsearch",
"caption": ""
},
{
"type": "multivalue",
"name": "TimeReport.Status",
"value": "-1",
"caption": "Status",
"values": {
"0": "Reported",
"1": "Accepted",
"2": "Locked",
"-1": "All",
"4": "Preliminary"
}
},
{
"type": "string",
"name": "balance",
"caption": "Balance"
},
{
"type": "multivalue",
"name": "billableStatus",
"value": "-1",
"caption": "Billable status",
"values": {
"1": "Billable",
"3": "Non-billable",
"-1": "All",
"4": "In billing",
"5": "Draft invoice",
"6": "Invoiced"
}
},
{
"type": "interval",
"name": "interval",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"values": {
"TimeReport.Start": "Date"
}
},
{
"type": "string",
"name": "rowcount",
"value": "100",
"caption": "Rows",
"values": {
"100": "100",
"25": "25",
"50": "50",
"150": "150",
"250": "250",
"75": "75"
}
},
{
"type": "multivalue",
"name": "project",
"value": "-1",
"caption": "Project",
"values": {
"1525": "Timereports tinbit",
"-1": "All"
}
},
{
"type": "string",
"name": "person",
"caption": "Person",
"values": {
"1532": "Super, Supervisor",
"356": "User (update), First"
}
},
{
"type": "string",
"name": "period",
"value": "5",
"caption": "Period",
"values": {
"22": "This & last FQ",
"44": "Today and tomorrow",
"23": "This and last FY",
"24": "This and next month",
"25": "This and last month",
"26": "Last 14 days",
"30": "This week",
"31": "Last week",
"10": "Next month",
"32": "This and last week",
"11": "Last month",
"33": "Next week",
"34": "This and next week",
"12": "Last 30 days",
"13": "Last 60 days",
"14": "Last 90 days",
"15": "Last 120 days",
"16": "Last 180 days",
"17": "Next 30 days",
"18": "Next 60 days",
"19": "Next 90 days",
"1": "This FQ",
"2": "Next FQ",
"3": "This and next FQ",
"4": "Last FQ",
"5": "This FY",
"6": "Next FY",
"7": "This and next FY",
"8": "Last FY",
"9": "This month",
"40": "Today",
"41": "Yesterday",
"42": "Today and yesterday",
"20": "Next 120 days",
"43": "Tomorrow",
"21": "Next 180 days"
}
}
],
"fields": {
"unitPrice": {
"format": "currency",
"caption": "Unit price"
},
"dutyType": {
"values": {
"1080": "Overtime leave",
"2070": "HRM",
"2090": "Management",
"optgroup": "Administrative duty",
"1000": "Annual holiday",
"1165": "Saved leave",
"1120": "Layoff",
"2110": "Office work",
"1020": "Sick leave due to child",
"2010": "Marketing",
"1140": "Study leave (unpaid)",
"2130": "Emergency duty < 22.00",
"1040": "Paternity leave (unpaid)",
"2030": "Development",
"1160": "Other annual leave",
"1060": "Other unpaid leave",
"2050": "IT",
"1180": "Paternity leave (paid)",
"9999": "Other",
"1190": "Maternity leave (unpaid)",
"1090": "Balance leave",
"2080": "HRD",
"\/optgroup": "-",
"1110": "Military refresher",
"2100": "Internal events",
"1010": "Sick leave",
"2000": "Education",
"1130": "Child care leave",
"2120": "Customer service",
"1030": "Maternity leave (paid)",
"2020": "Presales",
"2140": "On call",
"1050": "Military leave",
"2040": "R&D",
"1170": "Parental leave (unpaid)",
"1070": "Other paid leave",
"2060": "Finance",
"1025": "Sick leave by medical certificate",
"1200": "Parental leave",
"2135": "Emergency duty 22.00-06.00",
"1100": "Bonus holiday"
},
"format": "Enumeration values.Task.Offduty",
"caption": "Task.Duty type"
},
"amount": {
"format": "hour",
"caption": "Reported"
},
"start": {
"format": "shortdate",
"caption": "Date"
},
"project": {
"format": "text",
"caption": "PMVProject.Id"
},
"billableStatus": {
"values": {
"1": "Billable",
"3": "Non-billable",
"4": "In billing",
"5": "Draft invoice",
"6": "Invoiced"
},
"format": "Enumeration values.Time report.Billable status",
"caption": "Billable status"
},
"billableAmount": {
"format": "effortunit",
"caption": "Billable"
},
"overtimeAmount": {
"format": "hour",
"caption": "Overtime"
},
"task": {
"format": "text",
"caption": "TimeReport.TaskId"
},
"billingComment": {
"format": "text",
"caption": "Invoice comment"
},
"person": {
"format": "text",
"caption": "Timereport.PersonId"
},
"modified": {
"format": "mediumdate",
"caption": "Modified"
},
"comment": {
"format": "text",
"caption": "Comment"
},
"overtimeComment": {
"format": "text",
"caption": "Overtime comment"
},
"finish": {
"format": "mediumdate",
"caption": "TimeReport.Finish"
},
"modifiedBy": {
"format": "text",
"caption": "Modified by"
},
"id": {
"format": "text",
"caption": "TimeReport.Id"
},
"invoice": {
"format": "number",
"caption": "Invoice ID"
},
"travelComment": {
"format": "text",
"caption": "Travel time comment"
},
"travelAmount": {
"format": "hour",
"caption": "Travel time"
},
"status": {
"values": {
"0": "Reported",
"1": "Accepted",
"2": "Locked",
"4": "Preliminary"
},
"format": "Enumeration values.Time report.Status",
"caption": "Status"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single timereport in PlanMill.
View details of a single timereport. See timereports/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Update an existing resource timereport to PlanMill. See timereports/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Remove a timereport from PlanMill.
get /timereports/{timereport_id}
View details of a single timereport. See timereports/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- timereport_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- project: (union of integer or nil)
Id of project having task to report the time
- person: (integer)
User's id
- start: (datetime)
Start time of time report. Only date part is used when amount is provided.(Unless clock-times mode is active in users role).
- amount: (number)
Reported normal time in minutes.
- finish: (datetime)
Finish time of a time report. May be used instead of amount for a time report. System will then calculate amount. Note for 'overtimeAmount' or 'travelAmount' you must provide an explicit length in minutes.
- status: (integer)
Status of a time report
- comment: (union of string or nil)
Comments of a time report
- billingComment: (union of string or nil)
Billing comment of a time report
- billableStatus: (union of integer or nil)
If task's status is billable, time report's status can be either billable or non-billable
- task: (integer)
Id of task for which time is reported
- overtimeAmount: (union of integer or nil)
Overtime in minutes
- overtimeComment: (union of string or nil)
Comment for overtime work
- travelAmount: (union of integer or nil)
Travel time in minutes
- travelComment: (union of string or nil)
Travel time in minutes
- id: (integer)
Internal ID of a time report
- billableAmount: (union of integer or nil)
Billable amount of time report
- requireBillableComment: (union of integer or nil)
Used in get requests to indicate if task requires a comment for timereport
- remainingAmount: (union of integer or nil)
Remaining amount of a time report
- totalReported: (union of integer or nil)
Total reported time of time report
Example:
{
"amount": 1000,
"billableAmount": null,
"billableStatus": 1,
"comment": "testing request",
"finish": "2021-07-03T16:47:00.000+0300",
"id": 1528,
"overtimeAmount": 0,
"overtimeComment": "",
"person": 356,
"project": 1525,
"start": "2021-07-03T00:07:00.000+0300",
"status": 1,
"task": 1526,
"travelAmount": 0,
"billingComment": null,
"travelComment": ""
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /timereports/{timereport_id}
Update an existing resource timereport to PlanMill. See timereports/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- timereport_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: object
Properties- project: (union of integer or nil)
Id of project having task to report the time
- person: (integer)
User's id
- start: (datetime)
Start time of time report. Only date part is used when amount is provided.(Unless clock-times mode is active in users role).
- amount: (number)
Reported normal time in minutes.
- finish: (datetime)
Finish time of a time report. May be used instead of amount for a time report. System will then calculate amount. Note for 'overtimeAmount' or 'travelAmount' you must provide an explicit length in minutes.
- status: (integer)
Status of a time report
- comment: (union of string or nil)
Comments of a time report
- billingComment: (union of string or nil)
Billing comment of a time report
- billableStatus: (union of integer or nil)
If task's status is billable, time report's status can be either billable or non-billable
- task: (integer)
Id of task for which time is reported
- overtimeAmount: (union of integer or nil)
Overtime in minutes
- overtimeComment: (union of string or nil)
Comment for overtime work
- travelAmount: (union of integer or nil)
Travel time in minutes
- travelComment: (union of string or nil)
Travel time in minutes
- billableAmount: (union of integer or nil)
Billable amount of time report can be given separately, if reported amount affecting person's balance is different
Example:
{
"amount": 1000,
"billableAmount": null,
"billableStatus": 0,
"comment": "testing request",
"finish": "2021-07-03T16:47:00.000+0300",
"overtimeAmount": 0,
"overtimeComment": "",
"person": 356,
"project": 211,
"start": "2021-07-03T00:07:00.000+0300",
"status": 1,
"task": 233,
"travelAmount": 0,
"billingComment": null,
"travelComment": ""
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /timereports/{timereport_id}
Remove a timereport from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- timereport_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Accepts time reports. It can also accept multiple ids, for example, /timereports/{id},{id},{id}/accepted
put /timereports/{timereport_id}/accepted
Accepts time reports. It can also accept multiple ids, for example, /timereports/{id},{id},{id}/accepted
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- timereport_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: any
Example:
{}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Unaccepts time reports. It can also unaccept multiple ids, for example, /timereports/{id},{id},{id}/accepted
put /timereports/{timereport_id}/unaccepted
Unaccepts time reports. It can also unaccept multiple ids, for example, /timereports/{id},{id},{id}/accepted
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- timereport_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: any
Example:
{}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for the updatable fields of the timereport
View details of a single meta.
get /timereports/{timereport_id}/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- timereport_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"amount": {
"type": "string",
"caption": "Quantity",
"format": "double",
"values": null
},
"start": {
"type": "string",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"caption": "Start",
"format": "string",
"values": null
},
"totalReported": {
"type": "string",
"caption": "Total reported",
"maxlength": "512",
"values": null
},
"project": {
"type": "string",
"link": "users\/356\/reportableassignments",
"values": null
},
"billableStatus": {
"type": "string",
"values": null
},
"requireBillableComment": {
"type": "string",
"values": null
},
"remainingAmount": {
"type": "string",
"caption": "Remain",
"maxlength": "512",
"values": null
},
"billableAmount": {
"type": "string",
"caption": "Billable",
"format": "double",
"values": null
},
"task": {
"type": "string",
"caption": "Task \/ Assignment",
"values": {
"-1": "-"
},
"link": "users\/356\/reportableassignments"
},
"overtimeAmount": {
"type": "string",
"values": null
},
"billingComment": {
"type": "string",
"caption": "Invoice comment",
"maxlength": "512",
"values": null
},
"person": {
"type": "string",
"value": "[userid]",
"values": null
},
"finish": {
"type": "string",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"caption": "Finish",
"format": "string",
"values": null
},
"comment": {
"type": "string",
"caption": "Comment",
"maxlength": "512",
"values": null
},
"overtimeComment": {
"type": "string",
"values": null
},
"id": {
"type": "string",
"values": null
},
"travelComment": {
"type": "string",
"values": null
},
"travelAmount": {
"type": "string",
"values": null
},
"status": {
"type": "string",
"values": null
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
/users
Collection of available users in PlanMill. See users/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Get a list of users. See users/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Add a new user to PlanMill. See users/meta for list of columns and formats.
get /users
Get a list of users. See users/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort: (string)
Sorts the results using string that is a JSON attribute
- account: required(integer)
Id of account of a user
- team: required(integer)
Id of the team which a user belongs to
- type: required(integer)
Type of a user
- role: required(integer)
Id of a role of a user
- city: required(string)
City of a user
- country: required(string)
Country of a user
- superior: required(integer)
Id of superior of a user
- interval?: (string)
Interval type, e.g. start, finish, created, or modified. It is required in combination with intervalstart or intervalfinish
- intervalstart?: (string)
Start date of the interval in UTC format, intervalfinish required
Example:
2021-08-05T00:00:00.000+0200
- intervalfinish?: (string)
Finish date of the interval in UTC format, intervalstart required
Example:
2021-08-05T00:00:00.000+0200
HTTP status code 200
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all user entities",
"oneOf": [
{
"type": "array",
"items": { "$ref": "#/definitions/userArray" }
},
{
"$ref": "#/definitions/userSingle"
}
],
"definitions": {
"userSingle": {
"type": "object",
"required": [ "lastName", "account", "userName", "role", "firstName"],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal ID of the user"
},
"firstName": {
"type": "string",
"maxLength": 80,
"description": "First name of a user"
},
"lastName": {
"type": "string",
"maxLength": 80,
"description": "Last name of a user"
},
"passive": {
"type": "integer",
"description": "User status can be active or passive"
},
"contractType": {
"type": ["integer", "null"],
"description": "Enumeration of contract type of the user. 0=Permanent - full-time, 2=Permanent - part-time, 3=Trainee, 4=Subcontractor, 5=Army leave, 6=Study leave, 7=Maternity/Paternity leave, 8=Hired - full-time, 9=Hired - part-time, 10=Hired - temporarily, 11=Partner, 12=Customer, 13=Board"
},
"userName": {
"type": ["string", "integer"],
"maxLength": 255,
"description": "Username of a user"
},
"password": {
"type": ["string", "null"],
"maxLength": 80,
"description": "Password of a user"
},
"confirmPassword": {
"type": ["string", "null"],
"maxLength": 80,
"description": "Confirm password of a user"
},
"account": {
"type": ["integer", "null"],
"description": "Id of user's account"
},
"currency": {
"type": ["integer", "null"],
"description": "Currency id of user's account"
},
"language": {
"type": ["integer", "null"],
"description": "Language id of user's account"
},
"skin": {
"type": ["integer", "null"],
"description": "Skin/Theme id of user's account"
},
"numberOfTabsShown": {
"type": ["integer", "null"],
"description": "Number of tabs displayed in a row"
},
"enableGroupTabs": {
"type": ["integer", "null"],
"description": "Enable and disable group tabs. 0=No, 1=Yes"
},
"role": {
"type": ["integer", "null"],
"description": "Basic Roles: 1=Administrator, 2=Power, 3=Pro, 4=Team, 5=Sales"
},
"effortUnit": {
"type": ["integer", "null"],
"description": "Enumeration of unit to record work time. 1=Minutes, 2=Hours, 3=Days, 4=Weeks"
},
"timeZone": {
"type": ["string", "null"],
"description": "Time zone of user"
},
"calendars": {
"type": ["integer", "null"],
"description": "calendar id of a user. It is required only when the contractType is any of the following: 0,2,3,4,8,9,10"
},
"goalType": {
"type": ["integer", "null"],
"description": "Enumeration of goal type of user. 1=Hours, 2=Percent 3=Revenue"
},
"goalPeriod": {
"type": ["integer", "null"],
"description": "Enumeration of goal period of user. 0=-, 1=Hours, 2=Percent 3=Revenue"
},
"hireDate": {
"type": ["string", "null"],
"format": "date-time"
},
"departDate": {
"type": ["string", "null"],
"format": "date-time"
},
"title": {
"type": ["string", "null"],
"description": "Title of user"
},
"languageCode": {
"type": ["string", "null"],
"description": "Language code"
},
"email": {
"type": ["string", "null"],
"description": "Email address of user"
},
"BIC": {
"type": ["string", "null"],
"description": ""
},
"balanceAdjustment": {
"type": ["integer", "null"],
"description": ""
},
"balanceMaximum": {
"type": ["integer", "null"],
"description": ""
},
"bankAccount": {
"type": ["string", "null"],
"description": ""
},
"blog": {
"type": ["string", "null"],
"description": ""
},
"competence": {
"type": ["string", "null"],
"description": ""
},
"competenceLevel": {
"type": ["integer", "null"],
"description": ""
},
"department": {
"type": ["string", "null"],
"description": ""
},
"description": {
"type": ["string", "null"],
"description": ""
},
"facebook": {
"type": ["string", "null"],
"description": ""
},
"fax": {
"type": ["string", "null"],
"description": ""
},
"goalValue": {
"type": ["integer", "null"],
"description": ""
},
"googleTalk": {
"type": ["string", "null"],
"description": ""
},
"linkedIn": {
"type": ["string", "null"],
"description": ""
},
"mobilePhone": {
"type": ["string", "null"],
"description": ""
},
"nationality": {
"type": ["integer", "null"],
"description": ""
},
"paymentTeam": {
"type": ["integer", "null"],
"description": ""
},
"primaryAddress": {
"type": ["string", "null"],
"description": ""
},
"secondaryAddress": {
"type": ["string", "null"],
"description": ""
},
"primaryCity": {
"type": ["string", "null"],
"description": ""
},
"secondaryCity": {
"type": ["string", "null"],
"description": ""
},
"primaryCountry": {
"type": ["integer", "null"],
"description": ""
},
"secondaryCountry": {
"type": ["integer", "null"],
"description": ""
},
"primaryDepartment": {
"type": ["string", "null"],
"description": ""
},
"secondaryDepartment": {
"type": ["string", "null"],
"description": ""
},
"primaryPostalCode": {
"type": ["string", "null"],
"description": ""
},
"secondaryPostalCode": {
"type": ["string", "null"],
"description": ""
},
"primaryState": {
"type": ["string", "null"],
"description": ""
},
"secondaryState": {
"type": ["string", "null"],
"description": ""
},
"primaryStreet": {
"type": ["string", "null"],
"description": ""
},
"secondaryStreet": {
"type": ["string", "null"],
"description": ""
},
"projectWikiUserGroup": {
"type": ["string", "null"],
"description": ""
},
"shippingAddress": {
"type": ["string", "null"],
"description": ""
},
"shippingCity": {
"type": ["string", "null"],
"description": ""
},
"shippingCountry": {
"type": ["integer", "null"],
"description": ""
},
"shippingDepartment": {
"type": ["string", "null"],
"description": ""
},
"shippingPostalCode": {
"type": ["string", "null"],
"description": ""
},
"shippingState": {
"type": ["string", "null"],
"description": ""
},
"shippingStreet": {
"type": ["string", "null"],
"description": ""
},
"skype": {
"type": ["string", "null"],
"description": ""
},
"externalIdentifier": {
"type": ["string", "integer", "null"],
"description": "External identifier of user"
},
"superior": {
"type": ["integer", "null"],
"description": ""
},
"team": {
"type": ["integer", "null"],
"description": ""
},
"twitter": {
"type": ["string", "null"],
"description": ""
},
"workPhone": {
"type": ["string", "null"],
"description": ""
},
"photo": {
"type": ["string", "null"],
"description": ""
}
}
},
"userArray": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal ID of a user"
},
"firstName": {
"type": "string",
"maxLength": 80,
"description": "First name of a user"
},
"lastName": {
"type": "string",
"maxLength": 80,
"description": "Last name of a user"
},
"passive": {
"type": "integer",
"description": "User status can be active or passive"
},
"contractType": {
"type": ["integer", "null"],
"description": "Enumeration of contract type of the user. 0=Permanent - full-time, 2=Permanent - part-time, 3=Trainee, 4=Subcontractor, 5=Army leave, 6=Study leave, 7=Maternity/Paternity leave, 8=Hired - full-time, 9=Hired - part-time, 10=Hired - temporarily, 11=Partner, 12=Customer, 13=Board"
},
"userName": {
"type": ["string", "integer"],
"maxLength": 255,
"description": "Username of a user"
},
"account": {
"type": ["integer", "null"],
"description": "Id of user's account"
},
"accountName": {
"type": ["string", "null"],
"description": "Name of user's account"
},
"externalIdentifier": {
"type": ["string", "null"],
"description": "External identifier of user"
},
"currencyCode": {
"type": ["string", "null"],
"description": "Currency code of user's account"
},
"languageCode": {
"type": ["string", "null"],
"description": "Language code of user's account"
},
"skin": {
"type": ["integer", "null"],
"description": "Skin/Theme id of user's account"
},
"role": {
"type": ["integer", "null"],
"description": "Basic Roles: 1=Administrator, 2=Power, 3=Pro, 4=Team, 5=Sales"
},
"roleName": {
"type": ["string", "null"],
"description": "Name of the role the user belongs to"
},
"effortUnit": {
"type": ["integer", "null"],
"description": "Enumeration of unit to record work time. 1=Minutes, 2=Hours, 3=Days, 4=Weeks"
},
"timeZone": {
"type": ["string", "null"],
"description": "Time zone of user"
},
"calendars": {
"type": ["string", "null"],
"description": "List of all calendars the user has"
},
"capacityCalendarId": {
"type": ["integer", "null"],
"description": "calendar id of a user."
},
"hireDate": {
"type": ["string", "null"],
"format": "date-time"
},
"departDate": {
"type": ["string", "null"],
"format": "date-time"
},
"title": {
"type": ["string", "null"],
"description": "Title of user"
},
"email": {
"type": ["string", "null"],
"description": "Email address of user"
},
"team": {
"type": ["integer", "null"],
"description": "ID of the user's primary team"
},
"teamName": {
"type": ["string", "null"],
"description": "Name of the user's primary team"
},
"lastLogin": {
"type": ["string", "null"],
"format": "date-time",
"description": "Time when the user last logged in"
},
"lastLogout": {
"type": ["string", "null"],
"format": "date-time",
"description": "Time when the user last logged out"
},
"competence": {
"type": ["string", "null"],
"description": "User's competence"
},
"department": {
"type": ["string", "null"],
"description": "Name of the user's department"
},
"balanceAdjustment": {
"type": ["integer", "null"],
"description": "User's balance adjustement in minutes"
},
"teams": {
"type": "integer",
"description": "Number of teams the user belongs to"
},
"photo": {
"type": ["string", "null"],
"description": "Link to the user's photo"
},
"balanceMaximum": {
"type": ["integer", "null"],
"description": "Maximum balance for the user"
},
"primaryPhone": {
"type": ["string", "null"],
"description": "User's primary phone number"
},
"superior": {
"type": ["integer", "null"],
"description": "ID of the user's superior"
},
"externalIdentifier": {
"type": ["string", "integer", "null"],
"description": "External identifier of user"
}
}
}
}
}
Example:
[
{
"teamName": "First team (update name e.g. your company name)",
"lastLogin": "2013-11-08T15:37:47.020+0200",
"lastName": "last name",
"role": 5,
"accountName": "Sample account",
"contractType": 0,
"skin": 190,
"title": "",
"effortUnit": 2,
"competence": null,
"id": 356,
"department": "",
"email": "firstname.lastname@planmill.com",
"externalIdentifier": null,
"lastLogout": "2013-11-08T17:38:43.777+0200",
"hireDate": "2014-01-01T00:00:00.000+0200",
"balanceAdjustment": null,
"teams": 1,
"photo": null,
"timeZone": "Europe/Helsinki",
"team": 1041,
"userName": "first.user",
"languageCode": "en",
"passive": 0,
"balanceMaximum": null,
"primaryPhone": "",
"firstName": "First",
"calendars": "FI/Full-time: 37,5 h/wk (01.02.2019 - 31.12.2022)",
"capacityCalendarId": 2345,
"roleName": "Sales",
"departDate": null,
"currencyCode": "EUR",
"account": 353
},
{
"teamName": null,
"lastLogin": null,
"lastName": "Elon",
"role": 4,
"accountName": "Sample account",
"contractType": 0,
"skin": 190,
"title": "",
"effortUnit": 2,
"competence": null,
"id": 1480,
"department": "",
"email": "",
"externalIdentifier": null,
"lastLogout": null,
"hireDate": "2019-03-01T00:00:00.000+0200",
"balanceAdjustment": null,
"teams": 0,
"photo": null,
"timeZone": "Europe/Helsinki",
"team": null,
"userName": "user name",
"languageCode": "en",
"passive": 0,
"balanceMaximum": null,
"primaryPhone": "",
"firstName": "",
"calendars": "FI/Full-time: 37,5 h/wk (01.02.2019 - 31.12.2022)",
"capacityCalendarId": 2346,
"roleName": "Team",
"departDate": null,
"currencyCode": "EUR",
"account": 353
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /users
Add a new user to PlanMill. See users/meta for list of columns and formats.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all user entities",
"oneOf": [
{
"type": "array",
"items": { "$ref": "#/definitions/userArray" }
},
{
"$ref": "#/definitions/userSingle"
}
],
"definitions": {
"userSingle": {
"type": "object",
"required": [ "lastName", "account", "userName", "role", "firstName"],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal ID of the user"
},
"firstName": {
"type": "string",
"maxLength": 80,
"description": "First name of a user"
},
"lastName": {
"type": "string",
"maxLength": 80,
"description": "Last name of a user"
},
"passive": {
"type": "integer",
"description": "User status can be active or passive"
},
"contractType": {
"type": ["integer", "null"],
"description": "Enumeration of contract type of the user. 0=Permanent - full-time, 2=Permanent - part-time, 3=Trainee, 4=Subcontractor, 5=Army leave, 6=Study leave, 7=Maternity/Paternity leave, 8=Hired - full-time, 9=Hired - part-time, 10=Hired - temporarily, 11=Partner, 12=Customer, 13=Board"
},
"userName": {
"type": ["string", "integer"],
"maxLength": 255,
"description": "Username of a user"
},
"password": {
"type": ["string", "null"],
"maxLength": 80,
"description": "Password of a user"
},
"confirmPassword": {
"type": ["string", "null"],
"maxLength": 80,
"description": "Confirm password of a user"
},
"account": {
"type": ["integer", "null"],
"description": "Id of user's account"
},
"currency": {
"type": ["integer", "null"],
"description": "Currency id of user's account"
},
"language": {
"type": ["integer", "null"],
"description": "Language id of user's account"
},
"skin": {
"type": ["integer", "null"],
"description": "Skin/Theme id of user's account"
},
"numberOfTabsShown": {
"type": ["integer", "null"],
"description": "Number of tabs displayed in a row"
},
"enableGroupTabs": {
"type": ["integer", "null"],
"description": "Enable and disable group tabs. 0=No, 1=Yes"
},
"role": {
"type": ["integer", "null"],
"description": "Basic Roles: 1=Administrator, 2=Power, 3=Pro, 4=Team, 5=Sales"
},
"effortUnit": {
"type": ["integer", "null"],
"description": "Enumeration of unit to record work time. 1=Minutes, 2=Hours, 3=Days, 4=Weeks"
},
"timeZone": {
"type": ["string", "null"],
"description": "Time zone of user"
},
"calendars": {
"type": ["integer", "null"],
"description": "calendar id of a user. It is required only when the contractType is any of the following: 0,2,3,4,8,9,10"
},
"goalType": {
"type": ["integer", "null"],
"description": "Enumeration of goal type of user. 1=Hours, 2=Percent 3=Revenue"
},
"goalPeriod": {
"type": ["integer", "null"],
"description": "Enumeration of goal period of user. 0=-, 1=Hours, 2=Percent 3=Revenue"
},
"hireDate": {
"type": ["string", "null"],
"format": "date-time"
},
"departDate": {
"type": ["string", "null"],
"format": "date-time"
},
"title": {
"type": ["string", "null"],
"description": "Title of user"
},
"languageCode": {
"type": ["string", "null"],
"description": "Language code"
},
"email": {
"type": ["string", "null"],
"description": "Email address of user"
},
"BIC": {
"type": ["string", "null"],
"description": ""
},
"balanceAdjustment": {
"type": ["integer", "null"],
"description": ""
},
"balanceMaximum": {
"type": ["integer", "null"],
"description": ""
},
"bankAccount": {
"type": ["string", "null"],
"description": ""
},
"blog": {
"type": ["string", "null"],
"description": ""
},
"competence": {
"type": ["string", "null"],
"description": ""
},
"competenceLevel": {
"type": ["integer", "null"],
"description": ""
},
"department": {
"type": ["string", "null"],
"description": ""
},
"description": {
"type": ["string", "null"],
"description": ""
},
"facebook": {
"type": ["string", "null"],
"description": ""
},
"fax": {
"type": ["string", "null"],
"description": ""
},
"goalValue": {
"type": ["integer", "null"],
"description": ""
},
"googleTalk": {
"type": ["string", "null"],
"description": ""
},
"linkedIn": {
"type": ["string", "null"],
"description": ""
},
"mobilePhone": {
"type": ["string", "null"],
"description": ""
},
"nationality": {
"type": ["integer", "null"],
"description": ""
},
"paymentTeam": {
"type": ["integer", "null"],
"description": ""
},
"primaryAddress": {
"type": ["string", "null"],
"description": ""
},
"secondaryAddress": {
"type": ["string", "null"],
"description": ""
},
"primaryCity": {
"type": ["string", "null"],
"description": ""
},
"secondaryCity": {
"type": ["string", "null"],
"description": ""
},
"primaryCountry": {
"type": ["integer", "null"],
"description": ""
},
"secondaryCountry": {
"type": ["integer", "null"],
"description": ""
},
"primaryDepartment": {
"type": ["string", "null"],
"description": ""
},
"secondaryDepartment": {
"type": ["string", "null"],
"description": ""
},
"primaryPostalCode": {
"type": ["string", "null"],
"description": ""
},
"secondaryPostalCode": {
"type": ["string", "null"],
"description": ""
},
"primaryState": {
"type": ["string", "null"],
"description": ""
},
"secondaryState": {
"type": ["string", "null"],
"description": ""
},
"primaryStreet": {
"type": ["string", "null"],
"description": ""
},
"secondaryStreet": {
"type": ["string", "null"],
"description": ""
},
"projectWikiUserGroup": {
"type": ["string", "null"],
"description": ""
},
"shippingAddress": {
"type": ["string", "null"],
"description": ""
},
"shippingCity": {
"type": ["string", "null"],
"description": ""
},
"shippingCountry": {
"type": ["integer", "null"],
"description": ""
},
"shippingDepartment": {
"type": ["string", "null"],
"description": ""
},
"shippingPostalCode": {
"type": ["string", "null"],
"description": ""
},
"shippingState": {
"type": ["string", "null"],
"description": ""
},
"shippingStreet": {
"type": ["string", "null"],
"description": ""
},
"skype": {
"type": ["string", "null"],
"description": ""
},
"externalIdentifier": {
"type": ["string", "integer", "null"],
"description": "External identifier of user"
},
"superior": {
"type": ["integer", "null"],
"description": ""
},
"team": {
"type": ["integer", "null"],
"description": ""
},
"twitter": {
"type": ["string", "null"],
"description": ""
},
"workPhone": {
"type": ["string", "null"],
"description": ""
},
"photo": {
"type": ["string", "null"],
"description": ""
}
}
},
"userArray": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal ID of a user"
},
"firstName": {
"type": "string",
"maxLength": 80,
"description": "First name of a user"
},
"lastName": {
"type": "string",
"maxLength": 80,
"description": "Last name of a user"
},
"passive": {
"type": "integer",
"description": "User status can be active or passive"
},
"contractType": {
"type": ["integer", "null"],
"description": "Enumeration of contract type of the user. 0=Permanent - full-time, 2=Permanent - part-time, 3=Trainee, 4=Subcontractor, 5=Army leave, 6=Study leave, 7=Maternity/Paternity leave, 8=Hired - full-time, 9=Hired - part-time, 10=Hired - temporarily, 11=Partner, 12=Customer, 13=Board"
},
"userName": {
"type": ["string", "integer"],
"maxLength": 255,
"description": "Username of a user"
},
"account": {
"type": ["integer", "null"],
"description": "Id of user's account"
},
"accountName": {
"type": ["string", "null"],
"description": "Name of user's account"
},
"externalIdentifier": {
"type": ["string", "null"],
"description": "External identifier of user"
},
"currencyCode": {
"type": ["string", "null"],
"description": "Currency code of user's account"
},
"languageCode": {
"type": ["string", "null"],
"description": "Language code of user's account"
},
"skin": {
"type": ["integer", "null"],
"description": "Skin/Theme id of user's account"
},
"role": {
"type": ["integer", "null"],
"description": "Basic Roles: 1=Administrator, 2=Power, 3=Pro, 4=Team, 5=Sales"
},
"roleName": {
"type": ["string", "null"],
"description": "Name of the role the user belongs to"
},
"effortUnit": {
"type": ["integer", "null"],
"description": "Enumeration of unit to record work time. 1=Minutes, 2=Hours, 3=Days, 4=Weeks"
},
"timeZone": {
"type": ["string", "null"],
"description": "Time zone of user"
},
"calendars": {
"type": ["string", "null"],
"description": "List of all calendars the user has"
},
"capacityCalendarId": {
"type": ["integer", "null"],
"description": "calendar id of a user."
},
"hireDate": {
"type": ["string", "null"],
"format": "date-time"
},
"departDate": {
"type": ["string", "null"],
"format": "date-time"
},
"title": {
"type": ["string", "null"],
"description": "Title of user"
},
"email": {
"type": ["string", "null"],
"description": "Email address of user"
},
"team": {
"type": ["integer", "null"],
"description": "ID of the user's primary team"
},
"teamName": {
"type": ["string", "null"],
"description": "Name of the user's primary team"
},
"lastLogin": {
"type": ["string", "null"],
"format": "date-time",
"description": "Time when the user last logged in"
},
"lastLogout": {
"type": ["string", "null"],
"format": "date-time",
"description": "Time when the user last logged out"
},
"competence": {
"type": ["string", "null"],
"description": "User's competence"
},
"department": {
"type": ["string", "null"],
"description": "Name of the user's department"
},
"balanceAdjustment": {
"type": ["integer", "null"],
"description": "User's balance adjustement in minutes"
},
"teams": {
"type": "integer",
"description": "Number of teams the user belongs to"
},
"photo": {
"type": ["string", "null"],
"description": "Link to the user's photo"
},
"balanceMaximum": {
"type": ["integer", "null"],
"description": "Maximum balance for the user"
},
"primaryPhone": {
"type": ["string", "null"],
"description": "User's primary phone number"
},
"superior": {
"type": ["integer", "null"],
"description": "ID of the user's superior"
},
"externalIdentifier": {
"type": ["string", "integer", "null"],
"description": "External identifier of user"
}
}
}
}
}
Example:
Note:
HireDate: required for permanent calendars.
{
"shippingCity": "Espoo",
"goalValue": 2250,
"contractType": 0,
"language": 2,
"shippingPostalCode": 3641,
"blog": "http://www.blog.com",
"password": null,
"twitter": "http://www.twitter.com",
"numberOfTabsShown": 14,
"shippingCountry": 73,
"primaryDepartment": "Hämeentie 19",
"id": 3081,
"fax": "+358-466-5556951",
"primaryCountry": 73,
"bankAccount": "Nordea Suomi",
"balanceAdjustment": null,
"goal": 4154,
"timeZone": "Europe/Helsinki",
"linkedIn": "http://www.linkedin.com",
"projectWikiUserGroup": null,
"paymentTeam": 4150,
"photoAttachment": null,
"languageCode": "en",
"balanceMaximum": 600,
"firstName": "Adam",
"competenceLevel": null,
"mobilePhone": "+358-466-5556951",
"nationality": 199,
"shippingState": "",
"departDate": null,
"primaryAddress": 52,
"goalPeriod": 1,
"lastName": "Tester",
"primaryState": null,
"role": 1,
"primaryPostalCode": 500,
"shippingAddress": "HR Department",
"skin": 190,
"description": "<p>test description</p>",
"title": "Software Engineer",
"effortUnit": 2,
"primaryCity": "Helsinki",
"competence": null,
"skype": "skpe_id",
"externalIdentifier": null,
"confirmPassword": null,
"currency": 1,
"department": "Software Development",
"enableGroupTabs": 0,
"BIC": "NDEAFIHH",
"email": "dam.test@planmill.com",
"goalType": 1,
"hireDate": "2014-01-01T00:00:00.000+0200",
"primaryAddress": null,
"facebook": "http://www.facebook.com",
"team": 4150,
"userName": "dam.test",
"passive": 0,
"superior": null,
"calendars": "60",
"shippingAddress": "Kuitinkatu 2",
"workPhone": "+358 10 322 9110",
"googleTalk": "gtalk_id",
"shippingDepartment": "First Department",
"account": 51
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for users. Includes resource's fields names and type and related filters
View details of a single meta.
get /users/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"filters": [
{
"type": "string",
"name": "freetextsearch",
"caption": ""
},
{
"type": "string",
"name": "viewtemplate",
"value": "0",
"caption": "View by",
"values": {
"0": "All active users",
"1": "All inactive users",
"2": "All users",
"3": "All recently created users - last 7 days",
"4": "All recently modified users - last 7 days",
"5": "My teams' members",
"6": "My recently created users - last 7 days",
"7": "My recently modified users - last 7 days",
"10": "All recently created users - last 30 days",
"11": "All recently modified users - last 30 days",
"12": "All recently created users - this month",
"13": "All recently created users - last month",
"14": "All recently modified users - this month",
"15": "All recently modified users - last month"
}
},
{
"type": "string",
"name": "rowcount",
"value": "100",
"caption": "Rows",
"values": {
"25": "25",
"50": "50",
"75": "75",
"100": "100",
"150": "150",
"250": "250"
}
},
{
"type": "multivalue",
"name": "account",
"value": "-1",
"caption": "Organization",
"values": {
"51": "PlanMill Oy",
"353": "Sample account",
"-1": "All"
}
},
{
"type": "multivalue",
"name": "PersonHasTeam.TeamId",
"value": "-1",
"caption": "Primary team",
"values": {
"1041": "First team (update name e.g. your company name)",
"-1": "All"
}
},
{
"type": "multivalue",
"name": "contractType",
"value": "-1",
"caption": "Type",
"values": {
"0": "Permanent - full-time",
"-1": "All"
}
},
{
"type": "multivalue",
"name": "Role.Id",
"value": "-1",
"caption": "Role",
"values": {
"1": "Administrator (1/1)",
"2": "Power",
"4": "Team",
"5": "Sales",
"-1": "All"
}
},
{
"type": "multivalue",
"name": "Location.City",
"value": "-1",
"caption": "City",
"values": {
"-1": "All",
"Helsinki": "Helsinki"
}
},
{
"type": "multivalue",
"name": "Location.CountryId",
"value": "-1",
"caption": "Country",
"values": {
"73": "Finland",
"-1": "All"
}
},
{
"type": "multivalue",
"name": "superior",
"value": "-1",
"caption": "Superior",
"values": {
"-1": "All"
}
}
],
"fields": {
"teamName": {
"format": "text",
"caption": "Primary team"
},
"lastLogin": {
"format": "longdate",
"caption": "Last logged in"
},
"lastName": {
"format": "",
"caption": null
},
"role": {
"format": "text",
"caption": "Role.Id"
},
"accountName": {
"format": "text",
"caption": "Organization"
},
"contractType": {
"values": {
"0": "Permanent - full-time",
"2": "Permanent - part-time",
"3": "Trainee",
"4": "Subcontractor",
"5": "Army leave",
"6": "Study leave",
"7": "Maternity/Paternity leave",
"8": "Hired - full-time",
"9": "Hired - part-time",
"10": "Hired - temporarily",
"11": "Partner",
"12": "Customer",
"13": "Board"
},
"format": "Enumeration values.Employee directory.Contact.Employee status",
"caption": "Type"
},
"skin": {
"values": {
"1": "Forest",
"2": "Made Of Steel",
"3": "Gold Rush",
"4": "Bubbles",
"5": "Fall",
"6": "Through A Rock",
"7": "Wave",
"8": "Grey Horizon",
"9": "Winter",
"10": "Beach Holiday",
"190": "PlanMill Blue",
"200": "Seed Of Growth",
"210": "Red Carpet",
"220": "Rose-Tinted Glasses",
"230": "Oceans Of Calm",
"240": "Vision Quest",
"optgroup": "Original look"
},
"format": "Enumeration values.System.Theme",
"caption": "Theme"
},
"title": {
"format": "text",
"caption": "Title"
},
"effortUnit": {
"values": {
"1": "Minutes",
"2": "Hours",
"3": "Days",
"4": "Weeks",
"5": "Months",
"6": "Quarters",
"7": "Thirds",
"8": "Half years",
"9": "Years",
"10": "5 years",
"11": "10 years"
},
"format": "Enumeration values.Task.Effort units",
"caption": "Time unit"
},
"competence": {
"format": "text",
"caption": "Competences"
},
"id": {
"format": "",
"caption": null
},
"department": {
"format": "text",
"caption": "Department"
},
"email": {
"format": "emaillink",
"caption": "Email"
},
"lastLogout": {
"format": "longdate",
"caption": "Last logged out"
},
"hireDate": {
"format": "shortdate",
"caption": "Hire date"
},
"balanceAdjustment": {
"format": "effortunit",
"caption": "Balance adjust"
},
"teams": {
"format": "number",
"caption": "Teams"
},
"photo": {
"format": "fileicon",
"caption": "iconmap(ui-icon-person)"
},
"timeZone": {
"format": "text",
"caption": "Time zone"
},
"team": {
"format": "text",
"caption": "Team.Id"
},
"userName": {
"format": "text",
"caption": "User name"
},
"languageCode": {
"values": {
"de": "de",
"de-DE": "de-DE",
"en-CA": "en-CA",
"en-US": "en-US",
"fi": "fi",
"sv": "sv",
"pt": "pt",
"pt-BR": "pt-BR",
"sv-FI": "sv-FI",
"en": "en",
"et": "et",
"nb": "nb",
"en-BR": "en-BR",
"en-SG": "en-SG",
"da": "da",
"nl": "nl"
},
"format": "Enumeration values.System.Language",
"caption": "Language"
},
"passive": {
"values": {
"0": "Active",
"1": "Passive"
},
"format": "Enumeration values.Employee directory.Contact.Passive",
"caption": "Status"
},
"balanceMaximum": {
"format": "effortunit",
"caption": "Balance maximum"
},
"primaryPhone": {
"format": "text",
"caption": "Primary phone"
},
"firstName": {
"format": "",
"caption": null
},
"calendars": {
"format": "text",
"caption": "Calendars"
},
"roleName": {
"format": "text",
"caption": "Role"
},
"departDate": {
"format": "shortdate",
"caption": "Depart date"
},
"currencyCode": {
"format": "text",
"caption": "Currency"
},
"account": {
"format": "text",
"caption": "Account.Id"
}
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single user in PlanMill.
View details of a single user. See users/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Update an existing resource user to PlanMill. See users/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Remove a user from PlanMill.
get /users/{user_id}
View details of a single user. See users/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- user_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all user entities",
"oneOf": [
{
"type": "array",
"items": { "$ref": "#/definitions/userArray" }
},
{
"$ref": "#/definitions/userSingle"
}
],
"definitions": {
"userSingle": {
"type": "object",
"required": [ "lastName", "account", "userName", "role", "firstName"],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal ID of the user"
},
"firstName": {
"type": "string",
"maxLength": 80,
"description": "First name of a user"
},
"lastName": {
"type": "string",
"maxLength": 80,
"description": "Last name of a user"
},
"passive": {
"type": "integer",
"description": "User status can be active or passive"
},
"contractType": {
"type": ["integer", "null"],
"description": "Enumeration of contract type of the user. 0=Permanent - full-time, 2=Permanent - part-time, 3=Trainee, 4=Subcontractor, 5=Army leave, 6=Study leave, 7=Maternity/Paternity leave, 8=Hired - full-time, 9=Hired - part-time, 10=Hired - temporarily, 11=Partner, 12=Customer, 13=Board"
},
"userName": {
"type": ["string", "integer"],
"maxLength": 255,
"description": "Username of a user"
},
"password": {
"type": ["string", "null"],
"maxLength": 80,
"description": "Password of a user"
},
"confirmPassword": {
"type": ["string", "null"],
"maxLength": 80,
"description": "Confirm password of a user"
},
"account": {
"type": ["integer", "null"],
"description": "Id of user's account"
},
"currency": {
"type": ["integer", "null"],
"description": "Currency id of user's account"
},
"language": {
"type": ["integer", "null"],
"description": "Language id of user's account"
},
"skin": {
"type": ["integer", "null"],
"description": "Skin/Theme id of user's account"
},
"numberOfTabsShown": {
"type": ["integer", "null"],
"description": "Number of tabs displayed in a row"
},
"enableGroupTabs": {
"type": ["integer", "null"],
"description": "Enable and disable group tabs. 0=No, 1=Yes"
},
"role": {
"type": ["integer", "null"],
"description": "Basic Roles: 1=Administrator, 2=Power, 3=Pro, 4=Team, 5=Sales"
},
"effortUnit": {
"type": ["integer", "null"],
"description": "Enumeration of unit to record work time. 1=Minutes, 2=Hours, 3=Days, 4=Weeks"
},
"timeZone": {
"type": ["string", "null"],
"description": "Time zone of user"
},
"calendars": {
"type": ["integer", "null"],
"description": "calendar id of a user. It is required only when the contractType is any of the following: 0,2,3,4,8,9,10"
},
"goalType": {
"type": ["integer", "null"],
"description": "Enumeration of goal type of user. 1=Hours, 2=Percent 3=Revenue"
},
"goalPeriod": {
"type": ["integer", "null"],
"description": "Enumeration of goal period of user. 0=-, 1=Hours, 2=Percent 3=Revenue"
},
"hireDate": {
"type": ["string", "null"],
"format": "date-time"
},
"departDate": {
"type": ["string", "null"],
"format": "date-time"
},
"title": {
"type": ["string", "null"],
"description": "Title of user"
},
"languageCode": {
"type": ["string", "null"],
"description": "Language code"
},
"email": {
"type": ["string", "null"],
"description": "Email address of user"
},
"BIC": {
"type": ["string", "null"],
"description": ""
},
"balanceAdjustment": {
"type": ["integer", "null"],
"description": ""
},
"balanceMaximum": {
"type": ["integer", "null"],
"description": ""
},
"bankAccount": {
"type": ["string", "null"],
"description": ""
},
"blog": {
"type": ["string", "null"],
"description": ""
},
"competence": {
"type": ["string", "null"],
"description": ""
},
"competenceLevel": {
"type": ["integer", "null"],
"description": ""
},
"department": {
"type": ["string", "null"],
"description": ""
},
"description": {
"type": ["string", "null"],
"description": ""
},
"facebook": {
"type": ["string", "null"],
"description": ""
},
"fax": {
"type": ["string", "null"],
"description": ""
},
"goalValue": {
"type": ["integer", "null"],
"description": ""
},
"googleTalk": {
"type": ["string", "null"],
"description": ""
},
"linkedIn": {
"type": ["string", "null"],
"description": ""
},
"mobilePhone": {
"type": ["string", "null"],
"description": ""
},
"nationality": {
"type": ["integer", "null"],
"description": ""
},
"paymentTeam": {
"type": ["integer", "null"],
"description": ""
},
"primaryAddress": {
"type": ["string", "null"],
"description": ""
},
"secondaryAddress": {
"type": ["string", "null"],
"description": ""
},
"primaryCity": {
"type": ["string", "null"],
"description": ""
},
"secondaryCity": {
"type": ["string", "null"],
"description": ""
},
"primaryCountry": {
"type": ["integer", "null"],
"description": ""
},
"secondaryCountry": {
"type": ["integer", "null"],
"description": ""
},
"primaryDepartment": {
"type": ["string", "null"],
"description": ""
},
"secondaryDepartment": {
"type": ["string", "null"],
"description": ""
},
"primaryPostalCode": {
"type": ["string", "null"],
"description": ""
},
"secondaryPostalCode": {
"type": ["string", "null"],
"description": ""
},
"primaryState": {
"type": ["string", "null"],
"description": ""
},
"secondaryState": {
"type": ["string", "null"],
"description": ""
},
"primaryStreet": {
"type": ["string", "null"],
"description": ""
},
"secondaryStreet": {
"type": ["string", "null"],
"description": ""
},
"projectWikiUserGroup": {
"type": ["string", "null"],
"description": ""
},
"shippingAddress": {
"type": ["string", "null"],
"description": ""
},
"shippingCity": {
"type": ["string", "null"],
"description": ""
},
"shippingCountry": {
"type": ["integer", "null"],
"description": ""
},
"shippingDepartment": {
"type": ["string", "null"],
"description": ""
},
"shippingPostalCode": {
"type": ["string", "null"],
"description": ""
},
"shippingState": {
"type": ["string", "null"],
"description": ""
},
"shippingStreet": {
"type": ["string", "null"],
"description": ""
},
"skype": {
"type": ["string", "null"],
"description": ""
},
"externalIdentifier": {
"type": ["string", "integer", "null"],
"description": "External identifier of user"
},
"superior": {
"type": ["integer", "null"],
"description": ""
},
"team": {
"type": ["integer", "null"],
"description": ""
},
"twitter": {
"type": ["string", "null"],
"description": ""
},
"workPhone": {
"type": ["string", "null"],
"description": ""
},
"photo": {
"type": ["string", "null"],
"description": ""
}
}
},
"userArray": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal ID of a user"
},
"firstName": {
"type": "string",
"maxLength": 80,
"description": "First name of a user"
},
"lastName": {
"type": "string",
"maxLength": 80,
"description": "Last name of a user"
},
"passive": {
"type": "integer",
"description": "User status can be active or passive"
},
"contractType": {
"type": ["integer", "null"],
"description": "Enumeration of contract type of the user. 0=Permanent - full-time, 2=Permanent - part-time, 3=Trainee, 4=Subcontractor, 5=Army leave, 6=Study leave, 7=Maternity/Paternity leave, 8=Hired - full-time, 9=Hired - part-time, 10=Hired - temporarily, 11=Partner, 12=Customer, 13=Board"
},
"userName": {
"type": ["string", "integer"],
"maxLength": 255,
"description": "Username of a user"
},
"account": {
"type": ["integer", "null"],
"description": "Id of user's account"
},
"accountName": {
"type": ["string", "null"],
"description": "Name of user's account"
},
"externalIdentifier": {
"type": ["string", "null"],
"description": "External identifier of user"
},
"currencyCode": {
"type": ["string", "null"],
"description": "Currency code of user's account"
},
"languageCode": {
"type": ["string", "null"],
"description": "Language code of user's account"
},
"skin": {
"type": ["integer", "null"],
"description": "Skin/Theme id of user's account"
},
"role": {
"type": ["integer", "null"],
"description": "Basic Roles: 1=Administrator, 2=Power, 3=Pro, 4=Team, 5=Sales"
},
"roleName": {
"type": ["string", "null"],
"description": "Name of the role the user belongs to"
},
"effortUnit": {
"type": ["integer", "null"],
"description": "Enumeration of unit to record work time. 1=Minutes, 2=Hours, 3=Days, 4=Weeks"
},
"timeZone": {
"type": ["string", "null"],
"description": "Time zone of user"
},
"calendars": {
"type": ["string", "null"],
"description": "List of all calendars the user has"
},
"capacityCalendarId": {
"type": ["integer", "null"],
"description": "calendar id of a user."
},
"hireDate": {
"type": ["string", "null"],
"format": "date-time"
},
"departDate": {
"type": ["string", "null"],
"format": "date-time"
},
"title": {
"type": ["string", "null"],
"description": "Title of user"
},
"email": {
"type": ["string", "null"],
"description": "Email address of user"
},
"team": {
"type": ["integer", "null"],
"description": "ID of the user's primary team"
},
"teamName": {
"type": ["string", "null"],
"description": "Name of the user's primary team"
},
"lastLogin": {
"type": ["string", "null"],
"format": "date-time",
"description": "Time when the user last logged in"
},
"lastLogout": {
"type": ["string", "null"],
"format": "date-time",
"description": "Time when the user last logged out"
},
"competence": {
"type": ["string", "null"],
"description": "User's competence"
},
"department": {
"type": ["string", "null"],
"description": "Name of the user's department"
},
"balanceAdjustment": {
"type": ["integer", "null"],
"description": "User's balance adjustement in minutes"
},
"teams": {
"type": "integer",
"description": "Number of teams the user belongs to"
},
"photo": {
"type": ["string", "null"],
"description": "Link to the user's photo"
},
"balanceMaximum": {
"type": ["integer", "null"],
"description": "Maximum balance for the user"
},
"primaryPhone": {
"type": ["string", "null"],
"description": "User's primary phone number"
},
"superior": {
"type": ["integer", "null"],
"description": "ID of the user's superior"
},
"externalIdentifier": {
"type": ["string", "integer", "null"],
"description": "External identifier of user"
}
}
}
}
}
Example:
Note:
HireDate: required for permanent calendars.
{
"shippingCity": "Espoo",
"goalValue": 2250,
"contractType": 0,
"language": 2,
"shippingPostalCode": 3641,
"blog": "http://www.blog.com",
"password": null,
"twitter": "http://www.twitter.com",
"numberOfTabsShown": 14,
"shippingCountry": 73,
"primaryDepartment": "Hämeentie 19",
"id": 3081,
"fax": "+358-466-5556951",
"primaryCountry": 73,
"bankAccount": "Nordea Suomi",
"balanceAdjustment": null,
"goal": 4154,
"timeZone": "Europe/Helsinki",
"linkedIn": "http://www.linkedin.com",
"projectWikiUserGroup": null,
"paymentTeam": 4150,
"photoAttachment": null,
"languageCode": "en",
"balanceMaximum": 600,
"firstName": "Adam",
"competenceLevel": null,
"mobilePhone": "+358-466-5556951",
"nationality": 199,
"shippingState": "",
"departDate": null,
"primaryAddress": 52,
"goalPeriod": 1,
"lastName": "Tester",
"primaryState": null,
"role": 1,
"primaryPostalCode": 500,
"shippingAddress": "HR Department",
"skin": 190,
"description": "<p>test description</p>",
"title": "Software Engineer",
"effortUnit": 2,
"primaryCity": "Helsinki",
"competence": null,
"skype": "skpe_id",
"externalIdentifier": null,
"confirmPassword": null,
"currency": 1,
"department": "Software Development",
"enableGroupTabs": 0,
"BIC": "NDEAFIHH",
"email": "dam.test@planmill.com",
"goalType": 1,
"hireDate": "2014-01-01T00:00:00.000+0200",
"primaryAddress": null,
"facebook": "http://www.facebook.com",
"team": 4150,
"userName": "dam.test",
"passive": 0,
"superior": null,
"calendars": "60",
"shippingAddress": "Kuitinkatu 2",
"workPhone": "+358 10 322 9110",
"googleTalk": "gtalk_id",
"shippingDepartment": "First Department",
"account": 51
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /users/{user_id}
Update an existing resource user to PlanMill. See users/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- user_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all user entities",
"oneOf": [
{
"type": "array",
"items": { "$ref": "#/definitions/userArray" }
},
{
"$ref": "#/definitions/userSingle"
}
],
"definitions": {
"userSingle": {
"type": "object",
"required": [ "lastName", "account", "userName", "role", "firstName"],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal ID of the user"
},
"firstName": {
"type": "string",
"maxLength": 80,
"description": "First name of a user"
},
"lastName": {
"type": "string",
"maxLength": 80,
"description": "Last name of a user"
},
"passive": {
"type": "integer",
"description": "User status can be active or passive"
},
"contractType": {
"type": ["integer", "null"],
"description": "Enumeration of contract type of the user. 0=Permanent - full-time, 2=Permanent - part-time, 3=Trainee, 4=Subcontractor, 5=Army leave, 6=Study leave, 7=Maternity/Paternity leave, 8=Hired - full-time, 9=Hired - part-time, 10=Hired - temporarily, 11=Partner, 12=Customer, 13=Board"
},
"userName": {
"type": ["string", "integer"],
"maxLength": 255,
"description": "Username of a user"
},
"password": {
"type": ["string", "null"],
"maxLength": 80,
"description": "Password of a user"
},
"confirmPassword": {
"type": ["string", "null"],
"maxLength": 80,
"description": "Confirm password of a user"
},
"account": {
"type": ["integer", "null"],
"description": "Id of user's account"
},
"currency": {
"type": ["integer", "null"],
"description": "Currency id of user's account"
},
"language": {
"type": ["integer", "null"],
"description": "Language id of user's account"
},
"skin": {
"type": ["integer", "null"],
"description": "Skin/Theme id of user's account"
},
"numberOfTabsShown": {
"type": ["integer", "null"],
"description": "Number of tabs displayed in a row"
},
"enableGroupTabs": {
"type": ["integer", "null"],
"description": "Enable and disable group tabs. 0=No, 1=Yes"
},
"role": {
"type": ["integer", "null"],
"description": "Basic Roles: 1=Administrator, 2=Power, 3=Pro, 4=Team, 5=Sales"
},
"effortUnit": {
"type": ["integer", "null"],
"description": "Enumeration of unit to record work time. 1=Minutes, 2=Hours, 3=Days, 4=Weeks"
},
"timeZone": {
"type": ["string", "null"],
"description": "Time zone of user"
},
"calendars": {
"type": ["integer", "null"],
"description": "calendar id of a user. It is required only when the contractType is any of the following: 0,2,3,4,8,9,10"
},
"goalType": {
"type": ["integer", "null"],
"description": "Enumeration of goal type of user. 1=Hours, 2=Percent 3=Revenue"
},
"goalPeriod": {
"type": ["integer", "null"],
"description": "Enumeration of goal period of user. 0=-, 1=Hours, 2=Percent 3=Revenue"
},
"hireDate": {
"type": ["string", "null"],
"format": "date-time"
},
"departDate": {
"type": ["string", "null"],
"format": "date-time"
},
"title": {
"type": ["string", "null"],
"description": "Title of user"
},
"languageCode": {
"type": ["string", "null"],
"description": "Language code"
},
"email": {
"type": ["string", "null"],
"description": "Email address of user"
},
"BIC": {
"type": ["string", "null"],
"description": ""
},
"balanceAdjustment": {
"type": ["integer", "null"],
"description": ""
},
"balanceMaximum": {
"type": ["integer", "null"],
"description": ""
},
"bankAccount": {
"type": ["string", "null"],
"description": ""
},
"blog": {
"type": ["string", "null"],
"description": ""
},
"competence": {
"type": ["string", "null"],
"description": ""
},
"competenceLevel": {
"type": ["integer", "null"],
"description": ""
},
"department": {
"type": ["string", "null"],
"description": ""
},
"description": {
"type": ["string", "null"],
"description": ""
},
"facebook": {
"type": ["string", "null"],
"description": ""
},
"fax": {
"type": ["string", "null"],
"description": ""
},
"goalValue": {
"type": ["integer", "null"],
"description": ""
},
"googleTalk": {
"type": ["string", "null"],
"description": ""
},
"linkedIn": {
"type": ["string", "null"],
"description": ""
},
"mobilePhone": {
"type": ["string", "null"],
"description": ""
},
"nationality": {
"type": ["integer", "null"],
"description": ""
},
"paymentTeam": {
"type": ["integer", "null"],
"description": ""
},
"primaryAddress": {
"type": ["string", "null"],
"description": ""
},
"secondaryAddress": {
"type": ["string", "null"],
"description": ""
},
"primaryCity": {
"type": ["string", "null"],
"description": ""
},
"secondaryCity": {
"type": ["string", "null"],
"description": ""
},
"primaryCountry": {
"type": ["integer", "null"],
"description": ""
},
"secondaryCountry": {
"type": ["integer", "null"],
"description": ""
},
"primaryDepartment": {
"type": ["string", "null"],
"description": ""
},
"secondaryDepartment": {
"type": ["string", "null"],
"description": ""
},
"primaryPostalCode": {
"type": ["string", "null"],
"description": ""
},
"secondaryPostalCode": {
"type": ["string", "null"],
"description": ""
},
"primaryState": {
"type": ["string", "null"],
"description": ""
},
"secondaryState": {
"type": ["string", "null"],
"description": ""
},
"primaryStreet": {
"type": ["string", "null"],
"description": ""
},
"secondaryStreet": {
"type": ["string", "null"],
"description": ""
},
"projectWikiUserGroup": {
"type": ["string", "null"],
"description": ""
},
"shippingAddress": {
"type": ["string", "null"],
"description": ""
},
"shippingCity": {
"type": ["string", "null"],
"description": ""
},
"shippingCountry": {
"type": ["integer", "null"],
"description": ""
},
"shippingDepartment": {
"type": ["string", "null"],
"description": ""
},
"shippingPostalCode": {
"type": ["string", "null"],
"description": ""
},
"shippingState": {
"type": ["string", "null"],
"description": ""
},
"shippingStreet": {
"type": ["string", "null"],
"description": ""
},
"skype": {
"type": ["string", "null"],
"description": ""
},
"externalIdentifier": {
"type": ["string", "integer", "null"],
"description": "External identifier of user"
},
"superior": {
"type": ["integer", "null"],
"description": ""
},
"team": {
"type": ["integer", "null"],
"description": ""
},
"twitter": {
"type": ["string", "null"],
"description": ""
},
"workPhone": {
"type": ["string", "null"],
"description": ""
},
"photo": {
"type": ["string", "null"],
"description": ""
}
}
},
"userArray": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal ID of a user"
},
"firstName": {
"type": "string",
"maxLength": 80,
"description": "First name of a user"
},
"lastName": {
"type": "string",
"maxLength": 80,
"description": "Last name of a user"
},
"passive": {
"type": "integer",
"description": "User status can be active or passive"
},
"contractType": {
"type": ["integer", "null"],
"description": "Enumeration of contract type of the user. 0=Permanent - full-time, 2=Permanent - part-time, 3=Trainee, 4=Subcontractor, 5=Army leave, 6=Study leave, 7=Maternity/Paternity leave, 8=Hired - full-time, 9=Hired - part-time, 10=Hired - temporarily, 11=Partner, 12=Customer, 13=Board"
},
"userName": {
"type": ["string", "integer"],
"maxLength": 255,
"description": "Username of a user"
},
"account": {
"type": ["integer", "null"],
"description": "Id of user's account"
},
"accountName": {
"type": ["string", "null"],
"description": "Name of user's account"
},
"externalIdentifier": {
"type": ["string", "null"],
"description": "External identifier of user"
},
"currencyCode": {
"type": ["string", "null"],
"description": "Currency code of user's account"
},
"languageCode": {
"type": ["string", "null"],
"description": "Language code of user's account"
},
"skin": {
"type": ["integer", "null"],
"description": "Skin/Theme id of user's account"
},
"role": {
"type": ["integer", "null"],
"description": "Basic Roles: 1=Administrator, 2=Power, 3=Pro, 4=Team, 5=Sales"
},
"roleName": {
"type": ["string", "null"],
"description": "Name of the role the user belongs to"
},
"effortUnit": {
"type": ["integer", "null"],
"description": "Enumeration of unit to record work time. 1=Minutes, 2=Hours, 3=Days, 4=Weeks"
},
"timeZone": {
"type": ["string", "null"],
"description": "Time zone of user"
},
"calendars": {
"type": ["string", "null"],
"description": "List of all calendars the user has"
},
"capacityCalendarId": {
"type": ["integer", "null"],
"description": "calendar id of a user."
},
"hireDate": {
"type": ["string", "null"],
"format": "date-time"
},
"departDate": {
"type": ["string", "null"],
"format": "date-time"
},
"title": {
"type": ["string", "null"],
"description": "Title of user"
},
"email": {
"type": ["string", "null"],
"description": "Email address of user"
},
"team": {
"type": ["integer", "null"],
"description": "ID of the user's primary team"
},
"teamName": {
"type": ["string", "null"],
"description": "Name of the user's primary team"
},
"lastLogin": {
"type": ["string", "null"],
"format": "date-time",
"description": "Time when the user last logged in"
},
"lastLogout": {
"type": ["string", "null"],
"format": "date-time",
"description": "Time when the user last logged out"
},
"competence": {
"type": ["string", "null"],
"description": "User's competence"
},
"department": {
"type": ["string", "null"],
"description": "Name of the user's department"
},
"balanceAdjustment": {
"type": ["integer", "null"],
"description": "User's balance adjustement in minutes"
},
"teams": {
"type": "integer",
"description": "Number of teams the user belongs to"
},
"photo": {
"type": ["string", "null"],
"description": "Link to the user's photo"
},
"balanceMaximum": {
"type": ["integer", "null"],
"description": "Maximum balance for the user"
},
"primaryPhone": {
"type": ["string", "null"],
"description": "User's primary phone number"
},
"superior": {
"type": ["integer", "null"],
"description": "ID of the user's superior"
},
"externalIdentifier": {
"type": ["string", "integer", "null"],
"description": "External identifier of user"
}
}
}
}
}
Example:
Note:
HireDate: required for permanent calendars.
{
"shippingCity": "Espoo",
"goalValue": 2250,
"contractType": 0,
"language": 2,
"shippingPostalCode": 3641,
"blog": "http://www.blog.com",
"password": null,
"twitter": "http://www.twitter.com",
"numberOfTabsShown": 14,
"shippingCountry": 73,
"primaryDepartment": "Hämeentie 19",
"id": 3081,
"fax": "+358-466-5556951",
"primaryCountry": 73,
"bankAccount": "Nordea Suomi",
"balanceAdjustment": null,
"goal": 4154,
"timeZone": "Europe/Helsinki",
"linkedIn": "http://www.linkedin.com",
"projectWikiUserGroup": null,
"paymentTeam": 4150,
"photoAttachment": null,
"languageCode": "en",
"balanceMaximum": 600,
"firstName": "Adam",
"competenceLevel": null,
"mobilePhone": "+358-466-5556951",
"nationality": 199,
"shippingState": "",
"departDate": null,
"primaryAddress": 52,
"goalPeriod": 1,
"lastName": "Tester",
"primaryState": null,
"role": 1,
"primaryPostalCode": 500,
"shippingAddress": "HR Department",
"skin": 190,
"description": "<p>test description</p>",
"title": "Software Engineer",
"effortUnit": 2,
"primaryCity": "Helsinki",
"competence": null,
"skype": "skpe_id",
"externalIdentifier": null,
"confirmPassword": null,
"currency": 1,
"department": "Software Development",
"enableGroupTabs": 0,
"BIC": "NDEAFIHH",
"email": "dam.test@planmill.com",
"goalType": 1,
"hireDate": "2014-01-01T00:00:00.000+0200",
"primaryAddress": null,
"facebook": "http://www.facebook.com",
"team": 4150,
"userName": "dam.test",
"passive": 0,
"superior": null,
"calendars": "60",
"shippingAddress": "Kuitinkatu 2",
"workPhone": "+358 10 322 9110",
"googleTalk": "gtalk_id",
"shippingDepartment": "First Department",
"account": 51
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /users/{user_id}
Remove a user from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- user_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available attachments in PlanMill. This is a read-only collection.
Get a list of attachments
get /users/{user_id}/attachments
Get a list of attachments
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- user_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
[
{
"size": 8497,
"createdBy": 50,
"created": "2022-01-13T13:05:10.837+0200",
"name": "attached_file_test.txt",
"modified": "2022-01-13T13:18:25.353+0200",
"id": 1543
},
{
"size": 146169,
"createdBy": 50,
"created": "2022-01-13T13:18:25.353+0200",
"name": "attached_file.txt",
"modified": "2022-01-13T13:18:25.353+0200",
"id": 1545
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Attach existing file to PlanMill user.( Tips - use file id from api/1.5/tempfile )
View details of single attachment.
put /users/{user_id}/attachments/{id}
Attach existing file to PlanMill user.( Tips - use file id from api/1.5/tempfile )
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- user_id: required(string)
- id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
get /users/{user_id}/attachments/{id}
View details of single attachment.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- user_id: required(string)
- id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
Contents of file
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Get meta information for the updatable fields of the user.
View details of a single meta.
get /users/{user_id}/meta
View details of a single meta.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- user_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
{
"shippingCity": {
"type": "string",
"caption": "Secondary city",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"goalValue": {
"type": "string",
"caption": "Value",
"format": "double",
"description": "",
"values": null
},
"contractType": {
"type": "string",
"value": "0",
"caption": "Type",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Employee directory.Contact.Employee status",
"values": {
"Hired - temporarily": "10",
"Hired - part-time": "9",
"Customer": "12",
"Permanent - part-time": "2",
"Maternity/Paternity leave": "7",
"Permanent - full-time": "0",
"Board": "13",
"Trainee": "3",
"Study leave": "6",
"Hired - full-time": "8",
"Subcontractor": "4",
"Army leave": "5",
"Partner": "11"
}
},
"language": {
"type": "string",
"caption": "Mother tongue",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Employee directory.Contact.Mother tongue",
"values": {
"English": "3",
"Finnish": "1",
"German": "4",
"-": "0",
"Swedish": "2"
}
},
"shippingPostalCode": {
"type": "string",
"caption": "Secondary postal/Zip code",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"blog": {
"type": "string",
"caption": "Blog",
"format": "url",
"description": "",
"maxlength": "255",
"values": null
},
"password": {
"type": "string",
"caption": "New Password",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"twitter": {
"type": "string",
"caption": "Twitter",
"format": "url",
"description": "",
"maxlength": "255",
"values": null
},
"numberOfTabsShown": {
"type": "string",
"value": "14",
"caption": "Tabs shown",
"format": "int",
"description": "",
"values": null
},
"shippingCountry": {
"type": "string",
"caption": "Secondary country",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Location.CountryId",
"values": {
"Papua New Guinea": "165",
"Cambodia": "37",
"Paraguay": "166",
"Ã…land Islands": "236",
"Bahamas": "17",
"Solomon Islands": "188",
"Montserrat": "142",
"Mali": "130",
"Marshall Islands": "132",
"Guadeloupe": "239",
"Panama": "164",
"Virgin Islands, British": "27",
"Bonaire, Sint Eustatius and Saba": "263",
"Iran, Islamic Republic of": "98",
"Tanzania, United Republic of": "205",
"Argentina": "9",
"Seychelles": "183",
"Zambia": "233",
"Belize": "23",
"Bahrain": "19",
"-": "0",
"Guinea-Bissau": "89",
"Namibia": "146",
"Comoros": "50",
"Faroe Islands": "71",
"Finland": "73",
"Georgia": "79",
"French Southern territories": "258",
"Saint Kitts and Nevis": "194",
"Yemen": "235",
"Eritrea": "67",
"Puerto Rico": "171",
"Viet Nam": "225",
"Aruba": "11",
"Madagascar": "126",
"Svalbard and Jan Mayen": "254",
"Saint Martin": "251",
"South Georgia and the South Sandwich Islands": "253",
"Sweden": "199",
"Malawi": "127",
"Cocos (Keeling) Islands": "260",
"Andorra": "5",
"Liechtenstein": "122",
"Poland": "169",
"Congo-Kinshasa": "232",
"Bulgaria": "34",
"Jordan": "106",
"Tunisia": "211",
"Côte d'Ivoire": "103",
"Tuvalu": "214",
"United Arab Emirates": "217",
"Kenya": "108",
"French Polynesia": "202",
"Lebanon": "117",
"Djibouti": "62",
"Azerbaijan": "16",
"Cuba": "55",
"Czech Republic": "57",
"Saint Lucia": "250",
"Mauritania": "134",
"Guernsey": "240",
"Mayotte": "136",
"Korea, Republic of (South Korea)": "111",
"San Marino": "178",
"Israel": "101",
"Australia": "13",
"Tajikistan": "204",
"Other": "1000",
"Myanmar": "145",
"Cameroon": "38",
"Gibraltar": "82",
"Cyprus": "56",
"Northern Mariana Islands": "159",
"Malaysia": "128",
"Oman": "161",
"Iceland": "95",
"Armenia": "10",
"Macedonia, The former Yugoslav Republic of": "125",
"Gabon": "77",
"Luxembourg": "123",
"Brazil": "31",
"Turks and Caicos Islands": "255",
"Algeria": "3",
"Jersey": "247",
"Slovenia": "187",
"Sint Maarten (Part of Netherlands)": "262",
"Antigua and Barbuda": "8",
"Colombia": "49",
"Ecuador": "63",
"Lao People's Democratic Republic": "116",
"Vanuatu": "222",
"United States Minor Outlying Islands": "257",
"Honduras": "92",
"Italy": "102",
"Antarctica": "237",
"Nauru": "147",
"Haiti": "91",
"Afghanistan": "1",
"Burundi": "36",
"Russian Federation": "175",
"Singapore": "185",
"French Guiana": "76",
"American Samoa": "4",
"Christmas Island": "259",
"Netherlands": "149",
"China": "47",
"Martinique": "133",
"Palestinian Territory, Occupied": "244",
"Saint Pierre and Miquelon": "195",
"Kyrgyzstan": "114",
"Bhutan": "26",
"Romania": "174",
"Falkland Islands (Malvinas)": "70",
"Togo": "207",
"Philippines": "168",
"Uzbekistan": "221",
"Holy See (Vatican City State)": "223",
"Korea, Democratic People's Republic of (North Korea)": "112",
"Pitcairn": "248",
"Zimbabwe": "234",
"British Indian Ocean Territory": "59",
"Montenegro": "242",
"Dominica": "60",
"Indonesia": "97",
"Benin": "24",
"Angola": "6",
"East Timor": "245",
"Sudan": "196",
"Brunei Darussalam": "33",
"Portugal": "170",
"New Caledonia": "152",
"Grenada": "85",
"Cayman Islands": "42",
"Greece": "83",
"Latvia": "115",
"Mongolia": "141",
"Morocco": "143",
"Guatemala": "87",
"Guyana": "90",
"Iraq": "99",
"Chile": "46",
"Nepal": "148",
"Heard Island and McDonald Islands": "241",
"Isle of Man": "246",
"Congo-Brazzaville": "51",
"Ukraine": "216",
"Curaçao": "261",
"Ghana": "81",
"Anguilla": "7",
"India": "96",
"Canada": "39",
"Maldives": "129",
"Turkey": "212",
"Belgium": "22",
"South Africa": "190",
"Trinidad and Tobago": "210",
"Bermuda": "25",
"Central African Republic": "44",
"Jamaica": "104",
"Peru": "167",
"Turkmenistan": "213",
"Germany": "80",
"Fiji": "72",
"Tokelau": "208",
"Hong Kong": "93",
"Guinea": "88",
"United States": "220",
"Micronesia, Federated States of": "138",
"Chad": "45",
"Somalia": "189",
"Sao Tome and Principe": "179",
"Thailand": "206",
"Kiribati": "110",
"Equatorial Guinea": "66",
"Costa Rica": "53",
"Kuwait": "113",
"Nigeria": "156",
"Croatia": "54",
"Syrian Arab Republic": "201",
"Cook Islands": "52",
"Sri Lanka": "192",
"Uruguay": "219",
"United Kingdom": "218",
"Switzerland": "200",
"Samoa": "228",
"Spain": "191",
"Liberia": "119",
"Venezuela": "224",
"Burkina Faso": "35",
"Virgin Islands, U.S.": "226",
"Swaziland": "198",
"Saint Barthélemy": "249",
"Palau": "163",
"Estonia": "68",
"Libyan Arab Jamahiriya": "121",
"Kazakstan": "107",
"Wallis and Futuna": "227",
"Niue": "157",
"Yugoslavia (removed)": "231",
"Austria": "15",
"Mozambique": "144",
"El Salvador": "65",
"Monaco": "140",
"Guam": "86",
"Lesotho": "118",
"Tonga": "209",
"Western Sahara": "256",
"South Sudan": "264",
"Réunion": "173",
"Hungary": "94",
"Japan": "105",
"Belarus": "21",
"Mauritius": "135",
"Bouvet Island": "238",
"Norfolk Island": "243",
"Albania": "2",
"New Zealand": "153",
"Senegal": "181",
"Moldova, Republic of": "139",
"Ethiopia": "69",
"Egypt": "64",
"Macau": "124",
"Sierra Leone": "184",
"Bolivia": "28",
"Malta": "131",
"Saudi Arabia": "180",
"Cape Verde": "40",
"Pakistan": "162",
"Gambia": "78",
"Qatar": "172",
"Ireland": "100",
"Slovakia": "186",
"Lithuania": "120",
"France": "74",
"Serbia": "182",
"Bosnia and Herzegovina": "29",
"Taiwan, Province of China": "48",
"Niger": "155",
"Rwanda": "176",
"Bangladesh": "20",
"Barbados": "18",
"Nicaragua": "154",
"Norway": "160",
"Saint Vincent and the Grenadines": "252",
"Botswana": "30",
"Denmark": "58",
"Dominican Republic": "61",
"Mexico": "137",
"Netherlands Antilles (removed)": "150",
"Uganda": "215",
"Suriname": "197",
"Greenland": "84",
"Saint Helena": "193"
}
},
"primaryDepartment": {
"type": "string",
"caption": "Primary department/reference",
"format": "string",
"description": "",
"values": null
},
"id": {
"type": "string",
"caption": "",
"format": "int",
"description": "",
"values": null
},
"primaryCountry": {
"type": "string",
"caption": "Primary country",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Location.CountryId",
"values": {
"Papua New Guinea": "165",
"Cambodia": "37",
"Paraguay": "166",
"Ã…land Islands": "236",
"Bahamas": "17",
"Solomon Islands": "188",
"Montserrat": "142",
"Mali": "130",
"Marshall Islands": "132",
"Guadeloupe": "239",
"Panama": "164",
"Virgin Islands, British": "27",
"Bonaire, Sint Eustatius and Saba": "263",
"Iran, Islamic Republic of": "98",
"Tanzania, United Republic of": "205",
"Argentina": "9",
"Seychelles": "183",
"Zambia": "233",
"Belize": "23",
"Bahrain": "19",
"-": "0",
"Guinea-Bissau": "89",
"Namibia": "146",
"Comoros": "50",
"Faroe Islands": "71",
"Finland": "73",
"Georgia": "79",
"French Southern territories": "258",
"Saint Kitts and Nevis": "194",
"Yemen": "235",
"Eritrea": "67",
"Puerto Rico": "171",
"Viet Nam": "225",
"Aruba": "11",
"Madagascar": "126",
"Svalbard and Jan Mayen": "254",
"Saint Martin": "251",
"South Georgia and the South Sandwich Islands": "253",
"Sweden": "199",
"Malawi": "127",
"Cocos (Keeling) Islands": "260",
"Andorra": "5",
"Liechtenstein": "122",
"Poland": "169",
"Congo-Kinshasa": "232",
"Bulgaria": "34",
"Jordan": "106",
"Tunisia": "211",
"Côte d'Ivoire": "103",
"Tuvalu": "214",
"United Arab Emirates": "217",
"Kenya": "108",
"French Polynesia": "202",
"Lebanon": "117",
"Djibouti": "62",
"Azerbaijan": "16",
"Cuba": "55",
"Czech Republic": "57",
"Saint Lucia": "250",
"Mauritania": "134",
"Guernsey": "240",
"Mayotte": "136",
"Korea, Republic of (South Korea)": "111",
"San Marino": "178",
"Israel": "101",
"Australia": "13",
"Tajikistan": "204",
"Other": "1000",
"Myanmar": "145",
"Cameroon": "38",
"Gibraltar": "82",
"Cyprus": "56",
"Northern Mariana Islands": "159",
"Malaysia": "128",
"Oman": "161",
"Iceland": "95",
"Armenia": "10",
"Macedonia, The former Yugoslav Republic of": "125",
"Gabon": "77",
"Luxembourg": "123",
"Brazil": "31",
"Turks and Caicos Islands": "255",
"Algeria": "3",
"Jersey": "247",
"Slovenia": "187",
"Sint Maarten (Part of Netherlands)": "262",
"Antigua and Barbuda": "8",
"Colombia": "49",
"Ecuador": "63",
"Lao People's Democratic Republic": "116",
"Vanuatu": "222",
"United States Minor Outlying Islands": "257",
"Honduras": "92",
"Italy": "102",
"Antarctica": "237",
"Nauru": "147",
"Haiti": "91",
"Afghanistan": "1",
"Burundi": "36",
"Russian Federation": "175",
"Singapore": "185",
"French Guiana": "76",
"American Samoa": "4",
"Christmas Island": "259",
"Netherlands": "149",
"China": "47",
"Martinique": "133",
"Palestinian Territory, Occupied": "244",
"Saint Pierre and Miquelon": "195",
"Kyrgyzstan": "114",
"Bhutan": "26",
"Romania": "174",
"Falkland Islands (Malvinas)": "70",
"Togo": "207",
"Philippines": "168",
"Uzbekistan": "221",
"Holy See (Vatican City State)": "223",
"Korea, Democratic People's Republic of (North Korea)": "112",
"Pitcairn": "248",
"Zimbabwe": "234",
"British Indian Ocean Territory": "59",
"Montenegro": "242",
"Dominica": "60",
"Indonesia": "97",
"Benin": "24",
"Angola": "6",
"East Timor": "245",
"Sudan": "196",
"Brunei Darussalam": "33",
"Portugal": "170",
"New Caledonia": "152",
"Grenada": "85",
"Cayman Islands": "42",
"Greece": "83",
"Latvia": "115",
"Mongolia": "141",
"Morocco": "143",
"Guatemala": "87",
"Guyana": "90",
"Iraq": "99",
"Chile": "46",
"Nepal": "148",
"Heard Island and McDonald Islands": "241",
"Isle of Man": "246",
"Congo-Brazzaville": "51",
"Ukraine": "216",
"Curaçao": "261",
"Ghana": "81",
"Anguilla": "7",
"India": "96",
"Canada": "39",
"Maldives": "129",
"Turkey": "212",
"Belgium": "22",
"South Africa": "190",
"Trinidad and Tobago": "210",
"Bermuda": "25",
"Central African Republic": "44",
"Jamaica": "104",
"Peru": "167",
"Turkmenistan": "213",
"Germany": "80",
"Fiji": "72",
"Tokelau": "208",
"Hong Kong": "93",
"Guinea": "88",
"United States": "220",
"Micronesia, Federated States of": "138",
"Chad": "45",
"Somalia": "189",
"Sao Tome and Principe": "179",
"Thailand": "206",
"Kiribati": "110",
"Equatorial Guinea": "66",
"Costa Rica": "53",
"Kuwait": "113",
"Nigeria": "156",
"Croatia": "54",
"Syrian Arab Republic": "201",
"Cook Islands": "52",
"Sri Lanka": "192",
"Uruguay": "219",
"United Kingdom": "218",
"Switzerland": "200",
"Samoa": "228",
"Spain": "191",
"Liberia": "119",
"Venezuela": "224",
"Burkina Faso": "35",
"Virgin Islands, U.S.": "226",
"Swaziland": "198",
"Saint Barthélemy": "249",
"Palau": "163",
"Estonia": "68",
"Libyan Arab Jamahiriya": "121",
"Kazakstan": "107",
"Wallis and Futuna": "227",
"Niue": "157",
"Yugoslavia (removed)": "231",
"Austria": "15",
"Mozambique": "144",
"El Salvador": "65",
"Monaco": "140",
"Guam": "86",
"Lesotho": "118",
"Tonga": "209",
"Western Sahara": "256",
"South Sudan": "264",
"Réunion": "173",
"Hungary": "94",
"Japan": "105",
"Belarus": "21",
"Mauritius": "135",
"Bouvet Island": "238",
"Norfolk Island": "243",
"Albania": "2",
"New Zealand": "153",
"Senegal": "181",
"Moldova, Republic of": "139",
"Ethiopia": "69",
"Egypt": "64",
"Macau": "124",
"Sierra Leone": "184",
"Bolivia": "28",
"Malta": "131",
"Saudi Arabia": "180",
"Cape Verde": "40",
"Pakistan": "162",
"Gambia": "78",
"Qatar": "172",
"Ireland": "100",
"Slovakia": "186",
"Lithuania": "120",
"France": "74",
"Serbia": "182",
"Bosnia and Herzegovina": "29",
"Taiwan, Province of China": "48",
"Niger": "155",
"Rwanda": "176",
"Bangladesh": "20",
"Barbados": "18",
"Nicaragua": "154",
"Norway": "160",
"Saint Vincent and the Grenadines": "252",
"Botswana": "30",
"Denmark": "58",
"Dominican Republic": "61",
"Mexico": "137",
"Netherlands Antilles (removed)": "150",
"Uganda": "215",
"Suriname": "197",
"Greenland": "84",
"Saint Helena": "193"
}
},
"bankAccount": {
"type": "string",
"caption": "Bank account",
"format": "string",
"description": "",
"values": null
},
"balanceAdjustment": {
"type": "string",
"caption": "Balance adjust",
"format": "double",
"description": "",
"values": null
},
"timeZone": {
"type": "string",
"caption": "Time zone",
"format": "string",
"description": "",
"maxlength": "255",
"values": null
},
"linkedIn": {
"type": "string",
"caption": "LinkedIn",
"format": "url",
"description": "",
"maxlength": "255",
"values": null
},
"paymentTeam": {
"type": "string",
"description": "Note! Team of finance users who will actually handle payment of accepted expenses. Members of the selected team will get emails of all accepted expenses.",
"caption": "Expense payment team",
"values": {
"1041": "First team (update name e.g. your company name)"
}
},
"languageCode": {
"type": "string",
"value": "en",
"caption": "Language",
"format": "string",
"description": "",
"maxlength": "10",
"enumeration": "Enumeration values.Employee directory.Contact.User interface language",
"values": {
"English": "en",
"Finnish": "fi",
"German": "de"
}
},
"balanceMaximum": {
"type": "string",
"caption": "Balance maximum",
"format": "double",
"description": "",
"values": null
},
"firstName": {
"type": "string",
"caption": "First name",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"competenceLevel": {
"type": "string",
"value": "0",
"caption": "Primary competence level",
"description": "",
"enumeration": "Enumeration values.Employee directory.Competence.CompetenceLevel",
"values": {
"1 - Poor": "1",
"5 - Excellent": "5",
"2 - Modest": "2",
"-": "0",
"3 - Average": "3",
"4 - Good": "4"
}
},
"mobilePhone": {
"type": "string",
"description": "e.g. +xxx-xx-xxxx",
"caption": "Mobile phone",
"format": "phone",
"maxlength": "80",
"values": null
},
"nationality": {
"type": "string",
"caption": "Nationality",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Location.CountryId",
"values": {
"Papua New Guinea": "165",
"Cambodia": "37",
"Paraguay": "166",
"Ã…land Islands": "236",
"Bahamas": "17",
"Solomon Islands": "188",
"Montserrat": "142",
"Mali": "130",
"Marshall Islands": "132",
"Guadeloupe": "239",
"Panama": "164",
"Virgin Islands, British": "27",
"Bonaire, Sint Eustatius and Saba": "263",
"Iran, Islamic Republic of": "98",
"Tanzania, United Republic of": "205",
"Argentina": "9",
"Seychelles": "183",
"Zambia": "233",
"Belize": "23",
"Bahrain": "19",
"-": "0",
"Guinea-Bissau": "89",
"Namibia": "146",
"Comoros": "50",
"Faroe Islands": "71",
"Finland": "73",
"Georgia": "79",
"French Southern territories": "258",
"Saint Kitts and Nevis": "194",
"Yemen": "235",
"Eritrea": "67",
"Puerto Rico": "171",
"Viet Nam": "225",
"Aruba": "11",
"Madagascar": "126",
"Svalbard and Jan Mayen": "254",
"Saint Martin": "251",
"South Georgia and the South Sandwich Islands": "253",
"Sweden": "199",
"Malawi": "127",
"Cocos (Keeling) Islands": "260",
"Andorra": "5",
"Liechtenstein": "122",
"Poland": "169",
"Congo-Kinshasa": "232",
"Bulgaria": "34",
"Jordan": "106",
"Tunisia": "211",
"Côte d'Ivoire": "103",
"Tuvalu": "214",
"United Arab Emirates": "217",
"Kenya": "108",
"French Polynesia": "202",
"Lebanon": "117",
"Djibouti": "62",
"Azerbaijan": "16",
"Cuba": "55",
"Czech Republic": "57",
"Saint Lucia": "250",
"Mauritania": "134",
"Guernsey": "240",
"Mayotte": "136",
"Korea, Republic of (South Korea)": "111",
"San Marino": "178",
"Israel": "101",
"Australia": "13",
"Tajikistan": "204",
"Other": "1000",
"Myanmar": "145",
"Cameroon": "38",
"Gibraltar": "82",
"Cyprus": "56",
"Northern Mariana Islands": "159",
"Malaysia": "128",
"Oman": "161",
"Iceland": "95",
"Armenia": "10",
"Macedonia, The former Yugoslav Republic of": "125",
"Gabon": "77",
"Luxembourg": "123",
"Brazil": "31",
"Turks and Caicos Islands": "255",
"Algeria": "3",
"Jersey": "247",
"Slovenia": "187",
"Sint Maarten (Part of Netherlands)": "262",
"Antigua and Barbuda": "8",
"Colombia": "49",
"Ecuador": "63",
"Lao People's Democratic Republic": "116",
"Vanuatu": "222",
"United States Minor Outlying Islands": "257",
"Honduras": "92",
"Italy": "102",
"Antarctica": "237",
"Nauru": "147",
"Haiti": "91",
"Afghanistan": "1",
"Burundi": "36",
"Russian Federation": "175",
"Singapore": "185",
"French Guiana": "76",
"American Samoa": "4",
"Christmas Island": "259",
"Netherlands": "149",
"China": "47",
"Martinique": "133",
"Palestinian Territory, Occupied": "244",
"Saint Pierre and Miquelon": "195",
"Kyrgyzstan": "114",
"Bhutan": "26",
"Romania": "174",
"Falkland Islands (Malvinas)": "70",
"Togo": "207",
"Philippines": "168",
"Uzbekistan": "221",
"Holy See (Vatican City State)": "223",
"Korea, Democratic People's Republic of (North Korea)": "112",
"Pitcairn": "248",
"Zimbabwe": "234",
"British Indian Ocean Territory": "59",
"Montenegro": "242",
"Dominica": "60",
"Indonesia": "97",
"Benin": "24",
"Angola": "6",
"East Timor": "245",
"Sudan": "196",
"Brunei Darussalam": "33",
"Portugal": "170",
"New Caledonia": "152",
"Grenada": "85",
"Cayman Islands": "42",
"Greece": "83",
"Latvia": "115",
"Mongolia": "141",
"Morocco": "143",
"Guatemala": "87",
"Guyana": "90",
"Iraq": "99",
"Chile": "46",
"Nepal": "148",
"Heard Island and McDonald Islands": "241",
"Isle of Man": "246",
"Congo-Brazzaville": "51",
"Ukraine": "216",
"Curaçao": "261",
"Ghana": "81",
"Anguilla": "7",
"India": "96",
"Canada": "39",
"Maldives": "129",
"Turkey": "212",
"Belgium": "22",
"South Africa": "190",
"Trinidad and Tobago": "210",
"Bermuda": "25",
"Central African Republic": "44",
"Jamaica": "104",
"Peru": "167",
"Turkmenistan": "213",
"Germany": "80",
"Fiji": "72",
"Tokelau": "208",
"Hong Kong": "93",
"Guinea": "88",
"United States": "220",
"Micronesia, Federated States of": "138",
"Chad": "45",
"Somalia": "189",
"Sao Tome and Principe": "179",
"Thailand": "206",
"Kiribati": "110",
"Equatorial Guinea": "66",
"Costa Rica": "53",
"Kuwait": "113",
"Nigeria": "156",
"Croatia": "54",
"Syrian Arab Republic": "201",
"Cook Islands": "52",
"Sri Lanka": "192",
"Uruguay": "219",
"United Kingdom": "218",
"Switzerland": "200",
"Samoa": "228",
"Spain": "191",
"Liberia": "119",
"Venezuela": "224",
"Burkina Faso": "35",
"Virgin Islands, U.S.": "226",
"Swaziland": "198",
"Saint Barthélemy": "249",
"Palau": "163",
"Estonia": "68",
"Libyan Arab Jamahiriya": "121",
"Kazakstan": "107",
"Wallis and Futuna": "227",
"Niue": "157",
"Yugoslavia (removed)": "231",
"Austria": "15",
"Mozambique": "144",
"El Salvador": "65",
"Monaco": "140",
"Guam": "86",
"Lesotho": "118",
"Tonga": "209",
"Western Sahara": "256",
"South Sudan": "264",
"Réunion": "173",
"Hungary": "94",
"Japan": "105",
"Belarus": "21",
"Mauritius": "135",
"Bouvet Island": "238",
"Norfolk Island": "243",
"Albania": "2",
"New Zealand": "153",
"Senegal": "181",
"Moldova, Republic of": "139",
"Ethiopia": "69",
"Egypt": "64",
"Macau": "124",
"Sierra Leone": "184",
"Bolivia": "28",
"Malta": "131",
"Saudi Arabia": "180",
"Cape Verde": "40",
"Pakistan": "162",
"Gambia": "78",
"Qatar": "172",
"Ireland": "100",
"Slovakia": "186",
"Lithuania": "120",
"France": "74",
"Serbia": "182",
"Bosnia and Herzegovina": "29",
"Taiwan, Province of China": "48",
"Niger": "155",
"Rwanda": "176",
"Bangladesh": "20",
"Barbados": "18",
"Nicaragua": "154",
"Norway": "160",
"Saint Vincent and the Grenadines": "252",
"Botswana": "30",
"Denmark": "58",
"Dominican Republic": "61",
"Mexico": "137",
"Netherlands Antilles (removed)": "150",
"Uganda": "215",
"Suriname": "197",
"Greenland": "84",
"Saint Helena": "193"
}
},
"shippingState": {
"type": "string",
"caption": "Secondary state",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"departDate": {
"type": "string",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"caption": "Depart date",
"format": "string",
"description": "",
"values": null
},
"primaryAddress": {
"type": "string",
"caption": "Primary address",
"format": "string",
"description": "",
"values": null
},
"goalPeriod": {
"type": "string",
"value": "3",
"caption": "Period",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Employee directory.Contact.Goal period",
"values": {
"Month": "2",
"Year": "3",
"-": "0",
"Week": "1"
}
},
"lastName": {
"type": "string",
"caption": "Last name",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"primaryState": {
"type": "string",
"caption": "Primary state",
"format": "string",
"description": "",
"values": null
},
"role": {
"type": "string",
"caption": "Role & License",
"values": {
"1": "Administrator",
"2": "Power",
"3": "Supervisor",
"4": "Team",
"5": "Sales",
"": "-",
"Supervisor": 3,
"Administrator": 1,
"Sales": 5,
"Team": 4,
"Power": 2
},
"format": "int",
"description": ""
},
"primaryPostalCode": {
"type": "string",
"caption": "Primary postal/Zip code",
"format": "string",
"description": "",
"values": null
},
"skin": {
"type": "string",
"value": "190",
"caption": "Theme",
"format": "int",
"description": "",
"enumeration": "Enumeration values.System.Theme",
"values": {
"Rose-Tinted Glasses": "220",
"Through A Rock": "6",
"Vision Quest": "240",
"PlanMill Blue": "190",
"Grey Horizon": "8",
"Wave": "7",
"Bubbles": "4",
"Gold Rush": "3",
"Winter": "9",
"Seed Of Growth": "200",
"Oceans Of Calm": "230",
"Beach Holiday": "10",
"Forest": "1",
"Original look": "optgroup",
"Fall": "5",
"Made Of Steel": "2",
"Red Carpet": "210"
}
},
"description": {
"type": "string",
"format": "string",
"description": "",
"values": null
},
"title": {
"type": "string",
"caption": "Title",
"format": "string",
"description": "",
"maxlength": "255",
"values": null
},
"effortUnit": {
"type": "string",
"value": "2",
"caption": "Time unit",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Units.Effort",
"values": {
"Hours": "2",
"Weeks": "4",
"Days": "3",
"Minutes": "1"
}
},
"primaryCity": {
"type": "string",
"caption": "Primary city",
"format": "string",
"description": "",
"values": null
},
"competence": {
"type": "string",
"caption": "Primary competence",
"description": "",
"values": null
},
"skype": {
"type": "string",
"caption": "Skype",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"confirmPassword": {
"type": "string",
"caption": "Confirm new password",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"currency": {
"type": "string",
"caption": "Currency",
"values": {
"1": "EUR",
"EUR": 1
},
"format": "int",
"description": ""
},
"department": {
"type": "string",
"caption": "Department",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"enableGroupTabs": {
"type": "string",
"value": "0",
"caption": "Enable group tabs",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Administration.Jobs.Enabled",
"values": {
"No": "0",
"Yes": "1"
}
},
"BIC": {
"type": "string",
"caption": "BIC",
"format": "string",
"description": "",
"values": null
},
"email": {
"type": "string",
"caption": "Email",
"format": "email",
"description": "",
"maxlength": "254",
"values": null
},
"goalType": {
"type": "string",
"value": "1",
"caption": "Type",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Employee directory.Contact.Goal type",
"values": {
"[effortunit]": "1",
"Percent": "2",
"Revenue": "3"
}
},
"hireDate": {
"type": "string",
"calendar": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"caption": "Hire date",
"format": "string",
"description": "",
"values": null
},
"facebook": {
"type": "string",
"caption": "Facebook",
"format": "url",
"description": "",
"maxlength": "255",
"values": null
},
"photo": {
"type": "string",
"description": "(png,jpg,gif)",
"caption": "Photo",
"format": "photo",
"maxlength": "255",
"values": null
},
"team": {
"type": "string",
"caption": "Primary team",
"values": {
"1041": "First team (update name e.g. your company name)"
},
"description": ""
},
"userName": {
"type": "string",
"caption": "User name",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"passive": {
"type": "string",
"caption": "Status",
"format": "int",
"description": "",
"enumeration": "Enumeration values.Sales management.Accounts.Status",
"values": {
"Active": "0",
"Inactive": "1"
}
},
"superior": {
"type": "string",
"value": "-1",
"caption": "Superior",
"values": {
"0": 0,
"1": 0,
"2": 0,
"3": 0,
"356": "User, First",
"1480": "Yester,",
"1483": "Tester,",
"1484": "Tester,",
"1485": "Tester,",
"1486": "Tester,",
"1487": "Tester,",
"1488": "Tester,",
"1489": "Tester,",
"1490": "Tester,",
"1491": "Tester,",
"1492": "Tester,",
"1493": "Tester,",
"1494": "Tester,",
"1495": "Tester,",
"1496": "Tester,",
"1497": "Tester 2,",
"1502": "Tester,",
"1503": "Tester,",
"1504": "Tester,",
"1505": "Bekele, Tinbit",
"1510": "Bekele, Tinbit",
"1530": "Mituye4,",
"1531": "Mituye4,",
"1542": "Mituye4,",
"1543": "Mituye4,",
"1588": "Mituye4,",
"1596": "Mituye5,",
"1597": "Mituye5,",
"1609": "Mituye5,",
"1610": "Mituye5,",
"1620": "Mituye konjo,",
"Mituye5, ": "1610",
"Yester, ": "1480",
"Active users": "optgroup",
"Mituye konjo, ": "1620",
"Tester, ": "1496",
"Existing superiors": "optgroup",
"-1": "-",
"Tester 2, ": "1497",
"-": "-1",
"Bekele, Tinbit": "1510",
"Mituye4, ": "1588",
"User, First": "356"
},
"format": "int",
"description": ""
},
"calendars": {
"type": "string",
"caption": "",
"format": "string",
"description": "",
"values": null
},
"shippingAddress": {
"type": "string",
"caption": "Secondary address",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"workPhone": {
"type": "string",
"description": "e.g. +xxx-xx-xxxx",
"caption": "Work phone",
"format": "phone",
"maxlength": "80",
"values": null
},
"googleTalk": {
"type": "string",
"caption": "Google Hangouts",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"shippingDepartment": {
"type": "string",
"caption": "Secondary department/reference",
"format": "string",
"description": "",
"maxlength": "80",
"values": null
},
"account": {
"type": "string",
"caption": "",
"format": "int",
"description": "",
"values": null
}
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available capacities in PlanMill. This is a read-only collection.
Get a list of capacity
get /users/{user_id}/capacity
Get a list of capacity
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- user_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- start: required(string)
Start date of the capacity calendar in UTC format
Example:
2019-03-01T00:00:00.000+0200
- finish: required(string)
Finish date of the capacity calendar in UTC format
Example:
2019-04-01T00:00:00.000+0200
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
[
{
"date": "2019-12-23T00:00:00.000+0200",
"amount": 450,
"description": null
},
{
"date": "2019-12-24T00:00:00.000+0200",
"amount": 0,
"description": "Christmas Eve - Jouluaatto"
},
{
"date": "2019-12-25T00:00:00.000+0200",
"amount": 0,
"description": "Christmas Day - Joulupäivä"
},
{
"date": "2019-12-26T00:00:00.000+0200",
"amount": 0,
"description": "2.Christmas Day, Boxing Day - 2.joulupäivä, Tapaninpäivä"
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of a users capacity calendars in PlanMill.
Get a list of user capacity calendars.
Add a new capacity calendar for user to PlanMill.
get /users/{user_id}/capacitycalendars
Get a list of user capacity calendars.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- user_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort: (string)
Sorts the results using string that is a JSON attribute
- interval?: (string)
Interval type, e.g. start, finish, created, or modified. It is required in combination with intervalstart or intervalfinish
- intervalstart?: (string)
Start date of the interval in UTC format, intervalfinish required
Example:
2021-08-05T00:00:00.000+0200
- intervalfinish?: (string)
Finish date of the interval in UTC format, intervalstart required
Example:
2021-08-05T00:00:00.000+0200
HTTP status code 200
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all capacity calendars entities",
"type": "object",
"required": [ "calendarId" ],
"additionalProperties": false,
"properties": {
"calendarId": {
"type": "integer",
"description": "User's Calendar id"
},
"calendar": {
"type": "string",
"description": "Employment contract type of the user"
},
"start": {
"type": "string",
"description": "Calendar start date",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))"
},
"finish": {
"type": "string",
"description": "Calendar finish date",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))"
},
"id": {
"type": "integer",
"description": "Capacity calendar id"
},
"user": {
"type": "integer",
"description": "Id of the user"
}
}
}
Example:
[
{
"calendar": "FI/Part-time: 30 h/wk (Mon-Thu)",
"calendarId": 1106,
"start": "2019-08-06 00:00:00.0",
"updatable": 1,
"finish": "2022-12-31 00:00:00.0",
"id": 1611,
"user": 1610
},
{
"calendar": "FI/Full-time: 37,5 h/wk",
"calendarId": 1052,
"start": "2019-08-01 00:00:00.0",
"updatable": 1,
"finish": "2022-12-31 00:00:00.0",
"id": 1612,
"user": 1610
},
{
"calendar": "FI/Full-time: 37,5 h/wk",
"calendarId": 1052,
"start": "2019-08-06 00:00:00.0",
"updatable": 1,
"finish": "2022-12-31 00:00:00.0",
"id": 1613,
"user": 1610
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /users/{user_id}/capacitycalendars
Add a new capacity calendar for user to PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- user_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all capacity calendars entities",
"type": "object",
"required": [ "calendarId" ],
"additionalProperties": false,
"properties": {
"calendarId": {
"type": "integer",
"description": "User's Calendar id"
},
"calendar": {
"type": "string",
"description": "Employment contract type of the user"
},
"start": {
"type": "string",
"description": "Calendar start date",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))"
},
"finish": {
"type": "string",
"description": "Calendar finish date",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))"
},
"id": {
"type": "integer",
"description": "Capacity calendar id"
},
"user": {
"type": "integer",
"description": "Id of the user"
}
}
}
Example:
{
"calendarId": 1052,
"validFrom": "2019-08-18 00:00:00.0"
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single capacity calendar.
View details of single capacity calendar of a single user.
Update existing single capacity calendar of a single user.
Remove user's capacity calendar from planMill.
get /users/{user_id}/capacitycalendars/{user_capacitycalendar_id}
View details of single capacity calendar of a single user.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- user_id: required(string)
- user_capacitycalendar_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all capacity calendars entities",
"type": "object",
"required": [ "calendarId" ],
"additionalProperties": false,
"properties": {
"calendarId": {
"type": "integer",
"description": "User's Calendar id"
},
"calendar": {
"type": "string",
"description": "Employment contract type of the user"
},
"start": {
"type": "string",
"description": "Calendar start date",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))"
},
"finish": {
"type": "string",
"description": "Calendar finish date",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))"
},
"id": {
"type": "integer",
"description": "Capacity calendar id"
},
"user": {
"type": "integer",
"description": "Id of the user"
}
}
}
Example:
{
"calendarId": 1052,
"validFrom": "2019-08-18 00:00:00.0"
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /users/{user_id}/capacitycalendars/{user_capacitycalendar_id}
Update existing single capacity calendar of a single user.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- user_id: required(string)
- user_capacitycalendar_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all capacity calendars entities",
"type": "object",
"required": [ "calendarId" ],
"additionalProperties": false,
"properties": {
"calendarId": {
"type": "integer",
"description": "User's Calendar id"
},
"calendar": {
"type": "string",
"description": "Employment contract type of the user"
},
"start": {
"type": "string",
"description": "Calendar start date",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))"
},
"finish": {
"type": "string",
"description": "Calendar finish date",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))"
},
"id": {
"type": "integer",
"description": "Capacity calendar id"
},
"user": {
"type": "integer",
"description": "Id of the user"
}
}
}
Example:
{
"calendarId": 1052,
"validFrom": "2019-08-18 00:00:00.0"
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /users/{user_id}/capacitycalendars/{user_capacitycalendar_id}
Remove user's capacity calendar from planMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- user_id: required(string)
- user_capacitycalendar_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single overtimebalance in PlanMill. This is a read-only item.
View details of single over time balance
get /users/{user_id}/overtimebalance
View details of single over time balance
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- user_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- finish: required(string)
Start date of the balance in UTC format
Example:
2019-07-12T00:00:00.000+0200
HTTP status code 200
Body
Media type: application/json
Type:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all balance entities",
"type": "object",
"required": [ "amount" ],
"additionalProperties": false,
"properties": {
"amount": {
"type": "integer",
"description": "Balance amount in minutes of a user"
}
}
}
Example:
{
"amount": 450
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available reportableassignments in PlanMill. This is a read-only collection.
A single user's reportable assignments in PlanMill. This is a read-only item.
get /users/{user_id}/reportableassignments
A single user's reportable assignments in PlanMill. This is a read-only item.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- user_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- start: required(string)
Start date of the capacity calendar in UTC format
Example:
2019-03-07T00:00:00.000+0200
- finish: required(string)
Finish date of the capacity calendar in UTC format
Example:
2020-01-01T00:00:00.000+0200
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
[
{
"taskBillableStatus": 2,
"taskStart": "2015-05-25T10:15:00.000+0300",
"assignmentCreated": "2015-05-25T10:15:14.580+0300",
"task": 8139,
"project": 8137,
"assignment": 1232,
"accountName": null,
"account": 1232,
"taskName": "Test Task 1",
"lastTimereportCreated": "1970-01-01T02:00:00.000+0200",
"projectName": "Test Project A (13024)",
"taskFinish": "2015-05-25T10:15:00.000+0300"
},
{
"taskBillableStatus": 2,
"taskStart": "2015-05-25T10:15:00.000+0300",
"assignmentCreated": "2015-05-25T10:15:14.580+0300",
"task": 8139,
"project": 8137,
"assignment": 1232,
"accountName": null,
"account": 1232,
"taskName": "Test Task 2",
"lastTimereportCreated": "1970-01-01T02:00:00.000+0200",
"projectName": "Test Project B (13027)",
"taskFinish": "2015-05-25T10:15:00.000+0300"
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single socialsecuritynumber in PlanMill.
Add social security number of user.
put /users/{user_id}/socialsecuritynumber
Add social security number of user.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- user_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: socialsecuritynumber
Example:
{"socialsecuritynumber":"010100A917Y"
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single timebalance in PlanMill. This is a read-only item.
View details of a single timebalance.
get /users/{user_id}/timebalance
View details of a single timebalance.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- user_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- finish: required(string)
Start date of the balance in UTC format
Example:
2019-12-3T00:00:00.000+0200
HTTP status code 200
Body
Media type: application/json
Type:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all balance entities",
"type": "object",
"required": [ "amount" ],
"additionalProperties": false,
"properties": {
"amount": {
"type": "integer",
"description": "Balance amount in minutes of a user"
}
}
}
Example:
{
"amount": 450
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single traveltimebalance in PlanMill. This is a read-only item.
View details of a single traveltimebalance.
get /users/{user_id}/traveltimebalance
View details of a single traveltimebalance.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- user_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- finish: required(string)
Start date of the balance in UTC format
Example:
2019-09-30T00:00:00.000+0200
HTTP status code 200
Body
Media type: application/json
Type:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all balance entities",
"type": "object",
"required": [ "amount" ],
"additionalProperties": false,
"properties": {
"amount": {
"type": "integer",
"description": "Balance amount in minutes of a user"
}
}
}
Example:
{
"amount": 450
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available timecards in PlanMill.
Get a list of timecard.
get /users/{user_id}/timecard
Get a list of timecard.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- user_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- intervalstart: (string)
Start date of the interval in UTC format, intervalfinish required
Example:
2019-03-01T00:00:00.000+0200
- intervalfinish: (string)
Finish date of the interval in UTC format, intervalstart required
Example:
2019-09-01T00:00:00.000+0200
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"date": "2019-02-27T00:00:00.000+0200",
"totalFinishTime": 1000,
"totalStartTime": 250,
"createdBy": 50,
"person": 1610,
"created": "2019-02-27T16:34:20.547+0200",
"modified": null,
"modifiedBy": null,
"breakAmount": 45,
"workStartTime": 250,
"workFinishTime": 1000
},
{
"date": "2019-04-03T00:00:00.000+0300",
"totalFinishTime": 1250,
"totalStartTime": 0,
"createdBy": 50,
"person": 1610,
"created": "2019-02-27T16:29:26.263+0200",
"modified": "2019-02-27T16:38:13.410+0200",
"modifiedBy": 50,
"breakAmount": 20,
"workStartTime": 0,
"workFinishTime": 1250
},
{
"date": "2019-04-06T00:00:00.000+0300",
"totalFinishTime": 1090,
"totalStartTime": 360,
"createdBy": 50,
"person": 1610,
"created": "2019-02-27T16:32:52.490+0200",
"modified": null,
"modifiedBy": null,
"breakAmount": 40,
"workStartTime": 360,
"workFinishTime": 1090
},
{
"date": "2019-05-03T00:00:00.000+0300",
"totalFinishTime": 700,
"totalStartTime": 0,
"createdBy": 50,
"person": 1610,
"created": "2019-02-27T16:31:21.513+0200",
"modified": "2019-02-27T16:39:54.870+0200",
"modifiedBy": 50,
"breakAmount": 10,
"workStartTime": 0,
"workFinishTime": 700
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single timecard in PlanMill.
View details of a single timecard.
Create new or update an existing timecard.
get /users/{user_id}/timecard/{date}
View details of a single timecard.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- user_id: required(string)
- date: required(date)
Time card date in UTC format
Example:
2020-04-01T00:00:00.000+0300
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"date": "2019-02-28T00:00:00.000+0200",
"totalFinishTime": 1050,
"totalStartTime": 0,
"person": 1620,
"breakAmount": 30,
"workStartTime": 0,
"workFinishTime": 1050
}
HTTP status code 204
No HTTP body returned
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
put /users/{user_id}/timecard/{date}
Create new or update an existing timecard.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- user_id: required(string)
- date: required(date)
Time card date in UTC format
Example:
2020-04-01T00:00:00.000+0300
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
HTTP status code 204
No HTTP body returned
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
List of a user's unit costs in PlanMill
Get a list of unitcosts
get /users/{user_id}/unitcosts
Get a list of unitcosts
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- user_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount?: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
- order?: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort?: (integer)
Sorts the results using number that is associated with each column
HTTP status code 200
Body
Media type: application/json
Type: object
Example:
[
{
"amount": 100,
"unit": 2,
"validUntil": null,
"comment": "",
"id": 10807,
"validFrom": null,
"type": 2
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
Collection of available vacations in PlanMill. See vacations/meta for a full set of query parameters (filters) and enumeration lists for integer key properties (fields).
Get a list of vacations.
Add new vacation details to the user.See vacations/meta for list of columns and formats.
get /users/{user_id}/vacations
Get a list of vacations.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- user_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Query Parameters
- rowcount: (integer - minimum: 1)
It limits the result set amount to the specified limit to avoid API call to return too many records. Default row count is 100
- order: (integer)
Orders the results in ascending or descending order. 0=Ascending and 1=Descending. It is used in combination with sort
- sort: (string)
Sorts the results using string that is a JSON attribute
- interval: (string)
Interval type, e.g. start, finish, created, or modified. It is required in combination with intervalstart or intervalfinish
- intervalstart: (string)
Start date of the interval in UTC format, intervalfinish required
Example:
2021-08-05T00:00:00.000+0200
- intervalfinish: (string)
Finish date of the interval in UTC format, intervalstart required
Example:
2021-08-05T00:00:00.000+0200
- nextrows?: (integer)
The number of the next starting row. It is dependent on rowcount. For example, for total 250 items, if rowcount is 100 and nextrows is 101, it return items 101-201
HTTP status code 200
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all vacation entities",
"oneOf": [
{
"type": "array",
"items": { "$ref": "#/definitions/vacationArray" }
},
{
"$ref": "#/definitions/vacationSingle"
}
],
"definitions": {
"vacationArray": {
"type": "object",
"required": [ "vacationYear", "annualHoliday" ],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal ID of a vacation"
},
"daysRemaining": {
"type": "integer",
"description": "Number of days (in minutes) remaining in annual holiday"
},
"otherDaysRemaining": {
"type": "integer",
"description": "Number of days (in minutes) remaining in other annual vacation"
},
"savedLeaveDays": {
"type": "integer",
"description": "Number of days (in minutes) in saved leave"
},
"created": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Creation date of a vacation"
},
"bonusDays": {
"type": "integer",
"description": "Number of days (in minutes) in bonus holiday"
},
"vacationYear": {
"type": "integer",
"description": "Year of the vacation"
},
"annualHoliday": {
"type": "integer",
"description": "Number of days (in minutes) in annual holiday"
},
"bonusDaysRemaining": {
"type": "integer",
"description": "Number of days (in minutes) remaining in bonus holiday"
},
"createdBy": {
"type": "integer",
"description": "Internal id of a person who created a vacation"
},
"savedLeaveDaysRemaining": {
"type": "integer",
"description": "Number of days (in minutes) in saved leave"
},
"modified": {
"type": ["string", "null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Modified date of a vacation"
},
"modifiedBy": {
"type": ["integer", "null"],
"description": "Internal id of a person who modified a vacation"
},
"otherDays": {
"type": "integer",
"description": "Number of days (in minutes) in other annual vacation"
}
}
},
"vacationSingle": {
"type": "object",
"required": [ "vacationYear", "annualHoliday" ],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal ID of a vacation"
},
"annualHoliday": {
"type": "integer",
"description": "Number of days (in minutes) in annual holiday"
},
"savedLeaveDays": {
"type": "integer",
"description": "Number of days (in minutes) in saved leave"
},
"bonusDays": {
"type": "integer",
"description": "Number of days (in minutes) in bonus holiday"
},
"comment": {
"type": "string",
"description": "Comment of a vacation"
},
"otherDays": {
"type": "integer",
"description": "Number of days (in minutes) in other annual vacation"
},
"vacationYear": {
"type": "integer",
"description": "Year of the vacation"
},
"PersonId": {
"type": "integer",
"description": "ID of the person whose vacation it is"
}
}
}
}
}
Example:
[
{
"daysRemaining": 18000,
"otherDaysRemaining": 0,
"savedLeaveDays": 0,
"created": "2019-02-27T14:03:23.880+0200",
"bonusDays": 0,
"vacationYear": 2018,
"annualHoliday": 18000,
"bonusDaysRemaining": 0,
"createdBy": 50,
"savedLeaveDaysRemaining": 0,
"modified": null,
"modifiedBy": null,
"id": 1615,
"otherDays": 0
}
]
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /users/{user_id}/vacations
Add new vacation details to the user.See vacations/meta for list of columns and formats.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- user_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all vacation entities",
"oneOf": [
{
"type": "array",
"items": { "$ref": "#/definitions/vacationArray" }
},
{
"$ref": "#/definitions/vacationSingle"
}
],
"definitions": {
"vacationArray": {
"type": "object",
"required": [ "vacationYear", "annualHoliday" ],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal ID of a vacation"
},
"daysRemaining": {
"type": "integer",
"description": "Number of days (in minutes) remaining in annual holiday"
},
"otherDaysRemaining": {
"type": "integer",
"description": "Number of days (in minutes) remaining in other annual vacation"
},
"savedLeaveDays": {
"type": "integer",
"description": "Number of days (in minutes) in saved leave"
},
"created": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Creation date of a vacation"
},
"bonusDays": {
"type": "integer",
"description": "Number of days (in minutes) in bonus holiday"
},
"vacationYear": {
"type": "integer",
"description": "Year of the vacation"
},
"annualHoliday": {
"type": "integer",
"description": "Number of days (in minutes) in annual holiday"
},
"bonusDaysRemaining": {
"type": "integer",
"description": "Number of days (in minutes) remaining in bonus holiday"
},
"createdBy": {
"type": "integer",
"description": "Internal id of a person who created a vacation"
},
"savedLeaveDaysRemaining": {
"type": "integer",
"description": "Number of days (in minutes) in saved leave"
},
"modified": {
"type": ["string", "null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Modified date of a vacation"
},
"modifiedBy": {
"type": ["integer", "null"],
"description": "Internal id of a person who modified a vacation"
},
"otherDays": {
"type": "integer",
"description": "Number of days (in minutes) in other annual vacation"
}
}
},
"vacationSingle": {
"type": "object",
"required": [ "vacationYear", "annualHoliday" ],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal ID of a vacation"
},
"annualHoliday": {
"type": "integer",
"description": "Number of days (in minutes) in annual holiday"
},
"savedLeaveDays": {
"type": "integer",
"description": "Number of days (in minutes) in saved leave"
},
"bonusDays": {
"type": "integer",
"description": "Number of days (in minutes) in bonus holiday"
},
"comment": {
"type": "string",
"description": "Comment of a vacation"
},
"otherDays": {
"type": "integer",
"description": "Number of days (in minutes) in other annual vacation"
},
"vacationYear": {
"type": "integer",
"description": "Year of the vacation"
},
"PersonId": {
"type": "integer",
"description": "ID of the person whose vacation it is"
}
}
}
}
}
Example:
{
"annualHoliday": 40,
"savedLeaveDays": 0,
"bonusDays": 1,
"comment": "Vacation year 2019",
"otherDays": 0,
"id": 1608,
"vacationYear": 2019
}
HTTP status code 201
Body
Media type: application/json
Type: object
Example:
{ "id" : 123456 }
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
A single vacation in PlanMill.
View details of single vacation.
Update an existing resource vacation to PlanMill.
Remove a vacation from PlanMill.
get /users/{user_id}/vacations/{vacation_id}
View details of single vacation.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- user_id: required(string)
- vacation_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 200
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all vacation entities",
"oneOf": [
{
"type": "array",
"items": { "$ref": "#/definitions/vacationArray" }
},
{
"$ref": "#/definitions/vacationSingle"
}
],
"definitions": {
"vacationArray": {
"type": "object",
"required": [ "vacationYear", "annualHoliday" ],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal ID of a vacation"
},
"daysRemaining": {
"type": "integer",
"description": "Number of days (in minutes) remaining in annual holiday"
},
"otherDaysRemaining": {
"type": "integer",
"description": "Number of days (in minutes) remaining in other annual vacation"
},
"savedLeaveDays": {
"type": "integer",
"description": "Number of days (in minutes) in saved leave"
},
"created": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Creation date of a vacation"
},
"bonusDays": {
"type": "integer",
"description": "Number of days (in minutes) in bonus holiday"
},
"vacationYear": {
"type": "integer",
"description": "Year of the vacation"
},
"annualHoliday": {
"type": "integer",
"description": "Number of days (in minutes) in annual holiday"
},
"bonusDaysRemaining": {
"type": "integer",
"description": "Number of days (in minutes) remaining in bonus holiday"
},
"createdBy": {
"type": "integer",
"description": "Internal id of a person who created a vacation"
},
"savedLeaveDaysRemaining": {
"type": "integer",
"description": "Number of days (in minutes) in saved leave"
},
"modified": {
"type": ["string", "null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Modified date of a vacation"
},
"modifiedBy": {
"type": ["integer", "null"],
"description": "Internal id of a person who modified a vacation"
},
"otherDays": {
"type": "integer",
"description": "Number of days (in minutes) in other annual vacation"
}
}
},
"vacationSingle": {
"type": "object",
"required": [ "vacationYear", "annualHoliday" ],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal ID of a vacation"
},
"annualHoliday": {
"type": "integer",
"description": "Number of days (in minutes) in annual holiday"
},
"savedLeaveDays": {
"type": "integer",
"description": "Number of days (in minutes) in saved leave"
},
"bonusDays": {
"type": "integer",
"description": "Number of days (in minutes) in bonus holiday"
},
"comment": {
"type": "string",
"description": "Comment of a vacation"
},
"otherDays": {
"type": "integer",
"description": "Number of days (in minutes) in other annual vacation"
},
"vacationYear": {
"type": "integer",
"description": "Year of the vacation"
},
"PersonId": {
"type": "integer",
"description": "ID of the person whose vacation it is"
}
}
}
}
}
Example:
{
"annualHoliday": 40,
"savedLeaveDays": 0,
"bonusDays": 1,
"comment": "Vacation year 2019",
"otherDays": 0,
"id": 1608,
"vacationYear": 2019
}
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
post /users/{user_id}/vacations/{vacation_id}
Update an existing resource vacation to PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- user_id: required(string)
- vacation_id: required(string)
Headers
- Content-Type: required(string - default: application/json;charset=UTF-8 )
Example:
application/json;charset=UTF-8
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "base schema for all vacation entities",
"oneOf": [
{
"type": "array",
"items": { "$ref": "#/definitions/vacationArray" }
},
{
"$ref": "#/definitions/vacationSingle"
}
],
"definitions": {
"vacationArray": {
"type": "object",
"required": [ "vacationYear", "annualHoliday" ],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal ID of a vacation"
},
"daysRemaining": {
"type": "integer",
"description": "Number of days (in minutes) remaining in annual holiday"
},
"otherDaysRemaining": {
"type": "integer",
"description": "Number of days (in minutes) remaining in other annual vacation"
},
"savedLeaveDays": {
"type": "integer",
"description": "Number of days (in minutes) in saved leave"
},
"created": {
"type": "string",
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Creation date of a vacation"
},
"bonusDays": {
"type": "integer",
"description": "Number of days (in minutes) in bonus holiday"
},
"vacationYear": {
"type": "integer",
"description": "Year of the vacation"
},
"annualHoliday": {
"type": "integer",
"description": "Number of days (in minutes) in annual holiday"
},
"bonusDaysRemaining": {
"type": "integer",
"description": "Number of days (in minutes) remaining in bonus holiday"
},
"createdBy": {
"type": "integer",
"description": "Internal id of a person who created a vacation"
},
"savedLeaveDaysRemaining": {
"type": "integer",
"description": "Number of days (in minutes) in saved leave"
},
"modified": {
"type": ["string", "null"],
"pattern": "(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])T([0][0-9]|[1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9]).(\\d{3})((\\+|\\-)([0-9]|[0][0-9]|[1][0-9]|[2][0-3])([0-5][0-9]))",
"description": "Modified date of a vacation"
},
"modifiedBy": {
"type": ["integer", "null"],
"description": "Internal id of a person who modified a vacation"
},
"otherDays": {
"type": "integer",
"description": "Number of days (in minutes) in other annual vacation"
}
}
},
"vacationSingle": {
"type": "object",
"required": [ "vacationYear", "annualHoliday" ],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"description": "Internal ID of a vacation"
},
"annualHoliday": {
"type": "integer",
"description": "Number of days (in minutes) in annual holiday"
},
"savedLeaveDays": {
"type": "integer",
"description": "Number of days (in minutes) in saved leave"
},
"bonusDays": {
"type": "integer",
"description": "Number of days (in minutes) in bonus holiday"
},
"comment": {
"type": "string",
"description": "Comment of a vacation"
},
"otherDays": {
"type": "integer",
"description": "Number of days (in minutes) in other annual vacation"
},
"vacationYear": {
"type": "integer",
"description": "Year of the vacation"
},
"PersonId": {
"type": "integer",
"description": "ID of the person whose vacation it is"
}
}
}
}
}
Example:
{
"annualHoliday": 40,
"savedLeaveDays": 0,
"bonusDays": 1,
"comment": "Vacation year 2019",
"otherDays": 0,
"id": 1608,
"vacationYear": 2019
}
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.
delete /users/{user_id}/vacations/{vacation_id}
Remove a vacation from PlanMill.
PlanMill supports OAuth 2.0 for authenticating all API requests. More information about it in the security part of the documentation.
URI Parameters
- user_id: required(string)
- vacation_id: required(string)
Headers
- x-PlanMill-Currency: (string - minLength: 3 - maxLength: 3)
Recommended to be given. If currency not given in request header, user's current currency set in user settings is used. ISO code of currency in which money values should be shown or saved. Applies to all money attributes of the object, but may be converted by backend to the object specific currency. Some objects and their attributes may not care about the given currency but use the object's own currency
Example:
EUR
HTTP status code 204
No HTTP body returned
HTTP status code 400
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "ID in GET request URI was malformed",
"code": "00003"
}
HTTP status code 401
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Nonce too old",
"code": "00401"
}
HTTP status code 403
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Timer is not allowed to go over 24h! Rounding it down.",
"code": "00403"
}
HTTP status code 404
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Item not found",
"code": "00404"
}
HTTP status code 429
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
HTTP status code 500
Headers
- Content-type: required(string - default: application/json;charset=UTF-8 )
Body
Media type: application/json
Type: object
Example:
{
"message": "Invalid date pattern",
"code": "00500"
}
Secured by oauth_2.0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token.