to access the Api directly through the URL: replace 'USER NAME' with Troi User Name and 'USER PASSWORD' with Troi Password and run the following script <?php $user = 'USER NAME'; $password = 'USER PASSWORD'; $hashString = base64_encode($user.':'.md5($password)); print_r($hashString); ?> then add your $hashString to the URL. Example: https://example.troi.de/TroiSubDomain/api/v2/rest/contacts/?auth=Basic+EMPTY SPACE+YOUR GENERATED HASH Like: https://example.troi.de/TroiSubDomain/api/v2/rest/contacts/?auth=Basic abcdefghijk1234abcdefg |
---|
URI | Description | Method Name | Method Return Value | Parameter Name | Required/Optional | Parameter Value | Parameter Remark | Example | Test Units |
---|---|---|---|---|---|---|---|---|---|
Absences | |||||||||
/api/v2/rest/absences/ | GET | ApiAbsence[] | start | REQUIRED | string (yyyymmdd) | Fetch all absences for the given Start Date and End Date | /api/v2/rest/absences?start=20150401&end=20160601 | YES | |
/api/v2/rest/absences/ | GET | end | REQUIRED | string (yyyymmdd) | Fetch all absences for the given Start Date and End Date | /api/v2/rest/absences?start=20150401&end=20160601 |
YES
| ||
/api/v2/rest/absences/ | GET | employeeId | OPTIONAL | int | Fetch all Absences for the given employeeId | /api/v2/rest/absences?start=20150401&end=20160601&employeeId=33 |
YES
| ||
/api/v2/rest/absences/[id] | GET | ApiAbsence | Fetch Absence for the given Absence ID | /api/v2/rest/absences/1 | YES | ||||
Account Groups | |||||||||
/api/v2/rest/accountGroups/ | GET | ApiAccountGroup[] | clientId | REQUIRED | int | Fetch all Account Groups for the given clientId | /api/v2/rest/accountGroups?clientId=1 | YES | |
/api/v2/rest/accountGroups/[id] | GET | ApiAccountGroup | Fetch Account Group for the given Account Group ID | /api/v2/rest/accountGroups/1 | YES | ||||
/api/v2/rest/accountGroups/ | POST | ApiSyncItem | Save Absence Groups Object | /api/v2/rest/accountGroups/[accountGroups Object] | YES | ||||
/api/v2/rest/accountGroups/ | PUT | ApiSyncItem | Update Absence Groups Object | /api/v2/rest/accountGroups/[accountGroups Object] | YES | ||||
/api/v2/rest/accountGroups/ | DELETE | Account Group ID | Delete Absence Groups | /api/v2/rest/accountGroups/[accountGroups ID] | YES | ||||
Accounting Entries | |||||||||
/api/v2/rest/accountingEntries/ | GET | ApiAccountingEntry[] | clientId | REQUIRED | int | Fetch all Accounting Entries for the given clientId | /api/v2/rest/accountingEntries?clientId=1 | YES | |
/api/v2/rest/accountingEntries/ | GET | cpId | OPTIONAL | int | Fetch all Accounting Entries for the given CalculationPosition ID | /api/v2/rest/accountingEntries?clientId=1&cpId=1 | YES | ||
/api/v2/rest/accountingEntries/ | GET | projectId | OPTIONAL | int | Fetch all Accounting Entries for the given Project ID | /api/v2/rest/accountingEntries?clientId=1&projectId=1 | YES | ||
/api/v2/rest/accountingEntries/ | GET | accountingEntryCollectionId | OPTIONAL | int | Fetch all Accounting Entries for the given AccountingEntryCollection ID | /api/v2/rest/accountingEntries?clientId=1&accountingEntryCollectionId=1 | YES | ||
/api/v2/rest/accountingEntries/[id] | GET | ApiAccountingEntry | Fetch Accounting Entry for the given Accounting Entry ID | /api/v2/rest/accountingEntries/1 | YES | ||||
/api/v2/rest/accountingEntries/ | POST | ApiSyncItem | Save Accounting Entry Object | /api/v2/rest/accountingEntries/[accountingEntries Object] | YES | ||||
/api/v2/rest/accountingEntries/ | PUT | ApiSyncItem | Update Accounting Entry Object | /api/v2/rest/accountingEntries/[accountingEntries Object] | YES | ||||
/api/v2/rest/accountingEntries/ | DELETE | Accounting Entry ID | Delete Accounting Entry | /api/v2/rest/accountingEntries/[accountingEntries ID] | YES | ||||
Accounting Entry Collections | |||||||||
/api/v2/rest/accountingEntryCollections/ | GET | ApiAccountingEntryCollection[] | clientId | REQUIRED | int | Fetch All Accounting Entry Collections for the given clientId | /api/v2/rest/accountingEntryCollections?clientId=1 | YES | |
/api/v2/rest/accountingEntryCollections/ | GET | type | OPTIONAL | int | Fetch All Accounting Entry Collections for the given type 0 = export collections, 1 = import collections | /api/v2/rest/accountingEntryCollections?clientId=1&type=1 | YES | ||
/api/v2/rest/accountingEntryCollections/ | GET | year | OPTIONAL | string | Fetch All Accounting Entry Collections for the given year | /api/v2/rest/accountingEntryCollections?clientId=1&year=2016 | YES | ||
/api/v2/rest/accountingEntryCollections/[id] | GET | ApiAccountingEntryCollection | /api/v2/rest/accountingEntryCollections/1 | YES | |||||
/api/v2/rest/accountingEntryCollections/ | POST | ApiSyncItem | Save Accounting Entry Collections | /api/v2/rest/accountingEntryCollections/[accountingEntryCollections Object] | YES | ||||
/api/v2/rest/accountingEntryCollections/ | PUT | ApiSyncItem | Update Accounting Entry Collections | /api/v2/rest/accountingEntryCollections/[accountingEntryCollections Object] | YES | ||||
/api/v2/rest/accountingEntryCollections/ | DELETE | Accounting Entry Collection ID | Delete Accounting Entry Collections | /api/v2/rest/accountingEntryCollections/[accountingEntryCollections ID] | YES | ||||
Accounts | |||||||||
/api/v2/rest/accounts/ | GET | ApiAccount[] | clientId | REQUIRED | int | /api/v2/rest/accounts?clientId=1 | YES | ||
/api/v2/rest/accounts/ | GET | accountGroupId | OPTIONAL | int | /api/v2/rest/accounts?clientId=1&accountGroupId=1 | YES | |||
/api/v2/rest/accounts/ | GET | account_is_cash_or_bank | OPTIONAL | boolean (true/false) | /api/v2/rest/accounts?clientId=1&account_is_cash_or_bank=true | YES | |||
/api/v2/rest/accounts/[id] | GET | ApiAccount | /api/v2/rest/accounts/[Id] | YES | |||||
/api/v2/rest/accounts/ | POST | ApiSyncItem | /api/v2/rest/accounts/[accounts Object] | YES | |||||
/api/v2/rest/accounts/ | PUT | ApiSyncItem | /api/v2/rest/accounts/[accounts Object] | YES | |||||
/api/v2/rest/accounts/ | DELETE | Account ID | /api/v2/rest/accounts/[accounts ID] | YES | |||||
Billings - Hours | |||||||||
/api/v2/rest/billings/hours/ | GET | ApiHourBilling[] | employeeId | REQUIRED | int | employeeId or calculationPositionId or projectId or subprojectId or startDate+endDate is mandatory Fetch all Billings for the given parameter | /api/v2/rest/billings/hours?employeeId=1 | YES | |
/api/v2/rest/billings/hours/ | GET | calculationPositionId | OPTIONAL 1 | int | Fetch all Billings for the given Calculation Position ID | /api/v2/rest/billings/hours?calculationPositionId=1 | YES | ||
/api/v2/rest/billings/hours/ | GET | projectId | OPTIONAL 1 | int | Fetch all Billings for the given Project ID | /api/v2/rest/billings/hours?projectId=1 | YES | ||
/api/v2/rest/billings/hours/ | GET | subprojectId | OPTIONAL 1 | int | Fetch all Billings for the given Subproject ID | /api/v2/rest/billings/hours?subprojectId=1 | YES | ||
/api/v2/rest/billings/hours/ | GET | startDate | OPTIONAL 1 | string (yyyymmdd) | Fetch all Billings for the given Start Date | /api/v2/rest/billings/hours?startDate=20160101&endDate=20160120 | YES | ||
/api/v2/rest/billings/hours/ | GET | endDate | OPTIONAL 1 | string (yyyymmdd) | Fetch all Billings for the given End Date | /api/v2/rest/billings/hours?startDate=20160101&endDate=20160120 | YES | ||
/api/v2/rest/billings/hours/ | GET | ApiHourBillingExt[] | extendedObject | OPTIONAL | boolean (true/false) | extended object contains the full calculation position display path | /api/v2/rest/billings/hours?employeeId=1&extendedObject=true | YES | |
/api/v2/rest/billings/hours/ | GET | fillsyncitems | OPTIONAL | boolean (true/false) | Fetch all Billings and fill the empty objects if there is any | /api/v2/rest/billings/hours?employeeId=1&fillsyncitems=true | YES | ||
/api/v2/rest/billings/hours/ | POST | ApiSyncItem | Save Billing | YES | |||||
/api/v2/rest/billings/hours/[id] | GET | ApiHourBilling | Fetch Billing for the given Billing ID | /api/v2/rest/billings/hours/1 | YES | ||||
/api/v2/rest/billings/hours/[id] | ApiHourBillingExt | extendedObject | OPTIONAL | boolean (true/false) | extended object contains the full calculation position display path | /api/v2/rest/billings/hours/1?extendedObject=true | |||
/api/v2/rest/billings/hours/ | PUT | ApiSyncItem | Update Billing | /api/v2/rest/billings/hours/[Billing Object] | YES | ||||
/api/v2/rest/billings/hours/ | DELETE | Billing Hour ID | Delete Billing | /api/v2/rest/billings/hours/[Billing ID] | YES | ||||
Booking Year | |||||||||
/api/v2/rest/bookingYears/ | GET | ApiBookingYear | clientId | REQUIRED | Fetch all Booking Years for the given client ID | /api/v2/rest/bookingYears?clientId=1 | YES | ||
/api/v2/rest/bookingYears/[id] | GET | ApiBookingYear | Fetch Booking Year for the given ID | /api/v2/rest/bookingYears/1 | YES | ||||
/api/v2/rest/bookingYears/ | POST | ApiSyncItem | Save Booking Year | /api/v2/rest/bookingYears/[Booking Year Object] | YES | ||||
/api/v2/rest/bookingYears/ | PUT | ApiSyncItem | Update Booking Year | /api/v2/rest/bookingYears/[Booking Year Object] | YES | ||||
/api/v2/rest/bookingYears/ | DELETE | Booking Year ID | Delete Booking Year | /api/v2/rest/bookingYears/[Booking Year ID] | YES | ||||
Calculation Positions | |||||||||
/api/v2/rest/calculationPositions/ | GET | ApiCalculationPosition[] | clientId | REQUIRED | int | Fetch All all Calculation Positions for the given Client ID | /api/v2/rest/calculationPositions?clientId=1 | YES | |
/api/v2/rest/calculationPositions/ | GET | projectId | OPTIONAL | int | Fetch All all Calculation Positions for the given Project ID | /api/v2/rest/calculationPositions?clientId=1&projectId=1 | YES | ||
/api/v2/rest/calculationPositions/ | GET | subprojectId | OPTIONAL | int | Fetch All all Calculation Positions for the given Subproject ID | /api/v2/rest/calculationPositions?clientId=1&subprojectId=1 | YES | ||
/api/v2/rest/calculationPositions/ | GET | search | OPTIONAL | string | Fetch All all Calculation Positions for the given Search Term | /api/v2/rest/calculationPositions?clientId=1&search=Calculation Position Name | YES | ||
/api/v2/rest/calculationPositions/ | GET | timeRecording | OPTIONAL | boolean (true/false) | returns on valid time recording positions for the user | /api/v2/rest/calculationPositions?clientId=1&timeRecording=true | YES | ||
/api/v2/rest/calculationPositions/ | GET | favoritesOnly | OPTIONAL | boolean (true/false) | returns on favorite time recording positions for the user | /api/v2/rest/calculationPositions?clientId=1&favoritesOnly=true | YES | ||
/api/v2/rest/calculationPositions/ | GET | withoutHourClosed | OPTIONAL | boolean (true/false) | returns only cp that are not closed for time recording | /api/v2/rest/calculationPositions?clientId=1&withoutHourClosed=true | YES | ||
/api/v2/rest/calculationPositions/ | GET | ree_date | OPTIONAL | String (yyyymmdd OR dd.mm.yyyy OR current_date) | return Rest Expenses Estimation for the given Calculation Position | /api/v2/rest/calculationPositions?clientId=1&ree_date=20160101 | YES | ||
/api/v2/rest/calculationPositions/ | GET | projectStatusId | OPTIONAL | int | Fetch all Calculation Positions for the given Project Status ID | /api/v2/rest/calculationPositions?clientId=1&projectStatusId=11 | YES | ||
/api/v2/rest/calculationPositions/ | GET | bookKeeping | OPTIONAL | boolean (true/false) | Fetch all Calculation Positions for the given Book keeping | /api/v2/rest/calculationPositions?clientId=1&bookKeeping=true | YES | ||
/api/v2/rest/calculationPositions/ | GET | projectIds | OPTIONAL | string | Fetch all Calculation Positions for the given Project IDs | /api/v2/rest/calculationPositions?clientId=1&projectIds=1,2,3 | YES | ||
/api/v2/rest/calculationPositions/ | GET | issueTrackerProjectKey | OPTIONAL | string | Fetch all Calculation Positions for the given issue Tracker Project Key | /api/v2/rest/calculationPositions?clientId=1&issueTrackerProjectKey=test | YES | ||
/api/v2/rest/calculationPositions/ | POST | ApiSyncItem | synctoken | REQUIRED | string (ApiCalculationPosition) | Save Calculation Position | /api/v2/rest/calculationPositions/[Calculation Positions Object] | YES | |
/api/v2/rest/calculationPositions/[id] | GET | ApiCalculationPosition | Fetch Calculation Position for the given Calculation Position ID | /api/v2/rest/calculationPositions/[Calculation Positions ID] | YES | ||||
/api/v2/rest/calculationPositions/ | PUT | ApiSyncItem |
| (ApiCalculationPosition) | Update Calculation Position | /api/v2/rest/calculationPositions/[Calculation Positions Object] | YES | ||
/api/v2/rest/calculationPositions/ | DELETE | Calculation Position ID | synctoken | REQUIRED | (ApiCalculationPosition) | Delete Calculation Position | /api/v2/rest/calculationPositions/[Calculation Positions ID] | YES | |
Calendar Events | |||||||||
/api/v2/rest/calendarEvents/ | GET | ApiCalendarEvent[] | start | REQUIRED | string(8) | YYYYMMDD | /api/v2/rest/calendarEvents?start=20121119&end=20121125 | YES | |
/api/v2/rest/calendarEvents/ | GET | end | REQUIRED | string(8) | YYYYMMDD | /api/v2/rest/calendarEvents?start=20121119&end=20121125 | |||
/api/v2/rest/calendarEvents/ | GET | search_key | OPTIONAL | string | /api/v2/rest/calendarEvents?start=20121119&end=20121125&search_key=Calender Event Description | YES | |||
/api/v2/rest/calendarEvents/ | GET | owner_employee_id | OPTIONAL | int | /api/v2/rest/calendarEvents?start=20121119&end=20121125&owner_employee_id=33 | YES | |||
/api/v2/rest/calendarEvents/ | GET | type | OPTIONAL | ["R","H","G","P","T"] | R=regular, H=holiday, G=general, P=private, T=assigment | /api/v2/rest/calendarEvents?start=20121119&end=20121125&type=["R","H","G","P","T"] | YES | ||
/api/v2/rest/calendarEvents/ | GET | withoutAbsences | OPTIONAL | boolean (true/false) | /api/v2/rest/calendarEvents?start=20121119&end=20121125&withoutAbsences=true | YES | |||
/api/v2/rest/calendarEvents/ | POST | ApiSyncItem | Save Calendar Event | /api/v2/rest/calendarEvents/[Calendar Event Object] | YES | ||||
/api/v2/rest/calendarEvents/[id] | GET | ApiCalendarEvent | Fetch Calendar Event for the given ID | /api/v2/rest/calendarEvents/1 | YES | ||||
/api/v2/rest/calendarEvents/ | PUT | ApiSyncItem | Update Calendar Events | /api/v2/rest/calendarEvents/[Calendar Event Object] | YES | ||||
/api/v2/rest/calendarEvents/ | DELETE | Calendar Event ID | Delete Calendar Events | /api/v2/rest/calendarEvents/1 | YES | ||||
Calendar Event Participants | |||||||||
/api/v2/rest/calendarEventParticipants/ | GET | ApiCalendarEventParticipant[] | calendarEventId | OPTIONAL | int | Fetch all Calendar Event Participants for the given Calendar Event ID | /api/v2/rest/calendarEventParticipants?calendarEventId=1 | YES | |
/api/v2/rest/calendarEventParticipants/ | GET | employeeId | OPTIONAL | int | Fetch all Calendar Event Participants for the givenEmployee ID | /api/v2/rest/calendarEventParticipants?employeeId=1 | YES | ||
/api/v2/rest/calendarEventParticipants/ | POST | ApiSyncItem | Save Calendar Event Participants | /api/v2/rest/calendarEventParticipants/[Calendar Event Participant Object] | YES | ||||
/api/v2/rest/calendarEventParticipants/[id] | GET | ApiCalendarEventParticipant | Fetch Calendar Event Participant for the given Calendar Event Participant ID | /api/v2/rest/calendarEventParticipants/1 | YES | ||||
/api/v2/rest/calendarEventParticipants/ | PUT | ApiSyncItem | Update Calendar Event Participant | /api/v2/rest/calendarEventParticipants/[Calendar Event Participant Object] | YES | ||||
/api/v2/rest/calendarEventParticipants/ | DELETE | Calendar Event Participant ID | Delete Calendar Event Participant | /api/v2/rest/calendarEventParticipants/1 | YES | ||||
Tenants (formerly Clients) | |||||||||
/api/v2/rest/clients/ | GET | ApiClient[] | Fetch all Clients | /api/v2/rest/clients/ | YES | ||||
/api/v2/rest/clients/[id] | GET | ApiClient | Fetch Client for the Given Client ID | /api/v2/rest/clients/[Client ID] | YES | ||||
Contacts | |||||||||
/api/v2/rest/contacts/ | GET | ApiContact[], ApiSyncItem[] | syncItem | OPTIONAL | boolean (true/false) | Fetch Contacts and return them as Sync Item | /api/v2/rest/contacts?syncItem=true | YES | |
/api/v2/rest/contacts/ | GET | from | OPTIONAL | int | Fetch Contacts from the given ID, use togehter with "size" | /api/v2/rest/contacts?from=100&size=50 | YES | ||
/api/v2/rest/contacts/ | GET | size | OPTIONAL | int | Fetch Contacts for the given size use together with "from" | /api/v2/rest/contacts?from=100&size=50 | YES | ||
/api/v2/rest/contacts/ | GET | since | OPTIONAL | valid ETag (yymmddhhmmss) | Fetch Contacts for the given date time (only items modified since ETag will be returned) | /api/v2/rest/contacts?since=20110722153556 | YES | ||
/api/v2/rest/contacts/ | GET | favoritesOnly | OPTIONAL | boolean (true/false) | Fetch favorites Contacts only | /api/v2/rest/contacts?favoritesOnly=true | YES | ||
/api/v2/rest/contacts/ | GET | contactType | OPTIONAL | ApiContact:Person, ApiContact:Department, ApiContact:Company | Fetch Contacts for the given Contact Type | /api/v2/rest/contacts?contactType=ApiContact:Person | YES | ||
/api/v2/rest/contacts/ | GET | search | OPTIONAL | string | Fetch Contacts for the given Search Term | /api/v2/rest/contacts?search=test | YES | ||
/api/v2/rest/contacts/ | GET | searchField | OPTIONAL | JSON | Fetch Contacts for the given Search Field single value: | /api/v2/rest/contacts?searchField={"categoryId":392} | YES | ||
/api/v2/rest/contacts/ | GET | withCustomFields | OPTIONAL | int | Fetch Contacts for the given with Custom Field | /api/v2/rest/contacts?withCustomFields=1 | YES | ||
/api/v2/rest/contacts/ | GET | parentId | OPTIONAL | int | Fetch Contacts for the given parent ID | /api/v2/rest/contacts?parentId=1234 | YES | ||
/api/v2/rest/contacts/ | GET | isAssociatedWithCustomer | OPTIONAL | boolean (true/false) | show all contacts that associated with some customer | /api/v2/rest/contacts?isAssociatedWithCustomer=true | YES | ||
/api/v2/rest/contacts/ | GET | onlyInactive | OPTIONAL | boolean (true/false) | show all inactive contacts | /api/v2/rest/contacts?onlyInactive=true | |||
/api/v2/rest/contacts/ | POST | ApiSyncItem | Save Contact | YES | |||||
/api/v2/rest/contacts/[id] | GET | ApiSyncItem | withCustomFields | OPTIONAL | Fetch Contact for the given with custom Field | /api/v2/rest/contacts/1?withCustomFields=1 | YES | ||
/api/v2/rest/contacts/ | PUT | ApiSyncItem | Update Contact | /api/v2/rest/contacts/[Contact Object] | YES | ||||
/api/v2/rest/contacts/ | DELETE | Contact ID | Delete Contact | /api/v2/rest/contacts/1 | YES | ||||
Contacts Logical Database | |||||||||
| /api/v2/rest/contactCategories/ | GET | ApiContactCategory[] | contactId | OPTIONAL | int | Fetch all Contact Categories for the given Contact ID | /api/v2/rest/contactCategories?contactId=123 | YES |
/api/v2/rest/contactCategories/ | GET | categoryId | OPTIONAL | int | Fetch all Contact Categories for the given Category ID | /api/v2/rest/contactCategories?categoryId=123 | YES | ||
/api/v2/rest/contactCategories/ | GET | size | OPTIONAL | int | Fetch Contact Categories for the given size use together with "from" | /api/v2/rest/contactCategories?size=100 | YES | ||
/api/v2/rest/contactCategories/ | GET | from | OPTIONAL | int | Fetch Contact Category from the given ID use together with "size" | /api/v2/rest/contactCategories?size=100&from=200 | YES | ||
/api/v2/rest/contactCategories/ | POST | ApiSyncItem | Save Contact Category | /api/v2/rest/contactCategories/[Contact Category Object] | YES | ||||
/api/v2/rest/contactCategories/[id] | GET | ApiContactCategory | Fetch Contact Category for the given ID | /api/v2/rest/contactCategories/123 | YES | ||||
/api/v2/rest/contactCategories/ | DELETE | ContactCategory ID | Delete Contact Category | /api/v2/rest/contactCategories/123 | YES | ||||
Customers | |||||||||
/api/v2/rest/customers/ | GET | ApiCustomer[] | clientId | REQUIRED | int | Fetch all Customers for the given Client ID | /api/v2/rest/customers?clientId=1 | YES | |
/api/v2/rest/customers/ | GET | ApiSyncItem[] | syncItem | OPTIONAL | boolean (true/false) | Fetch all Customers for the given Client ID and return them as SyncItems | /api/v2/rest/customers?clientId=1&syncItem=true | YES | |
/api/v2/rest/customers/ | GET | isActive | OPTIONAL | boolean (true/false) | Fetch all active Customers if ommited, all customers are returned | /api/v2/rest/customers?clientId=1&isActive=true | YES | ||
/api/v2/rest/customers/ | POST | ApiSyncItem | Save Customer | /api/v2/rest/customers/[Customer Object] | YES | ||||
/api/v2/rest/customers/[id] | GET | ApiCustomer | Fetch Customer for the given Customer ID | /api/v2/rest/customers/1 | YES | ||||
/api/v2/rest/customers/ | PUT | ApiSyncItem | Update Customer | /api/v2/rest/customers/[Customer Object] | YES | ||||
Suppliers | |||||||||
/api/v2/rest/suppliers/ | GET | ApiSupplier[] | clientId | REQUIRED | int | Fetch all Suppliers for the given Client ID | /api/v2/rest/suppliers?clientId=1 | YES | |
/api/v2/rest/suppliers/ | GET | returnApiSyncItems | OPTIONAL | boolean (true/false) | Fetch all Suppliers and return them as SyncItems | /api/v2/rest/suppliers?clientId=1&returnApiSyncItems=true | YES | ||
/api/v2/rest/suppliers/ | GET | search | OPTIONAL | string | Fetch all Suppliers for the given Search term | /api/v2/rest/suppliers?clientId=1&search=Supplier Name | YES | ||
/api/v2/rest/suppliers/ | GET | isActive | OPTIONAL | boolean (true/false) | Fetch all Active Suppliers | /api/v2/rest/suppliers?clientId=1&isActive=true | YES | ||
/api/v2/rest/suppliers/ | GET | showReferenceDetails | OPTIONAL | boolean (true/false) | Fetch all Suppliers and return extended payment term array | /api/v2/rest/suppliers?clientId=1&showReferenceDetails=true | |||
/api/v2/rest/suppliers/ | POST | ApiSyncItem | Save Supplier | /api/v2/rest/suppliers/[Supplier Object] | YES | ||||
/api/v2/rest/suppliers/[id] | GET | ApiSupplier | Fetch supplier for the given ID | /api/v2/rest/suppliers/1 | YES | ||||
/api/v2/rest/suppliers/ | PUT | ApiSyncItem | Update Supplier | /api/v2/rest/suppliers/[Supplier Object] | YES | ||||
EmployeeProjects | |||||||||
/api/v2/rest/employeeProjects/ | GET | ApiEmployeeProject[] | employeeId | REQUIRED 1 | int | Fetch all Employee Projects for the given employee ID | /api/v2/rest/employeeProjects?employeeId=123 | YES | |
/api/v2/rest/employeeProjects/[id] | GET | ApiEmployeeProject | Fetch Employee Project for the given ID | /api/v2/rest/employeeProjects/1 | YES | ||||
/api/v2/rest/employeeProjects/ | PUT | ApiSyncItem | Update Employee Project | /api/v2/rest/employeeProjects/[Employee Project Object] | YES | ||||
/api/v2/rest/employeeProjects/ | DELETE | EmployeeProject ID | Delete Employee Project | /api/v2/rest/employeeProjects/1 | YES | ||||
/api/v2/rest/employeeProjects/ | POST | ApiSyncItem | Save Employee Project | /api/v2/rest/employeeProjects/[Employee Project Object] | YES | ||||
Employees | |||||||||
/api/v2/rest/employees/ | GET | ApiEmployee[] | clientId | REQUIRED | int | Fetch Employees for the given Client ID | /api/v2/rest/employees?clientId=1 | YES | |
/api/v2/rest/employees/ | GET | employeeBrand | OPTIONAL | string | Fetch Employees for the given Client ID and Employee Brand | /api/v2/rest/employees?clientId=1&employeeBrand=N,E | YES | ||
/api/v2/rest/employees/ | GET | employeeLoginName | OPTIONAL | string | Fetch Employees for the given Client ID and Employee Login Name | /api/v2/rest/employees?clientId=1&employeeLoginName=USER | YES | ||
/api/v2/rest/employees/ | GET | checkForEnabledExchangeSync | OPTIONAL | boolean (true/false) | Fetch Employees for the given Client ID and employees with activated exchange sync | /api/v2/rest/employees?clientId=1&checkForEnabledExchangeSync=true | YES | ||
/api/v2/rest/employees/ | GET | ignoreClient | OPTIONAL | Fetch Employees for the given Client ID and return employees without client check | /api/v2/rest/employees?clientId=1&ignoreClient | YES | |||
/api/v2/rest/employees/ | POST | ApiSyncItem | Save Employee | /api/v2/rest/employees/[Employee Object] | YES | ||||
/api/v2/rest/employees/[id] | GET | ApiEmployee | Fetch Employee for the given Employee ID | /api/v2/rest/employees/1 | YES | ||||
/api/v2/rest/employees/ | PUT | ApiSyncItem | Update Employee | /api/v2/rest/employees/[Employee Object] | YES | ||||
Projects | |||||||||
/api/v2/rest/projects/ | GET | ApiProject[], ApiSyncItem[] | clientId |
REQUIRED
| int | Fetch All Projects for the given Client ID | /api/v2/rest/project?clientId=1 | YES | |
/api/v2/rest/projects/ | GET | from | OPTIONAL | int | Fetch All Projects for the given Client ID and start with given Project ID, use togehter with "size" | /api/v2/rest/projects?clientId=1&from=100&size=50 | YES | ||
/api/v2/rest/projects/ | GET | size | OPTIONAL | int | Fetch All Projects for the given Client ID and the given limit, use together with "from" | /api/v2/rest/projects?clientId=1&from=100&size=50 | YES | ||
/api/v2/rest/projects/ | GET | since | OPTIONAL | valid ETag | Fetch All Projects for the given Client ID and given date, only items modified since ETag will be returned | /api/v2/rest/projects?clientId=1&since=20110722153556 | YES | ||
/api/v2/rest/projects/ | GET | syncItem | OPTIONAL | boolean (true/false) | Fetch All Projects for the given Client ID and set syncitems "true" to return ApiSyncItems | /api/v2/rest/projects?clientId=1&syncItem=true | YES | ||
/api/v2/rest/projects/ | GET | customerId | OPTIONAL | string | Fetch All Projects for the given Client ID and given Customer ID | /api/v2/rest/projects?clientId=1&customerId=1 | YES | ||
/api/v2/rest/projects/ | GET | customerIsActive | OPTIONAL | boolean (true/false) | Fetch All Projects for the given Client ID and given Parameter, set to "true" to get only projects of active customers | /api/v2/rest/projects?clientId=1&customerIsActive=true | YES | ||
/api/v2/rest/projects/ | GET | projectIsInProcess | OPTIONAL | boolean (true/false) | Fetch All Projects for the given Client ID and given Parameter, set to "true" to get only "in process" projects | /api/v2/rest/projects?clientId=1&projectIsInProcess=true | YES | ||
/api/v2/rest/projects/ | GET | projectStatusId | OPTIONAL | int or array | Fetch All Projects for the given Client ID and given Project status ID | /api/v2/rest/projects?clientId=1&projectStatusId=[11, 12, 16, 35, 97, 108, 116] | YES | ||
/api/v2/rest/projects/ | GET | projectTypeId | OPTIONAL | int or array | Fetch All Projects for the given Client ID and given Project Type ID | /api/v2/rest/projects?clientId=1&projectTypeId=[24, 25, 26, 29, 30] | YES | ||
/api/v2/rest/projects/ | GET | projectLeaderId | OPTIONAL | int | Fetch All Projects for the given Client ID and given Leader ID | /api/v2/rest/projects?clientId=1&projectLeaderId=1 | YES | ||
/api/v2/rest/projects/ | GET | search | OPTIONAL | string | Fetch All Projects for the given Client ID and givenSearch Term | /api/v2/rest/projects?clientId=1&search=Project Name | YES | ||
/api/v2/rest/projects/ | POST | ApiSyncItem | synctoken | REQUIRED | string (ApiProject) | Save Project | /api/v2/rest/projects/[Project Object] | YES | |
/api/v2/rest/projects/[id] | GET | ApiProject, ApiSyncItem | syncItem | OPTIONAL | boolean (true/false) | set "true" to return ApiSyncItem | /api/v2/rest/projects/1&syncItem=true | YES | |
/api/v2/rest/projects/ | PUT | ApiSyncItem | (ApiProject) | Update Project | /api/v2/rest/projects/[Project Object] | YES | |||
/api/v2/rest/projects/ | DELETE | ApiSyncItem | synctoken | REQUIRED | (ApiProject) | Delete Project | /api/v2/rest/projects/1 | YES | |
projectFolders | |||||||||
/api/v2/rest/projectFolders/ | GET | ApiProjectFolder[] | clientId | REQUIRED | int | YES | |||
/api/v2/rest/projectFolders/ | customerId | OPTIONAL | string | ||||||
/api/v2/rest/projectFolders/ | onlyActive | OPTIONAL | boolean (true/false) | set to "true" to get only project folders | |||||
/api/v2/rest/projectFolders/ | type | OPTIONAL | string | folder type, P = project, SS = service - service, SM = service - material, SP = service - position, ALL = returns all type, if you ommit this parameter only P-types will return | |||||
/api/v2/rest/projectFolders/ | POST | ApiSyncItem | synctoken | REQUIRED | string (ApiProjectFolder) | YES | |||
/api/v2/rest/projectFolders/[id] | GET | ApiProjectFolder | YES | ||||||
/api/v2/rest/projectFolders/ | PUT | ApiSyncItem | (ApiProjectFolder) | YES | |||||
/api/v2/rest/projectFolders/ | DELETE | ApiSyncItem | (ApiProjectFolder) | YES | |||||
projectUnits | |||||||||
/api/v2/rest/projectUnits | GET | ApiProjectUnit[] | clientId | REQUIRED | int | Fetch all Project Units for the given clientId | /api/v2/rest/projectUnits | YES | |
/api/v2/rest/projectUnit/[id] | GET | ApiProjectUnit | Fetch Project Unit for the given Project Unit ID | /api/v2/rest/projectUnits/1 | YES | ||||
categories | |||||||||
/api/v2/rest/categories | GET | ApiCrmCategory[] | YES | ||||||
/api/v2/rest/categories/[id] | GET | ApiCrmCategory | YES | ||||||
services | |||||||||
/api/v2/rest/services | GET | ApiService[] | clientId | REQUIRED | int | Fetch all Services for the given Client ID | /api/v2/rest/services?clientId=1 | YES | |
/api/v2/rest/services/[id] | GET | ApiService | Fetch Service for the given Service ID | /api/v2/rest/services/1 | YES | ||||
serviceFees | |||||||||
/api/v2/rest/serviceFees | GET | ApiServiceFee[] | clientId | REQUIRED | int | Fetch all Service Fees for the given clientId | /api/v2/rest/serviceFees | YES | |
/api/v2/rest/serviceFees/[id] | GET | ApiServiceFee | Fetch Service Fee for the given Service | /api/v2/rest/serviceFees/1 | YES | ||||
Subproject | |||||||||
GET | ApiSubproject[] | clientId | REQUIRED | int | YES | ||||
projectId | OPTIONAL | int | YES | ||||||
parentId | OPTIONAL | int | YES | ||||||
ApiSyncItem[] | syncItem | OPTIONAL | boolean (true/false) | YES | |||||
POST | ApiSyncItem | synctoken | REQUIRED | string (ApiSubproject) | YES | ||||
/api/v2/rest/subprojects/[id] | GET | ApiSubproject | YES | ||||||
PUT | ApiSyncItem | (ApiSubproject) | YES | ||||||
DELETE | ApiSyncItem | (ApiSubproject) | YES | ||||||
/api/v2/rest/tasks | |||||||||
GET | ApiTask[] | fromEmployeeId | OPTIONAL | int | YES | ||||
toEmployeeId | OPTIONAL | int | |||||||
type | OPTIONAL | string (ApiTask:Task, ApiTask:ProjectTask, ApiTask:ProjectWarning) | |||||||
POST | ApiSyncItem | YES | |||||||
/api/v2/rest/tasks/[id] | |||||||||
GET | ApiTask | YES | |||||||
PUT | ApiSyncItem | YES | |||||||
DELETE | boolean | YES | |||||||
/api/v2/rest/texts | |||||||||
GET | ApiText[] | parentType | REQUIRED | type: A = assignment, C = calculation position, D = document, E = document position, F = cover footer, I = client, X = text, P = project, S = subproject, L = cover letter, T = milestone | YES | ||||
parentId | REQUIRED | int | |||||||
POST | ApiSyncItem | YES | |||||||
/api/v2/rest/texts/[id] | |||||||||
GET | ApiText | YES | |||||||
PUT | ApiSyncItem | YES | |||||||
DELETE | boolean | YES | |||||||
/api/v2/rest/misc/availablePaths | |||||||||
return a list of available paths | GET | string array | YES | ||||||
/api/v2/rest/misc/categories | |||||||||
GET | ApiSyncItem[] | YES | |||||||
/api/v2/rest/misc/costCenters | |||||||||
GET | ApiCostCenter[] | clientId | REQUIRED | int | YES | ||||
/api/v2/rest/misc/costCenters/[id] | |||||||||
GET | ApiCostCenter | YES | |||||||
/api/v2/rest/misc/countries | |||||||||
GET | string array | YES | |||||||
/api/v2/rest/misc/currentEmployee | |||||||||
GET | ApiEmployee | YES | |||||||
/api/v2/rest/misc/currentEmployee/accessRoles | |||||||||
GET | array | roles | REQUIRED | ["contacts","projectTasks","timeRecording","timeReporting"] | api/v2/rest/misc/currentEmployee/accessRoles?roles=["contacts","projectTasks","timeRecording","timeReporting"] | YES | |||
/api/v2/rest/misc/projectStatuses | |||||||||
GET | ApiProjectStatus[] | clientId | REQUIRED | int | YES | ||||
/api/v2/rest/misc/projectTypes | |||||||||
GET | ApiProjectType[] | clientId | REQUIRED | int | YES | ||||
/api/v2/rest/misc/salutations | |||||||||
GET | string array | YES | |||||||
/api/v2/rest/misc/settings | |||||||||
GET | array | clientId | REQUIRED | int | YES | ||||
scope | REQUIRED | billing | api/v2/rest/misc/settings?scope=billing&clientId=1 | ||||||
/api/v2/rest/misc/taxRates | |||||||||
GET | ApiTaxRate[] | clientId | REQUIRED | int | YES | ||||
/api/v2/rest/misc/taxRates/[id] | |||||||||
GET | ApiTaxRate | YES | |||||||
Units | |||||||||
/api/v2/rest/misc/units | GET | ApiUnit[] | clientId | REQUIRED | int | YES | |||
/api/v2/rest/misc/units/[Id] | GET | ApiUnit | YES | ||||||
Credentials Verification | |||||||||
/api/v2/rest/misc/verifyCredentials | GET | boolean or ApiErrorData | auth | REQUIRED | string | api/v2/rest/misc/verifyCredentials?auth=Basic bHVkd2lnOjA5NDVmYzk2MTFmNTVmZDBlMTgzZmI4YjA0NGYxYWZl | YES | ||
Approval Groups | |||||||||
api/v2/rest/misc/approvalGroups | GET | ApiApprovalGroup[] | clientId | REQUIRED | int | Fetch all Approval Groups given Client. | api/v2/rest/misc/approvalGroups?clientId=1 | YES | |
/api/v2/rest/misc/approvalGroups/[Id] | GET | ApiApprovalGroup | api/v2/rest/misc/approvalGroups/1 | YES | |||||
User Groups | |||||||||
api/v2/rest/misc/userGroups | GET | ApiSyncItem[] | Fetch all User Groups | api/v2/rest/misc/userGroups | YES | ||||
Currencies | |||||||||
api/v2/rest/misc/currencies | GET | ApiCurrency[] | clientId | REQUIRED | int | Fetch all Currencies given Client. | api/v2/rest/misc/currencies | YES | |
/api/v2/rest/misc/currencies/[Id] | GET | ApiCurrency[] | Fetch Currency By ID | api/v2/rest/misc/currencies/1 | YES | ||||
Project Leaders | |||||||||
api/v2/rest/misc/projectLeaders | /api/v2/rest/misc/projectLeaders | GET | ApiEmployee[] | clientId | REQUIRED | int | Fetch all Project Leaders for the given Client. | api/v2/rest/misc/projectLeaders | YES |
Version | |||||||||
api/v2/rest/misc/version | /api/v2/rest/misc/version | GET | string Array[] | Fetch Current Troi Version | api/v2/rest/misc/version | YES | |||
Settings | |||||||||
api/v2/rest/misc/settings | /api/v2/rest/misc/settings | GET | string Array[] | clientId | REQUIRED | int | Fetch all Settings for the given Scope | api/v2/rest/misc/settings?clientId=1&scope=accounting | YES |
scope | REQUIRED | string - available parameters (accounting, billing, BOOKKEEPING_VAT_IN_PRICE_LIST) | |||||||
Sync for Offline Client | |||||||||
GET | ApiOfflineClientsSync | YES | |||||||
WorkingTimeLog | |||||||||
/api/v2/rest/checkincheckout | GET | ApiWorkingTimeLog[] | getCurrentCheckIn | REQUIRED | boolean | Fetch All WorkingTimeLog | /api/v2/rest/checkincheckout?getCurrentCheckIn=true | YES | |
/api/v2/rest/checkincheckout | POST | ApiSyncItem | Save WorkTimeLog | /api/v2/rest/checkincheckout/[WorkTimeLog Object] | YES | ||||
Hermes Settings | |||||||||
/api/v2/rest/hermes/settings | GET | ApiHermesSettings[] | Fetch All Hermes Settings | /api/v2/rest/hermes/settings | YES | ||||
Hermes Projects | |||||||||
/api/v2/rest/hermes/projects | GET | ApiHermesProjects[] | search | REQUIRED | string (search=* , search=projectname) 2 search patterns are available (*) → for all projects and a part of Project Name like (test project) | Fetch All Hermes Projects | /api/v2/rest/hermes/projects?search=* /api/v2/rest/hermes/projects?search=projectName | YES | |
/api/v2/rest/hermes/projects/[id] | GET | ApiHermesProjects[] | Fetch Hermes Project By id | /api/v2/rest/hermes/projects/123 | YES | ||||
Hermes / E-Mail Management - Mails Attachment | |||||||||
/api/v2/rest/hermes/mails/attachments/[id] | GET | ApiHermesEmaiAttachment[] | Fetch Hermes Mail Attachment By id | /api/v2/rest/hermes/mails/attachments/1 | YES | ||||
/api/v2/rest/hermes/mails/attachments/ | POST | ApiSyncItem | Save Hermes Email Attachment | /api/v2/rest/hermes/mails/attachments/[Hermes EmaiAttachment Object] | YES | ||||
Hermes / E-Mail Management - Tags | |||||||||
/api/v2/rest/hermes/tags | POST | ApiHermesTagEx | add new, empty Hermes Tag | NO | |||||
/api/v2/rest/hermes/tags[id] | PUT | ApiHermesTagEx | edit Hermes Tag's participants | NO | |||||
Hermes / E-Mail Management - Contacts | |||||||||
/api/v2/rest/hermes/contacts | GET | ApiHermesTagParticipant[] | search | REQUIRED | string | search for contacts that will be participants of Hermes Tag * to get all entries | /api/v2/rest/hermes/contacts?search=ludwig | NO | |
/api/v2/rest/hermes/contacts[id] | GET | ApiHermesTagParticipant | NO | ||||||
Hermes / E-Mail Management - Mails | |||||||||
/api/v2/rest/hermes/mails | POST | ApiHermesMail ApiSyncItem | add new mail tagged by Hermes to be stored in Troi | NO | |||||
GET | ApiHermesMail[] | messageId | REQUIRED | string | search for Hermes Mail that fit given criteria message id (header); MUST be url-encoded | /api/v2/rest/hermes/mails?messageId=%3csample%3aid%40mail%3e | NO | ||
tagId | OPTIONAL | int | ID or HermesTag that was assigned with mail | /api/v2/rest/hermes/mails?messageId=%3csample%3aid%40mail%3e&tagId=123 | NO | ||||
/api/v2/rest/hermes/mails[id] | GET | ApiHermesMail | view Hermes Mail details | NO | |||||
Documents | |||||||||
GET | ApiDocuments[] | clientId | REQUIRED | int | YES | ||||
projectId | REQUIRED | int | YES | ||||||
document_type | OPTIONAL | I (invoice) or O (offer) | YES | ||||||
onlyIds | OPTIONAL | 1 | YES | ||||||
size | OPTIONAL | int | YES | ||||||
from | OPTIONAL | int | YES | ||||||
since | OPTIONAL | string (YYMMDDHHMMSS) fromat | YES | ||||||
/api/v2/rest/documents/[id] | GET |
| YES | ||||||
/api/v2/rest/documents/[id] Documents can just be updated when document has no number | PUT | ApiSyncItem |
| YES |