{"files":{"SKILL.md":"---\nname: xtrf-home-portal-api\ndescription: \"XTRF Home Portal API skill. Use when working with XTRF Home Portal for browser, accounting, customers. Covers 341 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# XTRF Home Portal API\nAPI version: 2.0\n\n## Auth\nApiKey X-AUTH-ACCESS-TOKEN in header\n\n## Base URL\nhttps://presentation.s.xtrf.eu/home-api\n\n## Setup\n1. Set your API key in the appropriate header\n2. GET /browser/csv -- searches for data (ie. customer, task, etc) and returns it in a csv form.\n3. POST /browser/views/for/{className} -- create first for\n\n## Endpoints\n341 endpoints across 20 groups. See references/api-spec.lap for full details.\n\n### Browser\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /browser/csv | Searches for data (ie. customer, task, etc) and returns it in a CSV form. |\n| GET | /browser | Searches for data (ie. customer, task, etc) and returns it in a tabular form. |\n| GET | /browser/views/for/{className} | Returns views' brief. |\n| POST | /browser/views/for/{className} | Creates view for given class. |\n| GET | /browser/views/{viewId} | Returns all view's information. |\n| PUT | /browser/views/{viewId} | Updates all view's information. |\n| DELETE | /browser/views/{viewId} | Removes a view. |\n| DELETE | /browser/views/{viewId}/columns/{columnName} | Deletes a single column from view. |\n| GET | /browser/views/{viewId}/columns/{columnName}/settings | Returns column's specific settings. |\n| PUT | /browser/views/{viewId}/columns/{columnName}/settings | Updates column's specific settings. |\n| GET | /browser/views/{viewId}/columns | Returns columns defined in view. |\n| PUT | /browser/views/{viewId}/columns | Updates columns in view. |\n| GET | /browser/views/details/for/{className} | Returns current view's detailed information, suitable for browser. |\n| GET | /browser/views/{viewId}/filter | Returns view's filter. |\n| PUT | /browser/views/{viewId}/filter | Updates view's filter. |\n| GET | /browser/views/{viewId}/settings/local | Returns view's local settings (for current user). |\n| PUT | /browser/views/{viewId}/settings/local | Updates view's local settings (for current user). |\n| GET | /browser/views/{viewId}/order | Returns view's order settings. |\n| PUT | /browser/views/{viewId}/order | Updates view's order settings. |\n| GET | /browser/views/{viewId}/permissions | Returns view's permissions. |\n| PUT | /browser/views/{viewId}/permissions | Updates view's permissions. |\n| GET | /browser/views/{viewId}/settings | Returns view's settings. |\n| PUT | /browser/views/{viewId}/settings | Updates view's settings. |\n| GET | /browser/views/details/for/{className}/{viewId} | Returns view's detailed information, suitable for browser. |\n| POST | /browser/views/details/for/{className}/{viewId} | Selects given view as current and returns its detailed information, suitable for browser. |\n| PUT | /browser/views/{viewId}/filter/{filterProperty} | Updates view's filter property. |\n\n### Accounting\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /accounting/customers/invoices | Lists all client invoices in all statuses (including not ready and drafts) that have been updated since a specific date. |\n| POST | /accounting/customers/invoices | Creates a new invoice. |\n| GET | /accounting/customers/invoices/{invoiceId}/payments | Returns all payments for the client invoice. |\n| POST | /accounting/customers/invoices/{invoiceId}/payments | Adds a new payment to the client invoice. The invoice payment status (Not Paid, Partially Paid, Fully Paid) is automatically recalculated. |\n| GET | /accounting/customers/invoices/{invoiceId} | Returns client invoice details. |\n| DELETE | /accounting/customers/invoices/{invoiceId} | Removes a client invoice. |\n| POST | /accounting/customers/invoices/documents | Allows for downloading multiple client invoice documents. |\n| POST | /accounting/customers/invoices/xmlDocuments | Allows for downloading multiple client invoice xml documents. |\n| POST | /accounting/customers/invoices/{invoiceId}/duplicate | Duplicate client invoice. |\n| POST | /accounting/customers/invoices/{invoiceId}/duplicate/proForma | Duplicate client invoice as pro forma. |\n| GET | /accounting/customers/invoices/ids | Returns client invoices' internal identifiers. |\n| GET | /accounting/customers/invoices/{invoiceId}/dates | Returns dates of a given client invoice. |\n| GET | /accounting/customers/invoices/{invoiceId}/document | Allows for downloading a given client invoice document. |\n| GET | /accounting/customers/invoices/{invoiceId}/paymentTerms | Returns payment terms of a given client invoice. |\n| GET | /accounting/customers/invoices/{invoiceId}/xmlDocument | Allows for downloading a given client invoice xml document. |\n| POST | /accounting/customers/invoices/{invoiceId}/sendReminder | Sends reminder. |\n| POST | /accounting/customers/invoices/sendReminders | Sends reminders. Returns number of sent e-mails. |\n| DELETE | /accounting/customers/payments/{paymentId} | Removes a customer payment. |\n| GET | /accounting/providers/invoices | Lists all vendor invoices in all statuses (including not ready and drafts) that have been updated since a specific date. |\n| POST | /accounting/providers/invoices | Creates a new invoice. |\n| GET | /accounting/providers/invoices/{invoiceId}/payments | Returns all payments for the vendor invoice. |\n| POST | /accounting/providers/invoices/{invoiceId}/payments | Creates a new payment on the vendor account and assigns the payment to the invoice. |\n| GET | /accounting/providers/invoices/{invoiceId} | Returns provider invoice details. |\n| DELETE | /accounting/providers/invoices/{invoiceId} | Removes a provider invoice. |\n| GET | /accounting/providers/invoices/ids | Returns vendor invoices' internal identifiers. |\n| GET | /accounting/providers/invoices/{invoiceId}/document | Generates provider invoice document (PDF). |\n| POST | /accounting/providers/invoices/{invoiceId}/send | Sends a provider invoice. |\n| POST | /accounting/providers/invoices/{invoiceId}/status | Changes invoice status to given status. |\n| DELETE | /accounting/providers/payments/{paymentId} | Removes a provider payment. |\n\n### Customers\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /customers/persons | Creates a new person. |\n| GET | /customers/persons/{personId} | Returns person details. |\n| PUT | /customers/persons/{personId} | Updates an existing person. |\n| DELETE | /customers/persons/{personId} | Removes a person. |\n| POST | /customers/persons/accessToken | Generates a single use sign-in token. |\n| GET | /customers/persons/ids | Returns persons' internal identifiers. |\n| GET | /customers/persons/{personId}/contact | Returns contact of a given person. |\n| PUT | /customers/persons/{personId}/contact | Updates contact of a given person. |\n| GET | /customers/persons/{personId}/customFields | Returns custom fields of a given person. |\n| PUT | /customers/persons/{personId}/customFields | Updates custom fields of a given person. |\n| DELETE | /customers/priceLists/{priceListId} | Removes a customer price list. |\n| GET | /customers | Returns list of simple clients representations |\n| POST | /customers | Creates a new client. |\n| GET | /customers/{customerId} | Returns client details. |\n| PUT | /customers/{customerId} | Updates an existing client. |\n| DELETE | /customers/{customerId} | Removes a client. |\n| GET | /customers/{customerId}/priceProfiles/active | Returns list of active price profiles for a client. |\n| GET | /customers/{customerId}/address | Returns address of a given client. |\n| PUT | /customers/{customerId}/address | Updates address of a given client. |\n| GET | /customers/ids | Returns clients' internal identifiers. |\n| GET | /customers/{customerId}/budgetCodes | Returns list of available budget codes for a client. |\n| GET | /customers/byAlias | Returns client details. |\n| GET | /customers/{customerId}/categories | Returns categories of a given client. |\n| PUT | /customers/{customerId}/categories | Updates categories of a given client. |\n| GET | /customers/{customerId}/contact | Returns contact of a given client. |\n| PUT | /customers/{customerId}/contact | Updates contact of a given client. |\n| GET | /customers/{customerId}/correspondenceAddress | Returns correspondence address of a given client. |\n| PUT | /customers/{customerId}/correspondenceAddress | Updates correspondence address of a given client. |\n| GET | /customers/{customerId}/customFields/{customFieldKey} | Returns custom field of a given client. |\n| PUT | /customers/{customerId}/customFields/{customFieldKey} | Updates given custom field of a given client. |\n| GET | /customers/{customerId}/customFields | Returns custom fields of a given client. |\n| PUT | /customers/{customerId}/customFields | Updates custom fields of a given client. |\n| GET | /customers/{customerId}/settings/specializations | Returns specializations available for a given client in the Client Portal. |\n| GET | /customers/{customerId}/industries | Returns industries of a given client. |\n| PUT | /customers/{customerId}/industries | Updates industries of a given client. |\n| GET | /customers/{customerId}/settings/languages | Returns languages available for a given client in the Client Portal. |\n| GET | /customers/{customerId}/offices | Returns list of offices in the office structure in which the client is located. |\n| GET | /customers/{customerId}/services | Returns list of available services for a client. |\n\n### Files\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /files | Uploads a temporary file (ie. for XML import). Returns token which can be used in other API calls. |\n\n### License\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /license | Returns license content. |\n| POST | /license/refresh | Refreshes license content. |\n\n### Macros\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /macros/{macroId}/run | Executes a macro. |\n\n### Confidential-groups\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /confidential-groups/sensitiveClients/client | Adds client to sensitive clients list. |\n| GET | /confidential-groups/sensitiveClients | Returns sensitive clients list. |\n| PUT | /confidential-groups/sensitiveClients | Updates sensitive clients list. |\n| GET | /confidential-groups/sensitiveClients/isSensitive/{clientId} | Check if client is sensitive. |\n| DELETE | /confidential-groups/sensitiveClients/client/{sensitiveClientId} | Removes sensitive client from sensitive clients list. |\n| POST | /confidential-groups/trustedVendors/vendor | Adds vendor to trusted vendors list. |\n| GET | /confidential-groups/trustedVendors | Returns trusted vendors list. |\n| PUT | /confidential-groups/trustedVendors | Updates trusted vendors list. |\n| DELETE | /confidential-groups/trustedVendors/vendor/{trustedVendorId} | Removes trusted vendor from trusted vendors list. |\n\n### ProjectGroups\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /projectGroups | Returns all project groups. |\n| POST | /projectGroups | Creates a new Project Groups. |\n| GET | /projectGroups/{projectGroupId} | Returns project group details. |\n| PUT | /projectGroups/{projectGroupId} | Update project group details. |\n| DELETE | /projectGroups/{projectGroupId} | Removes a project group. |\n| PUT | /projectGroups/{projectGroupId}/linkProjects | Add projects to project group. |\n| PUT | /projectGroups/{projectGroupId}/linkQuotes | Add quotes to project group. |\n| PUT | /projectGroups/{projectGroupId}/unlinkProjects | Remove projects from project group. |\n| PUT | /projectGroups/{projectGroupId}/unlinkQuotes | Remove quotes from project group. |\n\n### Providers\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /providers/persons/{personId} | Returns person details. |\n| DELETE | /providers/persons/{personId} | Removes a person. |\n| GET | /providers/persons/ids | Returns persons' internal identifiers. |\n| GET | /providers/persons/{personId}/contact | Returns contact of a given person. |\n| GET | /providers/persons/{personId}/customFields | Returns custom fields of a given person. |\n| POST | /providers/persons/{personId}/notification/invitation | Sends invitation to Vendor Portal. |\n| DELETE | /providers/priceLists/{priceListId} | Removes a provider price list. |\n| GET | /providers/{providerId} | Returns provider details. |\n| DELETE | /providers/{providerId} | Removes a provider. |\n| GET | /providers/{providerId}/address | Returns address of a given provider. |\n| GET | /providers/ids | Returns providers' internal identifiers. |\n| GET | /providers/{providerId}/competencies | Returns competencies of a given provider. |\n| GET | /providers/{providerId}/contact | Returns contact of a given provider. |\n| GET | /providers/{providerId}/correspondenceAddress | Returns correspondence address of a given provider. |\n| GET | /providers/{providerId}/customFields | Returns custom fields of a given provider. |\n| POST | /providers/{providerId}/notification/invitation | Sends invitations to Vendor Portal. |\n\n### Reports\n| Method | Path | Description |\n|--------|------|-------------|\n| DELETE | /reports/{reportId} | Removes a report. |\n| POST | /reports/{reportId}/duplicate | Duplicates a report. |\n| POST | /reports/export/xml | Exports reports definition to XML. |\n| GET | /reports/{reportId}/result/csv | Generates CSV content for a report. |\n| GET | /reports/{reportId}/result/printerFriendly | Generates printer friendly content for a report. |\n| POST | /reports/import/xml | Imports reports definition from XML. |\n| PUT | /reports/{reportId}/preferred | Marks report as preferred or not. |\n\n### Services\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /services/all | Returns services list |\n| GET | /services/active | Returns active services list |\n\n### Settings\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /settings/customFields | Returns Custom Fields configuration. |\n\n### Subscription\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /subscription/supports | This method can be used to determine if hooks are supported. |\n| GET | /subscription | Returns all subscriptions |\n| POST | /subscription | Subscribe to event |\n| DELETE | /subscription/{subscriptionId} | Unsubscribe from event |\n\n### System\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /system/configuration/email | Get email configuration |\n| GET | /system/configuration/ftp | Get FTP configuration |\n| GET | /system/configuration | Get basic system configuration |\n| GET | /system/timeZone | Get system timezone information |\n\n### Users\n| Method | Path | Description |\n|--------|------|-------------|\n| PUT | /users/{userId}/password | Sets user's password to a new value. |\n| GET | /users | Returns list of simple users representations |\n| GET | /users/{userId} | Returns user details. |\n| PUT | /users/{userId} | Updates an existing user. |\n| GET | /users/{userId}/customFields/{customFieldKey} | Returns custom field of a given user. |\n| PUT | /users/{userId}/customFields/{customFieldKey} | Updates given custom field of a given user. |\n| GET | /users/{userId}/customFields | Returns custom fields of a given user. |\n| PUT | /users/{userId}/customFields | Updates custom fields of a given user. |\n| GET | /users/me | Returns currently signed in user details. |\n| GET | /users/me/timeZone | Returns time zone preferred by user currently signed in. |\n\n### Dictionaries\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /dictionaries/active | Returns active dictionary entities for all types. |\n| GET | /dictionaries/{type}/active | Returns active values from a given dictionary. |\n| GET | /dictionaries/all | Returns dictionary entities for all types. Both active and not active ones. |\n| GET | /dictionaries/{type}/all | Returns all values (both active and not active) from a given dictionary. |\n| GET | /dictionaries/{type}/{id} | Returns specific value from a given dictionary. |\n| GET | /dictionaries/{type}/all/default | Returns a default value from a given dictionary. |\n| GET | /dictionaries/currency/{isoCode}/exchangeRate | Returns currency exchange rates. |\n| POST | /dictionaries/currency/{isoCode}/exchangeRate | Adding currency exchange rates. |\n| POST | /v2/dictionaries/language |  |\n| PATCH | /v2/dictionaries/language/{languageId} |  |\n| POST | /v2/dictionaries/specialization |  |\n| PATCH | /v2/dictionaries/specialization/{specializationId} |  |\n\n### Jobs\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /jobs/{jobId}/files/output |  |\n| PUT | /jobs/{jobId}/vendor | Assigns vendor to a job in a project. |\n| PUT | /jobs/{jobId}/status | Changes job status if possible (400 Bad Request is returned otherwise). |\n| GET | /jobs/{jobId} | Returns job details by jobId. |\n| GET | /jobs/{jobId}/files | Returns list of input and output files of a job. |\n| GET | /jobs/{jobId}/files/{fileId} | Returns file metadata. |\n| PUT | /jobs/{jobId}/dates | Updates dates of a given job. |\n| PUT | /jobs/{jobId}/instructions | Updates instructions for a job. |\n| POST | /v2/jobs/{jobId}/files/addExternalLink |  |\n| POST | /v2/jobs/{jobId}/files/delivered/addLink | Adds file link to the project as a link delivered in the job. |\n| PUT | /v2/jobs/{jobId}/files/delivered/add | Adds files to the project as delivered in the job. |\n| PUT | /v2/jobs/{jobId}/vendor | Assigns vendor to a job in a project. |\n| PUT | /v2/jobs/{jobId}/dates | Updates dates of a given job. |\n| PUT | /v2/jobs/{jobId}/status | Changes job status if possible (400 Bad Request is returned otherwise). |\n| GET | /v2/jobs/{jobId} | Returns details for a job. |\n| DELETE | /v2/jobs/{jobId} | Deletes a job. |\n| GET | /v2/jobs/for-external-id |  |\n| GET | /v2/jobs/{jobId}/files/delivered | Returns list of files delivered in the job. |\n| GET | /v2/jobs/{jobId}/files/sharedReferenceFiles | Returns list of files shared with the job as Reference Files. |\n| GET | /v2/jobs/{jobId}/files/sharedWorkFiles | Returns list of files shared with the job as Work Files. |\n| POST | /v2/jobs/merge | Merges given list of jobs into one job. |\n| PUT | /v2/jobs/{jobId}/files/sharedReferenceFiles/share | Shares selected files as Reference Files with a job in a project. |\n| PUT | /v2/jobs/{jobId}/files/sharedWorkFiles/share | Shares selected files as Work Files with a job in a project. |\n| PUT | /v2/jobs/{jobId}/files/stopSharing | Stops sharing selected files with a job in a project. |\n| PUT | /v2/jobs/{jobId}/instructions | Updates instructions for a job. |\n| POST | /v2/jobs/{jobId}/files/delivered/upload | Uploads file to the project as a file delivered in the job. |\n| POST | /v2/jobs/{jobId}/files/delivered/uploadFileByVendor | Uploads file to the project as a file delivered in the job, added by vendor. |\n\n### Projects\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /projects | Creates a new Classic Project. |\n| POST | /projects/{projectId}/languageCombinations | Creates a new language combination for a given project without creating a task. |\n| POST | /projects/{projectId}/finance/payables | Adds a payable to a project. |\n| POST | /projects/{projectId}/finance/receivables | Adds a receivable to a project. |\n| POST | /projects/{projectId}/tasks | Creates a new task for a given project. |\n| GET | /projects/{projectId} | Returns project details. |\n| DELETE | /projects/{projectId} | Removes a project. |\n| PUT | /projects/{projectId}/finance/payables/{payableId} | Updates a simple payable. |\n| DELETE | /projects/{projectId}/finance/payables/{payableId} | Deletes a payable. |\n| PUT | /projects/{projectId}/finance/receivables/{receivableId} | Updates a simple receivable. |\n| DELETE | /projects/{projectId}/finance/receivables/{receivableId} | Deletes a receivable. |\n| GET | /projects/ids | Returns projects' internal identifiers. |\n| GET | /projects/{projectId}/contacts | Returns contacts of a given project. |\n| PUT | /projects/{projectId}/contacts | Updates contacts of a given project. |\n| GET | /projects/{projectId}/customFields | Returns custom fields of a given project. |\n| PUT | /projects/{projectId}/customFields | Updates custom fields of a given project. |\n| GET | /projects/{projectId}/dates | Returns dates of a given project. |\n| PUT | /projects/{projectId}/dates | Updates dates of a given project. |\n| GET | /projects/files/{fileId}/download | Downloads a file. |\n| GET | /projects/{projectId}/finance | Returns finance of a given project. |\n| GET | /projects/{projectId}/instructions | Returns instructions of a given project. |\n| PUT | /projects/{projectId}/instructions | Updates instructions of a given project. |\n| POST | /v2/projects/{projectId}/files/addExternalLinks |  |\n| POST | /v2/projects/{projectId}/externalInfo |  |\n| POST | /v2/projects/{projectId}/files/addLink | Adds file links to the project as added by PM. |\n| PUT | /v2/projects/{projectId}/files/add | Adds files to the project as added by PM. |\n| POST | /v2/projects/{projectId}/addJob |  |\n| PUT | /v2/projects/{projectId}/files/addTargetFile | Adds target file to the project as added by PM. |\n| POST | /v2/projects/files/archive | Prepares a ZIP archive that contains the specified files. |\n| PUT | /v2/projects/{projectId}/status | Changes project status if possible (400 Bad Request is returned otherwise). |\n| POST | /v2/projects | Creates a new Smart Project. |\n| POST | /v2/projects/{projectId}/createCatToolProject | Creates Cat Tool Project corresponding to XTRF project. |\n| POST | /v2/projects/{projectId}/finance/payables | Adds a payable to a project. |\n| POST | /v2/projects/{projectId}/finance/receivables | Adds a receivable to a project. |\n| DELETE | /v2/projects/{projectId}/files/{fileId} | Deletes a file. |\n| PUT | /v2/projects/{projectId}/finance/payables/{payableId} | Updates a simple payable. |\n| DELETE | /v2/projects/{projectId}/finance/payables/{payableId} | Deletes a payable. |\n| PUT | /v2/projects/{projectId}/finance/receivables/{receivableId} | Updates a simple receivable. |\n| DELETE | /v2/projects/{projectId}/finance/receivables/{receivableId} | Deletes a receivable. |\n| GET | /v2/projects/for-external-id/{externalProjectId} | Returns project details. |\n| GET | /v2/projects/{projectId} | Returns project details. |\n| GET | /v2/projects/{projectId}/catToolProject | Returns if cat tool project is created or queued. |\n| GET | /v2/projects/catToolProjectTemplates | Returns CAT Tool project templates available for selection in XTRF. |\n| GET | /v2/projects/{projectId}/clientContacts | Returns Client Contacts information for a project. |\n| PUT | /v2/projects/{projectId}/clientContacts | Updates Client Contacts for a project. |\n| GET | /v2/projects/{projectId}/customFields | Returns a list of custom field keys and values for a project. |\n| GET | /v2/projects/{projectId}/files/deliverable | Returns list of files in a project, that are ready to be delivered to client. |\n| GET | /v2/projects/files/{fileId} | Returns details of a file. |\n| GET | /v2/projects/files/{fileId}/download/{fileName} | Downloads a file content. |\n| GET | /v2/projects/{projectId}/files | Returns list of files in a project. |\n| GET | /v2/projects/{projectId}/finance | Returns finance information for a project. |\n| GET | /v2/projects/{projectId}/jobs | Returns list of jobs in a project. |\n| GET | /v2/projects/{projectId}/process | Returns process id. |\n| PUT | /v2/projects/{projectId}/catToolProjectTemplateDetails | Updates template details for a project. |\n| PUT | /v2/projects/{projectId}/clientDeadline | Updates Client Deadline for a project. |\n| PUT | /v2/projects/{projectId}/clientNotes | Updates Client Notes for a project. |\n| PUT | /v2/projects/{projectId}/clientReferenceNumber | Updates Client Reference Number for a project. |\n| PUT | /v2/projects/{projectId}/customFields/{key} | Updates a custom field with a specified key in a project |\n| PUT | /v2/projects/{projectId}/internalNotes | Updates Internal Notes for a project. |\n| PUT | /v2/projects/{projectId}/orderDate | Updates Order Date for a project. |\n| PUT | /v2/projects/{projectId}/processType |  |\n| PUT | /v2/projects/{projectId}/sourceLanguage | Updates source language for a project. |\n| PUT | /v2/projects/{projectId}/specialization | Updates specialization for a project. |\n| PUT | /v2/projects/{projectId}/targetLanguages | Updates target languages for a project. |\n| PUT | /v2/projects/{projectId}/vendorInstructions | Updates instructions for all vendors performing the jobs in a project. |\n| PUT | /v2/projects/{projectId}/volume | Updates volume for a project. |\n| POST | /v2/projects/{projectId}/files/upload | Uploads file to the project as a file uploaded by PM. |\n\n### Quotes\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /quotes/{quoteId}/languageCombinations | Creates a new language combination for a given quote without creating a task. |\n| POST | /quotes/{quoteId}/finance/payables | Adds a payable. |\n| POST | /quotes/{quoteId}/finance/receivables | Adds a receivable. |\n| POST | /quotes/{quoteId}/tasks | Creates a new task for a given quote. |\n| GET | /quotes/{quoteId} | Returns quote details. |\n| DELETE | /quotes/{quoteId} | Removes a quote. |\n| PUT | /quotes/{quoteId}/finance/payables/{payableId} | Updates a simple payable. |\n| DELETE | /quotes/{quoteId}/finance/payables/{payableId} | Deletes a payable. |\n| PUT | /quotes/{quoteId}/finance/receivables/{receivableId} | Updates a simple receivable. |\n| DELETE | /quotes/{quoteId}/finance/receivables/{receivableId} | Deletes a receivable. |\n| GET | /quotes/ids | Returns quotes' internal identifiers. |\n| GET | /quotes/{quoteId}/customFields | Returns custom fields of a given quote. |\n| PUT | /quotes/{quoteId}/customFields | Updates custom fields of a given quote. |\n| GET | /quotes/{quoteId}/dates | Returns dates of a given quote. |\n| GET | /quotes/{quoteId}/finance | Returns finance of a given quote. |\n| GET | /quotes/{quoteId}/instructions | Returns instructions of a given quote. |\n| PUT | /quotes/{quoteId}/instructions | Updates instructions of a given quote. |\n| POST | /quotes/{quoteId}/confirmation/send | Sends a quote for customer confirmation. |\n| POST | /quotes/{quoteId}/start | Starts a quote. |\n| POST | /v2/quotes/{quoteId}/files/addExternalLinks |  |\n| POST | /v2/quotes/{quoteId}/externalInfo |  |\n| POST | /v2/quotes/{quoteId}/files/addLink | Adds file links to the quote as added by PM. |\n| PUT | /v2/quotes/{quoteId}/files/add | Adds files to the quote as added by PM. |\n| POST | /v2/quotes/{quoteId}/addJob |  |\n| PUT | /v2/quotes/{quoteId}/files/addTargetFile | Adds target file to the quote as added by PM. |\n| POST | /v2/quotes/files/archive | Prepares a ZIP archive that contains the specified files. |\n| PUT | /v2/quotes/{quoteId}/status | Changes quote status if possible (400 Bad Request is returned otherwise). |\n| POST | /v2/quotes | Creates a new Smart Quote. |\n| POST | /v2/quotes/{quoteId}/finance/payables | Adds a payable to a quote. |\n| POST | /v2/quotes/{quoteId}/finance/receivables | Adds a receivable to a quote. |\n| DELETE | /v2/quotes/{quoteId}/files/{fileId} | Deletes a file. |\n| PUT | /v2/quotes/{quoteId}/finance/payables/{payableId} | Updates a simple payable. |\n| DELETE | /v2/quotes/{quoteId}/finance/payables/{payableId} | Deletes a payable. |\n| PUT | /v2/quotes/{quoteId}/finance/receivables/{receivableId} | Updates a simple receivable. |\n| DELETE | /v2/quotes/{quoteId}/finance/receivables/{receivableId} | Deletes a receivable. |\n| GET | /v2/quotes/for-external-id/{externalProjectId} | Returns quote details. |\n| GET | /v2/quotes/{quoteId} | Returns quote details. |\n| GET | /v2/quotes/{quoteId}/clientContacts | Returns Client Contacts information for a quote. |\n| PUT | /v2/quotes/{quoteId}/clientContacts | Updates Client Contacts for a quote. |\n| GET | /v2/quotes/{quoteId}/customFields | Returns a list of custom field keys and values for a project. |\n| GET | /v2/quotes/files/{fileId} | Returns details of a file. |\n| GET | /v2/quotes/files/{fileId}/download/{fileName} | Downloads a file content. |\n| GET | /v2/quotes/{quoteId}/files | Returns list of files in a quote. |\n| GET | /v2/quotes/{quoteId}/finance | Returns finance information for a quote. |\n| GET | /v2/quotes/{quoteId}/jobs | Returns list of jobs in a quote. |\n| GET | /v2/quotes/{quoteId}/process | Returns process id. |\n| PUT | /v2/quotes/{quoteId}/businessDays | Updates Business Days for a quote. |\n| PUT | /v2/quotes/{quoteId}/catToolProjectTemplateDetails | Updates template details for a quote. |\n| PUT | /v2/quotes/{quoteId}/clientNotes | Updates Client Notes for a quote. |\n| PUT | /v2/quotes/{quoteId}/clientReferenceNumber | Updates Client Reference Number for a quote. |\n| PUT | /v2/quotes/{quoteId}/customFields/{key} | Updates a custom field with a specified key in a quote. |\n| PUT | /v2/quotes/{quoteId}/expectedDeliveryDate | Updates Expected Delivery Date for a quote. |\n| PUT | /v2/quotes/{quoteId}/internalNotes | Updates Internal Notes for a quote. |\n| PUT | /v2/quotes/{quoteId}/processType |  |\n| PUT | /v2/quotes/{quoteId}/quoteExpiry | Updates Quote Expiry Date for a quote. |\n| PUT | /v2/quotes/{quoteId}/sourceLanguage | Updates source language for a quote. |\n| PUT | /v2/quotes/{quoteId}/specialization | Updates specialization for a quote. |\n| PUT | /v2/quotes/{quoteId}/targetLanguages | Updates target languages for a quote. |\n| PUT | /v2/quotes/{quoteId}/vendorInstructions | Updates instructions for all vendors performing the jobs in a quote. |\n| PUT | /v2/quotes/{quoteId}/volume | Updates volume for a quote. |\n| POST | /v2/quotes/{quoteId}/files/upload | Uploads file to the quote as a file uploaded by PM. |\n\n### Tasks\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /tasks/{taskId}/files/input | Adds files to a given task. |\n| DELETE | /tasks/{taskId} | Removes a task. |\n| GET | /tasks/{taskId}/contacts | Returns contacts of a given task. |\n| PUT | /tasks/{taskId}/contacts | Updates contacts of a given task. |\n| GET | /tasks/{taskId}/customFields | Returns custom fields of a given task. |\n| PUT | /tasks/{taskId}/customFields | Updates custom fields of a given task. |\n| GET | /tasks/{taskId}/dates | Returns dates of a given task. |\n| PUT | /tasks/{taskId}/dates | Updates dates of a given task. |\n| GET | /tasks/{taskId}/instructions | Returns instructions of a given task. |\n| PUT | /tasks/{taskId}/instructions | Updates instructions of a given task. |\n| GET | /tasks/{taskId}/progress | Returns progress of a given task. |\n| GET | /tasks/{taskId}/files | Returns lists of files of a given task. |\n| POST | /tasks/{taskId}/start | Starts a task. |\n| PUT | /tasks/{taskId}/clientTaskPONumber | Updates Client Task PO Number of a given task. |\n| PUT | /tasks/{taskId}/name | Updates name of a given task. |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"List all csv?\" -> GET /browser/csv\n- \"List all browser?\" -> GET /browser\n- \"Get for details?\" -> GET /browser/views/for/{className}\n- \"Get view details?\" -> GET /browser/views/{viewId}\n- \"Update a view?\" -> PUT /browser/views/{viewId}\n- \"Delete a view?\" -> DELETE /browser/views/{viewId}\n- \"Delete a column?\" -> DELETE /browser/views/{viewId}/columns/{columnName}\n- \"List all settings?\" -> GET /browser/views/{viewId}/columns/{columnName}/settings\n- \"List all columns?\" -> GET /browser/views/{viewId}/columns\n- \"List all filter?\" -> GET /browser/views/{viewId}/filter\n- \"List all local?\" -> GET /browser/views/{viewId}/settings/local\n- \"List all order?\" -> GET /browser/views/{viewId}/order\n- \"List all permissions?\" -> GET /browser/views/{viewId}/permissions\n- \"Update a filter?\" -> PUT /browser/views/{viewId}/filter/{filterProperty}\n- \"List all invoices?\" -> GET /accounting/customers/invoices\n- \"Create a invoice?\" -> POST /accounting/customers/invoices\n- \"List all payments?\" -> GET /accounting/customers/invoices/{invoiceId}/payments\n- \"Create a payment?\" -> POST /accounting/customers/invoices/{invoiceId}/payments\n- \"Get invoice details?\" -> GET /accounting/customers/invoices/{invoiceId}\n- \"Delete a invoice?\" -> DELETE /accounting/customers/invoices/{invoiceId}\n- \"Create a document?\" -> POST /accounting/customers/invoices/documents\n- \"Create a xmlDocument?\" -> POST /accounting/customers/invoices/xmlDocuments\n- \"Create a duplicate?\" -> POST /accounting/customers/invoices/{invoiceId}/duplicate\n- \"Create a proForma?\" -> POST /accounting/customers/invoices/{invoiceId}/duplicate/proForma\n- \"List all ids?\" -> GET /accounting/customers/invoices/ids\n- \"List all dates?\" -> GET /accounting/customers/invoices/{invoiceId}/dates\n- \"List all document?\" -> GET /accounting/customers/invoices/{invoiceId}/document\n- \"List all paymentTerms?\" -> GET /accounting/customers/invoices/{invoiceId}/paymentTerms\n- \"List all xmlDocument?\" -> GET /accounting/customers/invoices/{invoiceId}/xmlDocument\n- \"Create a sendReminder?\" -> POST /accounting/customers/invoices/{invoiceId}/sendReminder\n- \"Delete a payment?\" -> DELETE /accounting/customers/payments/{paymentId}\n- \"Create a person?\" -> POST /customers/persons\n- \"Get person details?\" -> GET /customers/persons/{personId}\n- \"Update a person?\" -> PUT /customers/persons/{personId}\n- \"Delete a person?\" -> DELETE /customers/persons/{personId}\n- \"Create a accessToken?\" -> POST /customers/persons/accessToken\n- \"List all contact?\" -> GET /customers/persons/{personId}/contact\n- \"List all customFields?\" -> GET /customers/persons/{personId}/customFields\n- \"Delete a priceList?\" -> DELETE /customers/priceLists/{priceListId}\n- \"List all customers?\" -> GET /customers\n- \"Create a customer?\" -> POST /customers\n- \"Get customer details?\" -> GET /customers/{customerId}\n- \"Update a customer?\" -> PUT /customers/{customerId}\n- \"Delete a customer?\" -> DELETE /customers/{customerId}\n- \"List all active?\" -> GET /customers/{customerId}/priceProfiles/active\n- \"List all address?\" -> GET /customers/{customerId}/address\n- \"List all budgetCodes?\" -> GET /customers/{customerId}/budgetCodes\n- \"List all byAlias?\" -> GET /customers/byAlias\n- \"List all categories?\" -> GET /customers/{customerId}/categories\n- \"List all correspondenceAddress?\" -> GET /customers/{customerId}/correspondenceAddress\n- \"Get customField details?\" -> GET /customers/{customerId}/customFields/{customFieldKey}\n- \"Update a customField?\" -> PUT /customers/{customerId}/customFields/{customFieldKey}\n- \"List all specializations?\" -> GET /customers/{customerId}/settings/specializations\n- \"List all industries?\" -> GET /customers/{customerId}/industries\n- \"List all languages?\" -> GET /customers/{customerId}/settings/languages\n- \"List all offices?\" -> GET /customers/{customerId}/offices\n- \"List all services?\" -> GET /customers/{customerId}/services\n- \"Create a file?\" -> POST /files\n- \"List all license?\" -> GET /license\n- \"Create a refresh?\" -> POST /license/refresh\n- \"Create a run?\" -> POST /macros/{macroId}/run\n- \"Create a client?\" -> POST /confidential-groups/sensitiveClients/client\n- \"List all sensitiveClients?\" -> GET /confidential-groups/sensitiveClients\n- \"Get isSensitive details?\" -> GET /confidential-groups/sensitiveClients/isSensitive/{clientId}\n- \"Delete a client?\" -> DELETE /confidential-groups/sensitiveClients/client/{sensitiveClientId}\n- \"Create a vendor?\" -> POST /confidential-groups/trustedVendors/vendor\n- \"List all trustedVendors?\" -> GET /confidential-groups/trustedVendors\n- \"Delete a vendor?\" -> DELETE /confidential-groups/trustedVendors/vendor/{trustedVendorId}\n- \"List all projectGroups?\" -> GET /projectGroups\n- \"Create a projectGroup?\" -> POST /projectGroups\n- \"Get projectGroup details?\" -> GET /projectGroups/{projectGroupId}\n- \"Update a projectGroup?\" -> PUT /projectGroups/{projectGroupId}\n- \"Delete a projectGroup?\" -> DELETE /projectGroups/{projectGroupId}\n- \"Create a send?\" -> POST /accounting/providers/invoices/{invoiceId}/send\n- \"Create a status?\" -> POST /accounting/providers/invoices/{invoiceId}/status\n- \"Create a invitation?\" -> POST /providers/persons/{personId}/notification/invitation\n- \"Get provider details?\" -> GET /providers/{providerId}\n- \"Delete a provider?\" -> DELETE /providers/{providerId}\n- \"List all competencies?\" -> GET /providers/{providerId}/competencies\n- \"Delete a report?\" -> DELETE /reports/{reportId}\n- \"Create a xml?\" -> POST /reports/export/xml\n- \"List all printerFriendly?\" -> GET /reports/{reportId}/result/printerFriendly\n- \"List all all?\" -> GET /services/all\n- \"List all supports?\" -> GET /subscription/supports\n- \"List all subscription?\" -> GET /subscription\n- \"Create a subscription?\" -> POST /subscription\n- \"Delete a subscription?\" -> DELETE /subscription/{subscriptionId}\n- \"List all email?\" -> GET /system/configuration/email\n- \"List all ftp?\" -> GET /system/configuration/ftp\n- \"List all configuration?\" -> GET /system/configuration\n- \"List all timeZone?\" -> GET /system/timeZone\n- \"List all users?\" -> GET /users\n- \"Get user details?\" -> GET /users/{userId}\n- \"Update a user?\" -> PUT /users/{userId}\n- \"List all me?\" -> GET /users/me\n- \"Get dictionary details?\" -> GET /dictionaries/{type}/{id}\n- \"List all default?\" -> GET /dictionaries/{type}/all/default\n- \"List all exchangeRate?\" -> GET /dictionaries/currency/{isoCode}/exchangeRate\n- \"Create a exchangeRate?\" -> POST /dictionaries/currency/{isoCode}/exchangeRate\n- \"Create a output?\" -> POST /jobs/{jobId}/files/output\n- \"Get job details?\" -> GET /jobs/{jobId}\n- \"List all files?\" -> GET /jobs/{jobId}/files\n- \"Get file details?\" -> GET /jobs/{jobId}/files/{fileId}\n- \"Create a project?\" -> POST /projects\n- \"Create a languageCombination?\" -> POST /projects/{projectId}/languageCombinations\n- \"Create a payable?\" -> POST /projects/{projectId}/finance/payables\n- \"Create a receivable?\" -> POST /projects/{projectId}/finance/receivables\n- \"Create a task?\" -> POST /projects/{projectId}/tasks\n- \"Get project details?\" -> GET /projects/{projectId}\n- \"Delete a project?\" -> DELETE /projects/{projectId}\n- \"Update a payable?\" -> PUT /projects/{projectId}/finance/payables/{payableId}\n- \"Delete a payable?\" -> DELETE /projects/{projectId}/finance/payables/{payableId}\n- \"Update a receivable?\" -> PUT /projects/{projectId}/finance/receivables/{receivableId}\n- \"Delete a receivable?\" -> DELETE /projects/{projectId}/finance/receivables/{receivableId}\n- \"List all contacts?\" -> GET /projects/{projectId}/contacts\n- \"List all download?\" -> GET /projects/files/{fileId}/download\n- \"List all finance?\" -> GET /projects/{projectId}/finance\n- \"List all instructions?\" -> GET /projects/{projectId}/instructions\n- \"Get quote details?\" -> GET /quotes/{quoteId}\n- \"Delete a quote?\" -> DELETE /quotes/{quoteId}\n- \"Create a start?\" -> POST /quotes/{quoteId}/start\n- \"Create a input?\" -> POST /tasks/{taskId}/files/input\n- \"Delete a task?\" -> DELETE /tasks/{taskId}\n- \"List all progress?\" -> GET /tasks/{taskId}/progress\n- \"Create a language?\" -> POST /v2/dictionaries/language\n- \"Partially update a language?\" -> PATCH /v2/dictionaries/language/{languageId}\n- \"Create a specialization?\" -> POST /v2/dictionaries/specialization\n- \"Partially update a specialization?\" -> PATCH /v2/dictionaries/specialization/{specializationId}\n- \"Create a addExternalLink?\" -> POST /v2/jobs/{jobId}/files/addExternalLink\n- \"Create a addLink?\" -> POST /v2/jobs/{jobId}/files/delivered/addLink\n- \"Delete a job?\" -> DELETE /v2/jobs/{jobId}\n- \"List all for-external-id?\" -> GET /v2/jobs/for-external-id\n- \"List all delivered?\" -> GET /v2/jobs/{jobId}/files/delivered\n- \"List all sharedReferenceFiles?\" -> GET /v2/jobs/{jobId}/files/sharedReferenceFiles\n- \"List all sharedWorkFiles?\" -> GET /v2/jobs/{jobId}/files/sharedWorkFiles\n- \"Create a merge?\" -> POST /v2/jobs/merge\n- \"Create a upload?\" -> POST /v2/jobs/{jobId}/files/delivered/upload\n- \"Create a uploadFileByVendor?\" -> POST /v2/jobs/{jobId}/files/delivered/uploadFileByVendor\n- \"Create a externalInfo?\" -> POST /v2/projects/{projectId}/externalInfo\n- \"Create a addJob?\" -> POST /v2/projects/{projectId}/addJob\n- \"Create a archive?\" -> POST /v2/projects/files/archive\n- \"Create a createCatToolProject?\" -> POST /v2/projects/{projectId}/createCatToolProject\n- \"Delete a file?\" -> DELETE /v2/projects/{projectId}/files/{fileId}\n- \"Get for-external-id details?\" -> GET /v2/projects/for-external-id/{externalProjectId}\n- \"List all catToolProject?\" -> GET /v2/projects/{projectId}/catToolProject\n- \"List all catToolProjectTemplates?\" -> GET /v2/projects/catToolProjectTemplates\n- \"List all clientContacts?\" -> GET /v2/projects/{projectId}/clientContacts\n- \"List all deliverable?\" -> GET /v2/projects/{projectId}/files/deliverable\n- \"Get download details?\" -> GET /v2/projects/files/{fileId}/download/{fileName}\n- \"List all jobs?\" -> GET /v2/projects/{projectId}/jobs\n- \"List all process?\" -> GET /v2/projects/{projectId}/process\n- \"Create a quote?\" -> POST /v2/quotes\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Paginated endpoints accept limit/offset or cursor parameters\n- Create/update endpoints return the modified resource on success\n- Error responses include status codes and descriptions in the spec\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api XTRF Home Portal API\n@base https://presentation.s.xtrf.eu/home-api\n@version 2.0\n@auth ApiKey X-AUTH-ACCESS-TOKEN in header\n@endpoints 341\n@hint download_for_search\n@toc browser(26), accounting(29), customers(38), files(1), license(2), macros(1), confidential-groups(9), projectGroups(9), providers(16), reports(7), services(2), settings(1), subscription(4), system(4), users(10), dictionaries(12), jobs(27), projects(67), quotes(61), tasks(15)\n\n@group browser\n@endpoint GET /browser/csv\n@desc Searches for data (ie. customer, task, etc) and returns it in a CSV form.\n@optional {viewId: int(int64) # view's identifier, separator: str # csv field separator, secondarySeparator: str # secondary csv field separator, additionalOrder: str}\n\n@endpoint GET /browser\n@desc Searches for data (ie. customer, task, etc) and returns it in a tabular form.\n@optional {viewId: int(int64) # view's identifier, page: int(int32)=0, additionalOrder: str, useDeferredColumns: str, maxRows: int(int32)=0 # overrides view's default rows limit, supported values 10 to 1000}\n\n@endpoint GET /browser/views/for/{className}\n@desc Returns views' brief.\n@required {className: str # views' class name}\n@optional {placeName: str=default # place name (denotes specific place in system with the table)}\n\n@endpoint POST /browser/views/for/{className}\n@desc Creates view for given class.\n@required {className: str # view's class name}\n\n@endpoint GET /browser/views/{viewId}\n@desc Returns all view's information.\n@required {viewId: int(int64) # view's identifier}\n\n@endpoint PUT /browser/views/{viewId}\n@desc Updates all view's information.\n@required {viewId: int(int64) # view's identifier}\n\n@endpoint DELETE /browser/views/{viewId}\n@desc Removes a view.\n@required {viewId: int(int64) # view's internal identifier}\n@returns(204) Success\n\n@endpoint DELETE /browser/views/{viewId}/columns/{columnName}\n@desc Deletes a single column from view.\n@required {viewId: int(int64) # view's identifier, columnName: str # column's name}\n\n@endpoint GET /browser/views/{viewId}/columns/{columnName}/settings\n@desc Returns column's specific settings.\n@required {viewId: int(int64) # view's identifier, columnName: str # column's name}\n\n@endpoint PUT /browser/views/{viewId}/columns/{columnName}/settings\n@desc Updates column's specific settings.\n@required {viewId: int(int64) # view's identifier, columnName: str # column's name}\n@example_request \"/home-api/assets/examples/browsers/views/updateColumnSettings.json#requestBody\"\n\n@endpoint GET /browser/views/{viewId}/columns\n@desc Returns columns defined in view.\n@required {viewId: int(int64) # view's identifier}\n\n@endpoint PUT /browser/views/{viewId}/columns\n@desc Updates columns in view.\n@required {viewId: int(int64) # view's identifier}\n\n@endpoint GET /browser/views/details/for/{className}\n@desc Returns current view's detailed information, suitable for browser.\n@required {className: str # views' class name}\n@optional {placeName: str=default # place name (denotes specific place in system with the table)}\n\n@endpoint GET /browser/views/{viewId}/filter\n@desc Returns view's filter.\n@required {viewId: int(int64) # view's identifier}\n\n@endpoint PUT /browser/views/{viewId}/filter\n@desc Updates view's filter.\n@required {viewId: int(int64) # view's identifier}\n\n@endpoint GET /browser/views/{viewId}/settings/local\n@desc Returns view's local settings (for current user).\n@required {viewId: int(int64) # view's identifier}\n\n@endpoint PUT /browser/views/{viewId}/settings/local\n@desc Updates view's local settings (for current user).\n@required {viewId: int(int64) # view's identifier}\n@optional {maxRows: int(int32), maxLinesInRow: int(int32)}\n@example_request \"/home-api/assets/examples/browsers/views/updateLocalSettings.json#requestBody\"\n\n@endpoint GET /browser/views/{viewId}/order\n@desc Returns view's order settings.\n@required {viewId: int(int64) # view's identifier}\n\n@endpoint PUT /browser/views/{viewId}/order\n@desc Updates view's order settings.\n@required {viewId: int(int64) # view's identifier}\n\n@endpoint GET /browser/views/{viewId}/permissions\n@desc Returns view's permissions.\n@required {viewId: int(int64) # view's identifier}\n\n@endpoint PUT /browser/views/{viewId}/permissions\n@desc Updates view's permissions.\n@required {viewId: int(int64) # view's identifier}\n@optional {sharedGroups: [int(int64)]}\n@example_request \"/home-api/assets/examples/browsers/views/updatePermissions.json#requestBody\"\n\n@endpoint GET /browser/views/{viewId}/settings\n@desc Returns view's settings.\n@required {viewId: int(int64) # view's identifier}\n\n@endpoint PUT /browser/views/{viewId}/settings\n@desc Updates view's settings.\n@required {viewId: int(int64) # view's identifier}\n@optional {name: str, local: map{maxRows: int(int32), maxLinesInRow: int(int32)}}\n@example_request \"/home-api/assets/examples/browsers/views/updateSettings.json#requestBody\"\n\n@endpoint GET /browser/views/details/for/{className}/{viewId}\n@desc Returns view's detailed information, suitable for browser.\n@required {className: str # views' class name, viewId: int(int64)}\n@optional {placeName: str=default # place name (denotes specific place in system with the table)}\n\n@endpoint POST /browser/views/details/for/{className}/{viewId}\n@desc Selects given view as current and returns its detailed information, suitable for browser.\n@required {className: str # views' class name, viewId: int(int64)}\n@optional {place name (denotes specific place in system with the table): str=default: any}\n\n@endpoint PUT /browser/views/{viewId}/filter/{filterProperty}\n@desc Updates view's filter property.\n@required {viewId: int(int64) # view's identifier, filterProperty: str # view's filter property name}\n@optional {name: str, type: str, settings: map, settingsPresent: bool}\n@example_request \"/home-api/assets/examples/browsers/views/updateFilterProperty.json#requestBody\"\n\n@endgroup\n\n@group accounting\n@endpoint GET /accounting/customers/invoices\n@desc Lists all client invoices in all statuses (including not ready and drafts) that have been updated since a specific date.\n@optional {updatedSince: int(int64) # only client invoices modified since this timestamp}\n\n@endpoint POST /accounting/customers/invoices\n@desc Creates a new invoice.\n\n@endpoint GET /accounting/customers/invoices/{invoiceId}/payments\n@desc Returns all payments for the client invoice.\n@required {invoiceId: int(int64) # client invoice's internal identifier}\n\n@endpoint POST /accounting/customers/invoices/{invoiceId}/payments\n@desc Adds a new payment to the client invoice. The invoice payment status (Not Paid, Partially Paid, Fully Paid) is automatically recalculated.\n@required {invoiceId: int(int64) # client invoice's internal identifier}\n@returns(204) Success\n\n@endpoint GET /accounting/customers/invoices/{invoiceId}\n@desc Returns client invoice details.\n@required {invoiceId: int(int64) # client invoice's internal identifier}\n@optional {embed: str # list of adittional fields which should be embedded in the response (ie. tasks)}\n\n@endpoint DELETE /accounting/customers/invoices/{invoiceId}\n@desc Removes a client invoice.\n@required {invoiceId: int(int64) # client invoice's internal identifier}\n@returns(204) Success\n\n@endpoint POST /accounting/customers/invoices/documents\n@desc Allows for downloading multiple client invoice documents.\n\n@endpoint POST /accounting/customers/invoices/xmlDocuments\n@desc Allows for downloading multiple client invoice xml documents.\n\n@endpoint POST /accounting/customers/invoices/{invoiceId}/duplicate\n@desc Duplicate client invoice.\n@required {invoiceId: int(int64) # client invoice's internal identifier}\n\n@endpoint POST /accounting/customers/invoices/{invoiceId}/duplicate/proForma\n@desc Duplicate client invoice as pro forma.\n@required {invoiceId: int(int64) # client invoice's internal identifier}\n\n@endpoint GET /accounting/customers/invoices/ids\n@desc Returns client invoices' internal identifiers.\n@optional {updatedSince: int(int64) # only client invoices modified since this timestamp}\n\n@endpoint GET /accounting/customers/invoices/{invoiceId}/dates\n@desc Returns dates of a given client invoice.\n@required {invoiceId: int(int64) # client invoice's internal identifier}\n\n@endpoint GET /accounting/customers/invoices/{invoiceId}/document\n@desc Allows for downloading a given client invoice document.\n@required {invoiceId: int(int64) # client invoice's internal identifier}\n\n@endpoint GET /accounting/customers/invoices/{invoiceId}/paymentTerms\n@desc Returns payment terms of a given client invoice.\n@required {invoiceId: int(int64) # client invoice's internal identifier}\n\n@endpoint GET /accounting/customers/invoices/{invoiceId}/xmlDocument\n@desc Allows for downloading a given client invoice xml document.\n@required {invoiceId: int(int64) # client invoice's internal identifier}\n\n@endpoint POST /accounting/customers/invoices/{invoiceId}/sendReminder\n@desc Sends reminder.\n@required {invoiceId: int(int64) # client invoice's internal identifier}\n@returns(204) Success\n\n@endpoint POST /accounting/customers/invoices/sendReminders\n@desc Sends reminders. Returns number of sent e-mails.\n\n@endpoint DELETE /accounting/customers/payments/{paymentId}\n@desc Removes a customer payment.\n@required {paymentId: int(int64) # customer payment's internal identifier}\n@returns(204) Success\n\n@endgroup\n\n@group customers\n@endpoint POST /customers/persons\n@desc Creates a new person.\n\n@endpoint GET /customers/persons/{personId}\n@desc Returns person details.\n@required {personId: int(int64) # person's internal identifier}\n\n@endpoint PUT /customers/persons/{personId}\n@desc Updates an existing person.\n@required {personId: int(int64) # person's internal identifier}\n\n@endpoint DELETE /customers/persons/{personId}\n@desc Removes a person.\n@required {personId: int(int64) # person's internal identifier}\n@returns(204) Success\n\n@endpoint POST /customers/persons/accessToken\n@desc Generates a single use sign-in token.\n\n@endpoint GET /customers/persons/ids\n@desc Returns persons' internal identifiers.\n@optional {updatedSince: int(int64) # only persons modified since this timestamp}\n\n@endpoint GET /customers/persons/{personId}/contact\n@desc Returns contact of a given person.\n@required {personId: int(int64) # person's internal identifier}\n\n@endpoint PUT /customers/persons/{personId}/contact\n@desc Updates contact of a given person.\n@required {personId: int(int64) # person's internal identifier}\n\n@endpoint GET /customers/persons/{personId}/customFields\n@desc Returns custom fields of a given person.\n@required {personId: int(int64) # person's internal identifier}\n\n@endpoint PUT /customers/persons/{personId}/customFields\n@desc Updates custom fields of a given person.\n@required {personId: int(int64) # person's internal identifier}\n\n@endpoint DELETE /customers/priceLists/{priceListId}\n@desc Removes a customer price list.\n@required {priceListId: int(int64) # customer price list's internal identifier}\n@returns(204) Success\n\n@endpoint GET /customers\n@desc Returns list of simple clients representations\n@optional {updatedSince: int(int64) # only clients modified since this timestamp, excludeErased: bool # filter out erased clients; default: false}\n\n@endpoint POST /customers\n@desc Creates a new client.\n@optional {id: int(int64), idNumber: str, name: str, fullName: str, notes: str, peppolIdScheme: str, peppolIdCode: str, peppolId: str, billingAddress: map{sameAsBillingAddress: bool, addressLine1: str, addressLine2: str, city: str, postalCode: str, provinceId: int(int64), countryId: int(int64)}, correspondenceAddress: map{sameAsBillingAddress: bool, addressLine1: str, addressLine2: str, city: str, postalCode: str, provinceId: int(int64), countryId: int(int64)}, contact: map{phones: [str], sms: str, fax: str, emails: map, websites: [str]}, branchId: int(int64), leadSourceId: int(int64), customFields: [map{type: str, name: str, key: str, value: map}], status: str(ACTIVE/INACTIVE/POTENTIAL), responsiblePersons: map{projectManagerId!: int(int64), salesPersonId!: int(int64), accountManagerId: int(int64), projectCoordinatorId: int(int64)}, accounting: map{taxNumbers: [map]}, contractNumber: str, salesNotes: str, accountOnCustomerServer: str, clientFirstProjectDate: str(date-time), clientFirstQuoteDate: str(date-time), clientLastProjectDate: str(date-time), clientLastQuoteDate: str(date-time), clientNumberOfProjects: int(int32), clientNumberOfQuotes: int(int32), persons: [map{id: int(int64), name: str, lastName: str, contact: map, positionId: int(int64), gender: str, active: bool, motherTonguesIds: [int(int64)], customFields: [map], customerId: int(int64), firstProjectDate: str(date-time), firstQuoteDate: str(date-time), lastProjectDate: str(date-time), lastQuoteDate: str(date-time), numberOfProjects: int(int32), numberOfQuotes: int(int32)}], categoriesIds: [int(int64)], industriesIds: [int(int64)], limitAccessToPeopleResponsible: bool}\n@example_request \"/home-api/assets/examples/customers/create.json#requestBody\"\n\n@endpoint GET /customers/{customerId}\n@desc Returns client details.\n@required {customerId: int(int64) # client's internal identifier}\n@optional {embed: str # list of additional fields which should be embedded in the response (available options: persons)}\n\n@endpoint PUT /customers/{customerId}\n@desc Updates an existing client.\n@required {customerId: int(int64) # client's internal identifier}\n@optional {id: int(int64), idNumber: str, name: str, fullName: str, notes: str, peppolIdScheme: str, peppolIdCode: str, peppolId: str, billingAddress: map{sameAsBillingAddress: bool, addressLine1: str, addressLine2: str, city: str, postalCode: str, provinceId: int(int64), countryId: int(int64)}, correspondenceAddress: map{sameAsBillingAddress: bool, addressLine1: str, addressLine2: str, city: str, postalCode: str, provinceId: int(int64), countryId: int(int64)}, contact: map{phones: [str], sms: str, fax: str, emails: map, websites: [str]}, branchId: int(int64), leadSourceId: int(int64), customFields: [map{type: str, name: str, key: str, value: map}], status: str(ACTIVE/INACTIVE/POTENTIAL), responsiblePersons: map{projectManagerId!: int(int64), salesPersonId!: int(int64), accountManagerId: int(int64), projectCoordinatorId: int(int64)}, accounting: map{taxNumbers: [map]}, contractNumber: str, salesNotes: str, accountOnCustomerServer: str, clientFirstProjectDate: str(date-time), clientFirstQuoteDate: str(date-time), clientLastProjectDate: str(date-time), clientLastQuoteDate: str(date-time), clientNumberOfProjects: int(int32), clientNumberOfQuotes: int(int32), persons: [map{id: int(int64), name: str, lastName: str, contact: map, positionId: int(int64), gender: str, active: bool, motherTonguesIds: [int(int64)], customFields: [map], customerId: int(int64), firstProjectDate: str(date-time), firstQuoteDate: str(date-time), lastProjectDate: str(date-time), lastQuoteDate: str(date-time), numberOfProjects: int(int32), numberOfQuotes: int(int32)}], categoriesIds: [int(int64)], industriesIds: [int(int64)], limitAccessToPeopleResponsible: bool}\n@example_request \"/home-api/assets/examples/customers/update.json#requestBody\"\n\n@endpoint DELETE /customers/{customerId}\n@desc Removes a client.\n@required {customerId: int(int64) # client's internal identifier}\n@returns(204) Success\n\n@endpoint GET /customers/{customerId}/priceProfiles/active\n@desc Returns list of active price profiles for a client.\n@required {customerId: int(int64) # client's internal identifier}\n\n@endpoint GET /customers/{customerId}/address\n@desc Returns address of a given client.\n@required {customerId: int(int64) # client's internal identifier}\n\n@endpoint PUT /customers/{customerId}/address\n@desc Updates address of a given client.\n@required {customerId: int(int64) # client's internal identifier}\n@optional {sameAsBillingAddress: bool # should billing address be used instead of this one, addressLine1: str # first line of address, addressLine2: str # second line of address, city: str # city, postalCode: str # postal code, provinceId: int(int64) # province, countryId: int(int64) # country}\n@example_request \"/home-api/assets/examples/customers/address/updateAddress.json#requestBody\"\n\n@endpoint GET /customers/ids\n@desc Returns clients' internal identifiers.\n@optional {updatedSince: int(int64) # only clients modified since this timestamp, nameEquals: str # exact name of client, emailEquals: str # exact email of client}\n\n@endpoint GET /customers/{customerId}/budgetCodes\n@desc Returns list of available budget codes for a client.\n@required {customerId: int(int64) # client's internal identifier}\n\n@endpoint GET /customers/byAlias\n@desc Returns client details.\n@optional {externalSystemId: int(int64), customerAlias: str}\n\n@endpoint GET /customers/{customerId}/categories\n@desc Returns categories of a given client.\n@required {customerId: int(int64) # client's internal identifier}\n\n@endpoint PUT /customers/{customerId}/categories\n@desc Updates categories of a given client.\n@required {customerId: int(int64) # client's internal identifier}\n@optional {empty: bool}\n@example_request \"/home-api/assets/examples/customers/updateCategories.json#requestBody\"\n\n@endpoint GET /customers/{customerId}/contact\n@desc Returns contact of a given client.\n@required {customerId: int(int64) # client's internal identifier}\n\n@endpoint PUT /customers/{customerId}/contact\n@desc Updates contact of a given client.\n@required {customerId: int(int64) # client's internal identifier}\n@optional {phones: [str] # phones' numbers, sms: str # mobile phone for which SMS notifications will be sent (if configured), fax: str # fax number, emails: map{primary!: str, cc: [str], additional: [str]} # emails, websites: [str] # websites}\n@example_request \"/home-api/assets/examples/customers/updateContact.json#requestBody\"\n\n@endpoint GET /customers/{customerId}/correspondenceAddress\n@desc Returns correspondence address of a given client.\n@required {customerId: int(int64) # client's internal identifier}\n\n@endpoint PUT /customers/{customerId}/correspondenceAddress\n@desc Updates correspondence address of a given client.\n@required {customerId: int(int64) # client's internal identifier}\n@optional {sameAsBillingAddress: bool # should billing address be used instead of this one, addressLine1: str # first line of address, addressLine2: str # second line of address, city: str # city, postalCode: str # postal code, provinceId: int(int64) # province, countryId: int(int64) # country}\n@example_request \"/home-api/assets/examples/customers/address/updateCorrespondenceAddress.json#requestBody\"\n\n@endpoint GET /customers/{customerId}/customFields/{customFieldKey}\n@desc Returns custom field of a given client.\n@required {customerId: int(int64) # client's internal identifier, customFieldKey: str # custom field's key}\n\n@endpoint PUT /customers/{customerId}/customFields/{customFieldKey}\n@desc Updates given custom field of a given client.\n@required {customerId: int(int64) # client's internal identifier, customFieldKey: str # custom field's key}\n@optional {type: str(TEXT/DATE/DATE_AND_TIME/NUMBER/CHECKBOX/SELECTION/MULTI_SELECTION), name: str, key: str, value: map}\n@example_request \"/home-api/assets/examples/customers/updateCustomField.json#requestBody\"\n\n@endpoint GET /customers/{customerId}/customFields\n@desc Returns custom fields of a given client.\n@required {customerId: int(int64) # client's internal identifier}\n\n@endpoint PUT /customers/{customerId}/customFields\n@desc Updates custom fields of a given client.\n@required {customerId: int(int64) # client's internal identifier}\n@optional {customFields: [map{type: str, name: str, key: str, value: map}], empty: bool}\n@example_request \"/home-api/assets/examples/customers/updateCustomFields.json#requestBody\"\n\n@endpoint GET /customers/{customerId}/settings/specializations\n@desc Returns specializations available for a given client in the Client Portal.\n@required {customerId: int(int64) # client's internal identifier}\n\n@endpoint GET /customers/{customerId}/industries\n@desc Returns industries of a given client.\n@required {customerId: int(int64) # client's internal identifier}\n\n@endpoint PUT /customers/{customerId}/industries\n@desc Updates industries of a given client.\n@required {customerId: int(int64) # client's internal identifier}\n@optional {empty: bool}\n@example_request \"/home-api/assets/examples/customers/updateIndustries.json#requestBody\"\n\n@endpoint GET /customers/{customerId}/settings/languages\n@desc Returns languages available for a given client in the Client Portal.\n@required {customerId: int(int64) # client's internal identifier}\n\n@endpoint GET /customers/{customerId}/offices\n@desc Returns list of offices in the office structure in which the client is located.\n@required {customerId: int(int64) # client's internal identifier}\n\n@endpoint GET /customers/{customerId}/services\n@desc Returns list of available services for a client.\n@required {customerId: int(int64) # client's internal identifier}\n\n@endgroup\n\n@group files\n@endpoint POST /files\n@desc Uploads a temporary file (ie. for XML import). Returns token which can be used in other API calls.\n\n@endgroup\n\n@group license\n@endpoint GET /license\n@desc Returns license content.\n@returns(200) Success\n\n@endpoint POST /license/refresh\n@desc Refreshes license content.\n@returns(204) Success\n\n@endgroup\n\n@group macros\n@endpoint POST /macros/{macroId}/run\n@desc Executes a macro.\n@required {macroId: int(int64) # macro internal identifier}\n\n@endgroup\n\n@group confidential-groups\n@endpoint POST /confidential-groups/sensitiveClients/client\n@desc Adds client to sensitive clients list.\n@optional {value: int(int64), text: str}\n@example_request \"/home-api/assets/examples/partnersGroups/sensitiveClients/addClient_valueFix.json#requestBody\"\n\n@endpoint GET /confidential-groups/sensitiveClients\n@desc Returns sensitive clients list.\n\n@endpoint PUT /confidential-groups/sensitiveClients\n@desc Updates sensitive clients list.\n@example_request \"/home-api/assets/examples/partnersGroups/sensitiveClients/put.json#requestBody\"\n\n@endpoint GET /confidential-groups/sensitiveClients/isSensitive/{clientId}\n@desc Check if client is sensitive.\n@required {clientId: int(int64), clientId: int(int64)}\n\n@endpoint DELETE /confidential-groups/sensitiveClients/client/{sensitiveClientId}\n@desc Removes sensitive client from sensitive clients list.\n@required {sensitiveClientId: int(int64), sensitiveClientId: int(int64)}\n\n@endpoint POST /confidential-groups/trustedVendors/vendor\n@desc Adds vendor to trusted vendors list.\n@optional {value: int(int64), text: str}\n@example_request \"/home-api/assets/examples/partnersGroups/trustedVendors/addVendor_valueFix.json#requestBody\"\n\n@endpoint GET /confidential-groups/trustedVendors\n@desc Returns trusted vendors list.\n\n@endpoint PUT /confidential-groups/trustedVendors\n@desc Updates trusted vendors list.\n@example_request \"/home-api/assets/examples/partnersGroups/trustedVendors/put.json#requestBody\"\n\n@endpoint DELETE /confidential-groups/trustedVendors/vendor/{trustedVendorId}\n@desc Removes trusted vendor from trusted vendors list.\n@required {trustedVendorId: int(int64), trustedVendorId: int(int64)}\n\n@endgroup\n\n@group projectGroups\n@endpoint GET /projectGroups\n@desc Returns all project groups.\n\n@endpoint POST /projectGroups\n@desc Creates a new Project Groups.\n@optional {name: str, customerIds: [int(int64)]}\n@example_request \"/home-api/assets/examples/projectGroups/addProjectGroup.json#requestBody\"\n\n@endpoint GET /projectGroups/{projectGroupId}\n@desc Returns project group details.\n@required {projectGroupId: int(int64) # project group's internal identifier}\n\n@endpoint PUT /projectGroups/{projectGroupId}\n@desc Update project group details.\n@required {projectGroupId: int(int64) # project group's internal identifier}\n@optional {currencyId: int(int64), budgetValue: num, name: str, status: str(opened/closed), notes: str, categoriesIds: [int(int64)], customersIds: [int(int64)]}\n@example_request \"/home-api/assets/examples/projectGroups/updateProjectGroup.json#requestBody\"\n\n@endpoint DELETE /projectGroups/{projectGroupId}\n@desc Removes a project group.\n@required {projectGroupId: int(int64) # project group's internal identifier}\n@returns(204) Success\n\n@endpoint PUT /projectGroups/{projectGroupId}/linkProjects\n@desc Add projects to project group.\n@required {projectGroupId: int(int64) # project group's internal identifier}\n@optional {projectIds: [int(int64)], smartProjectIds: [str]}\n@example_request \"/home-api/assets/examples/projectGroups/linkProjects.json#requestBody\"\n\n@endpoint PUT /projectGroups/{projectGroupId}/linkQuotes\n@desc Add quotes to project group.\n@required {projectGroupId: int(int64) # project group's internal identifier}\n@optional {quoteIds: [int(int64)], smartQuoteIds: [str]}\n@example_request \"/home-api/assets/examples/projectGroups/linkQuotes.json#requestBody\"\n\n@endpoint PUT /projectGroups/{projectGroupId}/unlinkProjects\n@desc Remove projects from project group.\n@required {projectGroupId: int(int64) # project group's internal identifier}\n@optional {projectIds: [int(int64)], smartProjectIds: [str]}\n@example_request \"/home-api/assets/examples/projectGroups/unlinkProjects.json#requestBody\"\n\n@endpoint PUT /projectGroups/{projectGroupId}/unlinkQuotes\n@desc Remove quotes from project group.\n@required {projectGroupId: int(int64) # project group's internal identifier}\n@optional {quoteIds: [int(int64)], smartQuoteIds: [str]}\n@example_request \"/home-api/assets/examples/projectGroups/unlinkQuotes.json#requestBody\"\n\n@endgroup\n\n@group accounting\n@endpoint GET /accounting/providers/invoices\n@desc Lists all vendor invoices in all statuses (including not ready and drafts) that have been updated since a specific date.\n@optional {updatedSince: int(int64) # only vendor invoices modified since this timestamp}\n\n@endpoint POST /accounting/providers/invoices\n@desc Creates a new invoice.\n@optional {jobsIds: [int(int64)]}\n@returns(200) Success\n@example_request \"/home-api/assets/examples/accounting/providers/invoices/createSingleFromJobs.json#requestBody\"\n\n@endpoint GET /accounting/providers/invoices/{invoiceId}/payments\n@desc Returns all payments for the vendor invoice.\n@required {invoiceId: int(int64) # vendor invoice's internal identifier}\n\n@endpoint POST /accounting/providers/invoices/{invoiceId}/payments\n@desc Creates a new payment on the vendor account and assigns the payment to the invoice.\n@required {invoiceId: int(int64) # vendor invoice's internal identifier}\n@returns(204) Success\n\n@endpoint GET /accounting/providers/invoices/{invoiceId}\n@desc Returns provider invoice details.\n@required {invoiceId: int(int64) # provider invoice's internal identifier}\n\n@endpoint DELETE /accounting/providers/invoices/{invoiceId}\n@desc Removes a provider invoice.\n@required {invoiceId: int(int64) # provider invoice's internal identifier}\n@returns(204) Success\n\n@endpoint GET /accounting/providers/invoices/ids\n@desc Returns vendor invoices' internal identifiers.\n@optional {updatedSince: int(int64) # only vendor invoices modified since this timestamp}\n\n@endpoint GET /accounting/providers/invoices/{invoiceId}/document\n@desc Generates provider invoice document (PDF).\n@required {invoiceId: int(int64) # provider invoice's internal identifier}\n\n@endpoint POST /accounting/providers/invoices/{invoiceId}/send\n@desc Sends a provider invoice.\n@required {invoiceId: int(int64) # provider invoice's internal identifier}\n@returns(204) Success\n\n@endpoint POST /accounting/providers/invoices/{invoiceId}/status\n@desc Changes invoice status to given status.\n@required {invoiceId: int(int64) # provider invoice's internal identifier}\n@optional {status: str(POSTPONED/TO_BE_SENT/SENT/CONFIRMED/BILL_CREATED)}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/accounting/providers/invoices/setStatus.json#requestBody\"\n\n@endpoint DELETE /accounting/providers/payments/{paymentId}\n@desc Removes a provider payment.\n@required {paymentId: int(int64) # provider payment's internal identifier}\n@returns(204) Success\n\n@endgroup\n\n@group providers\n@endpoint GET /providers/persons/{personId}\n@desc Returns person details.\n@required {personId: int(int64) # person's internal identifier}\n\n@endpoint DELETE /providers/persons/{personId}\n@desc Removes a person.\n@required {personId: int(int64) # person's internal identifier}\n@returns(204) Success\n\n@endpoint GET /providers/persons/ids\n@desc Returns persons' internal identifiers.\n@optional {updatedSince: int(int64) # only persons modified since this timestamp}\n\n@endpoint GET /providers/persons/{personId}/contact\n@desc Returns contact of a given person.\n@required {personId: int(int64) # person's internal identifier}\n\n@endpoint GET /providers/persons/{personId}/customFields\n@desc Returns custom fields of a given person.\n@required {personId: int(int64) # person's internal identifier}\n\n@endpoint POST /providers/persons/{personId}/notification/invitation\n@desc Sends invitation to Vendor Portal.\n@required {personId: int(int64) # person's internal identifier}\n\n@endpoint DELETE /providers/priceLists/{priceListId}\n@desc Removes a provider price list.\n@required {priceListId: int(int64) # provider price list's internal identifier}\n@returns(204) Success\n\n@endpoint GET /providers/{providerId}\n@desc Returns provider details.\n@required {providerId: int(int64) # provider's internal identifier}\n@optional {embed: str # list of adittional fields which should be embedded in the response (ie. persons)}\n\n@endpoint DELETE /providers/{providerId}\n@desc Removes a provider.\n@required {providerId: int(int64) # provider's internal identifier}\n@returns(204) Success\n\n@endpoint GET /providers/{providerId}/address\n@desc Returns address of a given provider.\n@required {providerId: int(int64) # provider's internal identifier}\n\n@endpoint GET /providers/ids\n@desc Returns providers' internal identifiers.\n@optional {updatedSince: int(int64) # only providers modified since this timestamp}\n\n@endpoint GET /providers/{providerId}/competencies\n@desc Returns competencies of a given provider.\n@required {providerId: int(int64) # provider's internal identifier}\n\n@endpoint GET /providers/{providerId}/contact\n@desc Returns contact of a given provider.\n@required {providerId: int(int64) # provider's internal identifier}\n\n@endpoint GET /providers/{providerId}/correspondenceAddress\n@desc Returns correspondence address of a given provider.\n@required {providerId: int(int64) # provider's internal identifier}\n\n@endpoint GET /providers/{providerId}/customFields\n@desc Returns custom fields of a given provider.\n@required {providerId: int(int64) # provider's internal identifier}\n\n@endpoint POST /providers/{providerId}/notification/invitation\n@desc Sends invitations to Vendor Portal.\n@required {providerId: int(int64) # provider's internal identifier}\n\n@endgroup\n\n@group reports\n@endpoint DELETE /reports/{reportId}\n@desc Removes a report.\n@required {reportId: int(int64) # report's internal identifier}\n@returns(204) Success\n\n@endpoint POST /reports/{reportId}/duplicate\n@desc Duplicates a report.\n@required {reportId: int(int64) # report's internal identifier}\n@returns(204) Success\n\n@endpoint POST /reports/export/xml\n@desc Exports reports definition to XML.\n\n@endpoint GET /reports/{reportId}/result/csv\n@desc Generates CSV content for a report.\n@required {reportId: int(int64) # report's internal identifier}\n\n@endpoint GET /reports/{reportId}/result/printerFriendly\n@desc Generates printer friendly content for a report.\n@required {reportId: int(int64) # report's internal identifier}\n\n@endpoint POST /reports/import/xml\n@desc Imports reports definition from XML.\n\n@endpoint PUT /reports/{reportId}/preferred\n@desc Marks report as preferred or not.\n@required {reportId: int(int64) # report's internal identifier}\n@returns(204) Success\n\n@endgroup\n\n@group services\n@endpoint GET /services/all\n@desc Returns services list\n@optional {nameEquals: str # exact name of entity}\n\n@endpoint GET /services/active\n@desc Returns active services list\n@optional {nameEquals: str # exact name of entity}\n\n@endgroup\n\n@group settings\n@endpoint GET /settings/customFields\n@desc Returns Custom Fields configuration.\n@optional {scope: [str] # Custom Field scopes to filter by (available options: CONTACT_PERSON, CUSTOMER, PROVIDER, USER, PROJECT, QUOTE, ACTIVITY, TASK)}\n@returns(200) Success\n\n@endgroup\n\n@group subscription\n@endpoint GET /subscription/supports\n@desc This method can be used to determine if hooks are supported.\n\n@endpoint GET /subscription\n@desc Returns all subscriptions\n\n@endpoint POST /subscription\n@desc Subscribe to event\n@returns(201) Success\n@errors {409: Success}\n\n@endpoint DELETE /subscription/{subscriptionId}\n@desc Unsubscribe from event\n@required {subscriptionId: str}\n@returns(200) Success\n\n@endgroup\n\n@group system\n@endpoint GET /system/configuration/email\n@desc Get email configuration\n@returns(200) Email configuration retrieved successfully\n\n@endpoint GET /system/configuration/ftp\n@desc Get FTP configuration\n@returns(200) FTP configuration retrieved successfully\n\n@endpoint GET /system/configuration\n@desc Get basic system configuration\n@returns(200) System configuration retrieved successfully\n\n@endpoint GET /system/timeZone\n@desc Get system timezone information\n@returns(200) Timezone information retrieved successfully\n\n@endgroup\n\n@group users\n@endpoint PUT /users/{userId}/password\n@desc Sets user's password to a new value.\n@required {userId: int(int64) # user's internal identifier}\n@returns(204) Success\n\n@endpoint GET /users\n@desc Returns list of simple users representations\n\n@endpoint GET /users/{userId}\n@desc Returns user details.\n@required {userId: int(int64) # user's internal identifier}\n\n@endpoint PUT /users/{userId}\n@desc Updates an existing user.\n@required {userId: int(int64) # user's internal identifier}\n@optional {id: int(int64), firstName: str, lastName: str, login: str, email: str, userGroupName: str, mobilePhone: str, gender: str, timeZoneId: str, positionName: str, phone: str, customFields: [map{type: str, name: str, key: str, value: map}]}\n@example_request \"/home-api/assets/examples/users/update2.json#requestBody\"\n\n@endpoint GET /users/{userId}/customFields/{customFieldKey}\n@desc Returns custom field of a given user.\n@required {userId: int(int64) # user's internal identifier, customFieldKey: str # custom field's key}\n\n@endpoint PUT /users/{userId}/customFields/{customFieldKey}\n@desc Updates given custom field of a given user.\n@required {userId: int(int64) # user's internal identifier, customFieldKey: str # custom field's key}\n@optional {type: str(TEXT/DATE/DATE_AND_TIME/NUMBER/CHECKBOX/SELECTION/MULTI_SELECTION), name: str, key: str, value: map}\n@example_request \"/home-api/assets/examples/users/updateCustomField.json#requestBody\"\n\n@endpoint GET /users/{userId}/customFields\n@desc Returns custom fields of a given user.\n@required {userId: int(int64) # user's internal identifier}\n\n@endpoint PUT /users/{userId}/customFields\n@desc Updates custom fields of a given user.\n@required {userId: int(int64) # user's internal identifier}\n@optional {customFields: [map{type: str, name: str, key: str, value: map}], empty: bool}\n@example_request \"/home-api/assets/examples/users/updateCustomFields.json#requestBody\"\n\n@endpoint GET /users/me\n@desc Returns currently signed in user details.\n\n@endpoint GET /users/me/timeZone\n@desc Returns time zone preferred by user currently signed in.\n\n@endgroup\n\n@group dictionaries\n@endpoint GET /dictionaries/active\n@desc Returns active dictionary entities for all types.\n\n@endpoint GET /dictionaries/{type}/active\n@desc Returns active values from a given dictionary.\n@required {type: str # dictionary type}\n@optional {nameEquals: str # exact name of entity}\n\n@endpoint GET /dictionaries/all\n@desc Returns dictionary entities for all types. Both active and not active ones.\n\n@endpoint GET /dictionaries/{type}/all\n@desc Returns all values (both active and not active) from a given dictionary.\n@required {type: str # dictionary type}\n@optional {nameEquals: str # exact name of entity}\n\n@endpoint GET /dictionaries/{type}/{id}\n@desc Returns specific value from a given dictionary.\n@required {type: str # dictionary type, id: int(int64) # dictionary value identifier}\n\n@endpoint GET /dictionaries/{type}/all/default\n@desc Returns a default value from a given dictionary.\n@required {type: str # dictionary type}\n\n@endpoint GET /dictionaries/currency/{isoCode}/exchangeRate\n@desc Returns currency exchange rates.\n@required {isoCode: str # iso code, https://www.xe.com/iso4217.php}\n\n@endpoint POST /dictionaries/currency/{isoCode}/exchangeRate\n@desc Adding currency exchange rates.\n@required {isoCode: str # iso code, https://www.xe.com/iso4217.php}\n@optional {exchangeRate: str, dateFrom: map{value: int(int64)}, originDetails: str, publicationDate: map{value: int(int64)}, lastModification: map{value: int(int64)}}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/dictionaries/currency/createExchangeRate.json#requestBody\"\n\n@endgroup\n\n@group jobs\n@endpoint POST /jobs/{jobId}/files/output\n@required {jobId: str # job's internal identifier}\n\n@endpoint PUT /jobs/{jobId}/vendor\n@desc Assigns vendor to a job in a project.\n@required {jobId: str # job's internal identifier}\n@optional {vendorPriceProfileId: int(int64), recalculateRates: bool}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v1/jobs/assignVendor.json#requestBody\"\n\n@endpoint PUT /jobs/{jobId}/status\n@desc Changes job status if possible (400 Bad Request is returned otherwise).\n@required {jobId: str # job's internal identifier}\n@optional {externalId: str, bundleFrom: int(int64), status: str}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v1/jobs/changeStatus.json#requestBody\"\n\n@endpoint GET /jobs/{jobId}\n@desc Returns job details by jobId.\n@required {jobId: str # job's internal identifier}\n\n@endpoint GET /jobs/{jobId}/files\n@desc Returns list of input and output files of a job.\n@required {jobId: str # job's internal identifier}\n@returns(200) Success\n\n@endpoint GET /jobs/{jobId}/files/{fileId}\n@desc Returns file metadata.\n@required {jobId: str # job's internal identifier, fileId: int(int64) # file's internal identifier}\n@returns(200) Success\n\n@endpoint PUT /jobs/{jobId}/dates\n@desc Updates dates of a given job.\n@required {jobId: str # job's internal identifier}\n@optional {startDate: int(int64), deadline: int(int64), actualStartDate: int(int64), actualEndDate: int(int64)}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v1/jobs/updateDates.json#requestBody\"\n\n@endpoint PUT /jobs/{jobId}/instructions\n@desc Updates instructions for a job.\n@required {jobId: str # job's internal identifier}\n@optional {fromCustomer: str, forProvider: str, internal: str, paymentNoteForCustomer: str, paymentNoteForVendor: str, notes: str}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v1/jobs/updateInstructionsForJob.json#requestBody\"\n\n@endgroup\n\n@group projects\n@endpoint POST /projects\n@desc Creates a new Classic Project.\n\n@endpoint POST /projects/{projectId}/languageCombinations\n@desc Creates a new language combination for a given project without creating a task.\n@required {projectId: str # project's internal identifier}\n@optional {sourceLanguageId: int(int64), targetLanguageId: int(int64)}\n@example_request \"/home-api/assets/examples/v1/projects/createLanguageCombination.json#requestBody\"\n\n@endpoint POST /projects/{projectId}/finance/payables\n@desc Adds a payable to a project.\n@required {projectId: str # project's internal identifier}\n@optional {id: int(int64), jobTypeId: int(int64), languageCombination: map{sourceLanguageId: int(int64), targetLanguageId: int(int64)}, languageCombinationIdNumber: str, rateOrigin: str(PRICE_PROFILE/PRICE_LIST/FILLED_MANUALLY/AUTOCALCULATED), currencyId: int(int64), total: num, invoiceId: str, type: str(SIMPLE/CAT), calculationUnitId: int(int64), ignoreMinimumCharge: bool, minimumCharge: num, description: str, rate: num, quantity: num, jobId: map, catLogFile: map{name: str, url: str, content: str, token: str}}\n@example_request \"/home-api/assets/examples/v1/projects/createPayable.json#requestBody\"\n\n@endpoint POST /projects/{projectId}/finance/receivables\n@desc Adds a receivable to a project.\n@required {projectId: str # project's internal identifier}\n@optional {id: int(int64), jobTypeId: int(int64), languageCombination: map{sourceLanguageId: int(int64), targetLanguageId: int(int64)}, languageCombinationIdNumber: str, rateOrigin: str(PRICE_PROFILE/PRICE_LIST/FILLED_MANUALLY/AUTOCALCULATED), currencyId: int(int64), total: num, invoiceId: str, type: str(SIMPLE/CAT), calculationUnitId: int(int64), ignoreMinimumCharge: bool, minimumCharge: num, description: str, rate: num, quantity: num, taskId: int(int64), catLogFile: map{name: str, url: str, content: str, token: str}}\n@example_request \"/home-api/assets/examples/v1/projects/createReceivable.json#requestBody\"\n\n@endpoint POST /projects/{projectId}/tasks\n@desc Creates a new task for a given project.\n@required {projectId: str # project's internal identifier}\n@optional {name: str # name, clientTaskPONumber: str # client task PO number, languageCombination: map{sourceLanguageId: int(int64), targetLanguageId: int(int64)} # language combination (ie. PL -> EN), dates: map{startDate: map, deadline: map, actualStartDate: map, actualDeliveryDate: map}, people: map{responsiblePersons: map, customerContacts: map} # people, instructions: map{fromCustomer: str, forProvider: str, internal: str, paymentNoteForCustomer: str, paymentNoteForVendor: str, notes: str}, specializationId: int(int64) # specialization, workflowId: int(int64) # workflow, files: [map{name: str, url: str, content: str, token: str, category: str}] # files}\n@example_request \"/home-api/assets/examples/v1/projects/createTask.json#requestBody\"\n\n@endpoint GET /projects/{projectId}\n@desc Returns project details.\n@required {projectId: str # project's internal identifier}\n@optional {embed: str # list of additional fields which should be embedded in the response (available options: tasks)}\n\n@endpoint DELETE /projects/{projectId}\n@desc Removes a project.\n@required {projectId: str # project's internal identifier}\n@returns(204) Success\n\n@endpoint PUT /projects/{projectId}/finance/payables/{payableId}\n@desc Updates a simple payable.\n@required {projectId: str # project's internal identifier, payableId: int(int64) # payable's internal identifier}\n@optional {id: int(int64), jobTypeId: int(int64), languageCombination: map{sourceLanguageId: int(int64), targetLanguageId: int(int64)}, languageCombinationIdNumber: str, rateOrigin: str(PRICE_PROFILE/PRICE_LIST/FILLED_MANUALLY/AUTOCALCULATED), currencyId: int(int64), total: num, invoiceId: str, type: str(SIMPLE/CAT), calculationUnitId: int(int64), ignoreMinimumCharge: bool, minimumCharge: num, description: str, rate: num, quantity: num, jobId: map}\n@example_request \"/home-api/assets/examples/v1/projects/updatePayable.json#requestBody\"\n\n@endpoint DELETE /projects/{projectId}/finance/payables/{payableId}\n@desc Deletes a payable.\n@required {projectId: str # project's internal identifier, payableId: int(int64) # payable's internal identifier}\n@returns(204) Success\n\n@endpoint PUT /projects/{projectId}/finance/receivables/{receivableId}\n@desc Updates a simple receivable.\n@required {projectId: str # project's internal identifier, receivableId: int(int64) # receivable's internal identifier}\n@optional {id: int(int64), jobTypeId: int(int64), languageCombination: map{sourceLanguageId: int(int64), targetLanguageId: int(int64)}, languageCombinationIdNumber: str, rateOrigin: str(PRICE_PROFILE/PRICE_LIST/FILLED_MANUALLY/AUTOCALCULATED), currencyId: int(int64), total: num, invoiceId: str, type: str(SIMPLE/CAT), calculationUnitId: int(int64), ignoreMinimumCharge: bool, minimumCharge: num, description: str, rate: num, quantity: num, taskId: int(int64)}\n@example_request \"/home-api/assets/examples/v1/projects/updateReceivable.json#requestBody\"\n\n@endpoint DELETE /projects/{projectId}/finance/receivables/{receivableId}\n@desc Deletes a receivable.\n@required {projectId: str # project's internal identifier, receivableId: int(int64) # receivable's internal identifier}\n@returns(204) Success\n\n@endpoint GET /projects/ids\n@desc Returns projects' internal identifiers.\n@optional {updatedSince: int(int64) # only projects modified since this timestamp}\n\n@endpoint GET /projects/{projectId}/contacts\n@desc Returns contacts of a given project.\n@required {projectId: str # project's internal identifier}\n\n@endpoint PUT /projects/{projectId}/contacts\n@desc Updates contacts of a given project.\n@required {projectId: str # project's internal identifier}\n@optional {primaryId: int(int64), sendBackToId: int(int64), additionalIds: [int(int64)]}\n@example_request \"/home-api/assets/examples/v1/projects/updateContacts.json#requestBody\"\n\n@endpoint GET /projects/{projectId}/customFields\n@desc Returns custom fields of a given project.\n@required {projectId: str # project's internal identifier}\n\n@endpoint PUT /projects/{projectId}/customFields\n@desc Updates custom fields of a given project.\n@required {projectId: str # project's internal identifier}\n@optional {customFields: [map{type: str, name: str, key: str, value: map}], empty: bool}\n@example_request \"/home-api/assets/examples/v1/projects/updateCustomFields.json#requestBody\"\n\n@endpoint GET /projects/{projectId}/dates\n@desc Returns dates of a given project.\n@required {projectId: str # project's internal identifier}\n\n@endpoint PUT /projects/{projectId}/dates\n@desc Updates dates of a given project.\n@required {projectId: str # project's internal identifier}\n@optional {startDate: map{value: int(int64)}, deadline: map{value: int(int64)}, actualStartDate: map{value: int(int64)}, actualDeliveryDate: map{value: int(int64)}}\n@example_request \"/home-api/assets/examples/v1/projects/updateDates.json#requestBody\"\n\n@endpoint GET /projects/files/{fileId}/download\n@desc Downloads a file.\n@required {fileId: str # file's internal identifier}\n\n@endpoint GET /projects/{projectId}/finance\n@desc Returns finance of a given project.\n@required {projectId: str # project's internal identifier}\n\n@endpoint GET /projects/{projectId}/instructions\n@desc Returns instructions of a given project.\n@required {projectId: str # project's internal identifier}\n\n@endpoint PUT /projects/{projectId}/instructions\n@desc Updates instructions of a given project.\n@required {projectId: str # project's internal identifier}\n@optional {fromCustomer: str, forProvider: str, internal: str, paymentNoteForCustomer: str, paymentNoteForVendor: str, notes: str}\n@example_request \"/home-api/assets/examples/v1/projects/updateInstructions.json#requestBody\"\n\n@endgroup\n\n@group quotes\n@endpoint POST /quotes/{quoteId}/languageCombinations\n@desc Creates a new language combination for a given quote without creating a task.\n@required {quoteId: str # quote's internal identifier}\n@optional {sourceLanguageId: int(int64), targetLanguageId: int(int64)}\n@example_request \"/home-api/assets/examples/v1/quotes/createLanguageCombination.json#requestBody\"\n\n@endpoint POST /quotes/{quoteId}/finance/payables\n@desc Adds a payable.\n@required {quoteId: str # quote's internal identifier}\n@optional {id: int(int64), jobTypeId: int(int64), languageCombination: map{sourceLanguageId: int(int64), targetLanguageId: int(int64)}, languageCombinationIdNumber: str, rateOrigin: str(PRICE_PROFILE/PRICE_LIST/FILLED_MANUALLY/AUTOCALCULATED), currencyId: int(int64), total: num, invoiceId: str, type: str(SIMPLE/CAT), calculationUnitId: int(int64), ignoreMinimumCharge: bool, minimumCharge: num, description: str, rate: num, quantity: num, jobId: map, catLogFile: map{name: str, url: str, content: str, token: str}}\n@example_request \"/home-api/assets/examples/v1/quotes/createCATPayable.json#requestBody\"\n\n@endpoint POST /quotes/{quoteId}/finance/receivables\n@desc Adds a receivable.\n@required {quoteId: str # quote's internal identifier}\n@optional {id: int(int64), jobTypeId: int(int64), languageCombination: map{sourceLanguageId: int(int64), targetLanguageId: int(int64)}, languageCombinationIdNumber: str, rateOrigin: str(PRICE_PROFILE/PRICE_LIST/FILLED_MANUALLY/AUTOCALCULATED), currencyId: int(int64), total: num, invoiceId: str, type: str(SIMPLE/CAT), calculationUnitId: int(int64), ignoreMinimumCharge: bool, minimumCharge: num, description: str, rate: num, quantity: num, taskId: int(int64), catLogFile: map{name: str, url: str, content: str, token: str}}\n@example_request \"/home-api/assets/examples/v1/quotes/createReceivable.json#requestBody\"\n\n@endpoint POST /quotes/{quoteId}/tasks\n@desc Creates a new task for a given quote.\n@required {quoteId: str # quote's internal identifier}\n@optional {id: int(int64) # internal identifier, idNumber: str # identifier, projectId: int(int64) # project's internal identifier, quoteId: int(int64) # quote's internal identifier, name: str # name, clientTaskPONumber: str # client task PO number, languageCombination: map{sourceLanguageId: int(int64), targetLanguageId: int(int64)} # language combination (ie. PL -> EN), dates: map{startDate: map, deadline: map, actualStartDate: map, actualDeliveryDate: map}, people: map{responsiblePersons: map, customerContacts: map} # people, instructions: map{fromCustomer: str, forProvider: str, internal: str, paymentNoteForCustomer: str, paymentNoteForVendor: str, notes: str}, customFields: [map{type: str, name: str, key: str, value: map}], finance: map{invoiceable: bool} # finance, jobs: map{jobCount: int(int32), jobIds: [int(int64)]}}\n@example_request \"/home-api/assets/examples/v1/quotes/createTask.json#requestBody\"\n\n@endpoint GET /quotes/{quoteId}\n@desc Returns quote details.\n@required {quoteId: str # quote's internal identifier}\n@optional {embed: str # list of adittional fields which should be embedded in the response (ie. tasks)}\n\n@endpoint DELETE /quotes/{quoteId}\n@desc Removes a quote.\n@required {quoteId: str # quote's internal identifier}\n@returns(204) Success\n\n@endpoint PUT /quotes/{quoteId}/finance/payables/{payableId}\n@desc Updates a simple payable.\n@required {quoteId: str # quote's internal identifier, payableId: int(int64) # payable's internal identifier}\n@optional {id: int(int64), jobTypeId: int(int64), languageCombination: map{sourceLanguageId: int(int64), targetLanguageId: int(int64)}, languageCombinationIdNumber: str, rateOrigin: str(PRICE_PROFILE/PRICE_LIST/FILLED_MANUALLY/AUTOCALCULATED), currencyId: int(int64), total: num, invoiceId: str, type: str(SIMPLE/CAT), calculationUnitId: int(int64), ignoreMinimumCharge: bool, minimumCharge: num, description: str, rate: num, quantity: num, jobId: map}\n@example_request \"/home-api/assets/examples/v1/quotes/updatePayable.json#requestBody\"\n\n@endpoint DELETE /quotes/{quoteId}/finance/payables/{payableId}\n@desc Deletes a payable.\n@required {quoteId: str # quoteId's internal identifier, payableId: int(int64) # payable's internal identifier}\n@returns(204) Success\n\n@endpoint PUT /quotes/{quoteId}/finance/receivables/{receivableId}\n@desc Updates a simple receivable.\n@required {quoteId: str # quote's internal identifier, receivableId: int(int64) # receivable's internal identifier}\n@optional {id: int(int64), jobTypeId: int(int64), languageCombination: map{sourceLanguageId: int(int64), targetLanguageId: int(int64)}, languageCombinationIdNumber: str, rateOrigin: str(PRICE_PROFILE/PRICE_LIST/FILLED_MANUALLY/AUTOCALCULATED), currencyId: int(int64), total: num, invoiceId: str, type: str(SIMPLE/CAT), calculationUnitId: int(int64), ignoreMinimumCharge: bool, minimumCharge: num, description: str, rate: num, quantity: num, taskId: int(int64)}\n@example_request \"/home-api/assets/examples/v1/quotes/updateReceivable.json#requestBody\"\n\n@endpoint DELETE /quotes/{quoteId}/finance/receivables/{receivableId}\n@desc Deletes a receivable.\n@required {quoteId: str # quoteId's internal identifier, receivableId: int(int64) # receivable's internal identifier}\n@returns(204) Success\n\n@endpoint GET /quotes/ids\n@desc Returns quotes' internal identifiers.\n@optional {updatedSince: int(int64) # only quotes modified since this timestamp}\n\n@endpoint GET /quotes/{quoteId}/customFields\n@desc Returns custom fields of a given quote.\n@required {quoteId: str # quote's internal identifier}\n\n@endpoint PUT /quotes/{quoteId}/customFields\n@desc Updates custom fields of a given quote.\n@required {quoteId: str # quote's internal identifier}\n@optional {customFields: [map{type: str, name: str, key: str, value: map}], empty: bool}\n@example_request \"/home-api/assets/examples/v1/quotes/updateCustomFields.json#requestBody\"\n\n@endpoint GET /quotes/{quoteId}/dates\n@desc Returns dates of a given quote.\n@required {quoteId: str # quote's internal identifier}\n\n@endpoint GET /quotes/{quoteId}/finance\n@desc Returns finance of a given quote.\n@required {quoteId: str # quote's internal identifier}\n\n@endpoint GET /quotes/{quoteId}/instructions\n@desc Returns instructions of a given quote.\n@required {quoteId: str # quote's internal identifier}\n\n@endpoint PUT /quotes/{quoteId}/instructions\n@desc Updates instructions of a given quote.\n@required {quoteId: str # quote's internal identifier}\n@optional {fromCustomer: str, forProvider: str, internal: str, paymentNoteForCustomer: str, paymentNoteForVendor: str, notes: str}\n@example_request \"/home-api/assets/examples/v1/quotes/updateInstructions.json#requestBody\"\n\n@endpoint POST /quotes/{quoteId}/confirmation/send\n@desc Sends a quote for customer confirmation.\n@required {quoteId: str # quote's internal identifier}\n@returns(204) Success\n\n@endpoint POST /quotes/{quoteId}/start\n@desc Starts a quote.\n@required {quoteId: str # quote's internal identifier}\n@returns(204) Success\n\n@endgroup\n\n@group tasks\n@endpoint POST /tasks/{taskId}/files/input\n@desc Adds files to a given task.\n@required {taskId: str # task's internal identifier}\n@optional {name: str, url: str, content: str, token: str, category: str(WORKFILE/TM/DICTIONARY/REF/LOG_FILE) # file category}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v1/tasks/addFile.json#requestBody\"\n\n@endpoint DELETE /tasks/{taskId}\n@desc Removes a task.\n@required {taskId: str # task's internal identifier}\n@optional {removeFilesFromDisc: bool # remove files from disc, removeExternalProjects: bool # remove external projects (ie. from CAT Tool), forceJobsRemoval: bool # force jobs removal (ie. started or ready)}\n@returns(204) Success\n\n@endpoint GET /tasks/{taskId}/contacts\n@desc Returns contacts of a given task.\n@required {taskId: str # task's internal identifier}\n@returns(200) Success\n\n@endpoint PUT /tasks/{taskId}/contacts\n@desc Updates contacts of a given task.\n@required {taskId: str # task's internal identifier}\n@optional {primaryId: int(int64), sendBackToId: int(int64), additionalIds: [int(int64)]}\n@returns(200) Success\n@example_request \"/home-api/assets/examples/v1/tasks/updateContacts.json#requestBody\"\n\n@endpoint GET /tasks/{taskId}/customFields\n@desc Returns custom fields of a given task.\n@required {taskId: str # task's internal identifier}\n@returns(200) Success\n\n@endpoint PUT /tasks/{taskId}/customFields\n@desc Updates custom fields of a given task.\n@required {taskId: str # task's internal identifier}\n@optional {customFields: [map{type: str, name: str, key: str, value: map}], empty: bool}\n@returns(200) Success\n@example_request \"/home-api/assets/examples/v1/tasks/updateCustomFields.json#requestBody\"\n\n@endpoint GET /tasks/{taskId}/dates\n@desc Returns dates of a given task.\n@required {taskId: str # task's internal identifier}\n@returns(200) Success\n\n@endpoint PUT /tasks/{taskId}/dates\n@desc Updates dates of a given task.\n@required {taskId: str # task's internal identifier}\n@optional {startDate: map{value: int(int64)}, deadline: map{value: int(int64)}, actualStartDate: map{value: int(int64)}, actualDeliveryDate: map{value: int(int64)}}\n@returns(200) Success\n@example_request \"/home-api/assets/examples/v1/tasks/updateDates.json#requestBody\"\n\n@endpoint GET /tasks/{taskId}/instructions\n@desc Returns instructions of a given task.\n@required {taskId: str # task's internal identifier}\n@returns(200) Success\n\n@endpoint PUT /tasks/{taskId}/instructions\n@desc Updates instructions of a given task.\n@required {taskId: str # task's internal identifier}\n@optional {fromCustomer: str, forProvider: str, internal: str, paymentNoteForCustomer: str, paymentNoteForVendor: str, notes: str}\n@returns(200) Success\n@example_request \"/home-api/assets/examples/v1/tasks/updateInstructions.json#requestBody\"\n\n@endpoint GET /tasks/{taskId}/progress\n@desc Returns progress of a given task.\n@required {taskId: str # task's internal identifier}\n@returns(200) Success\n\n@endpoint GET /tasks/{taskId}/files\n@desc Returns lists of files of a given task.\n@required {taskId: str # task's internal identifier}\n@returns(200) Success\n\n@endpoint POST /tasks/{taskId}/start\n@desc Starts a task.\n@required {taskId: str # task's internal identifier}\n@returns(204) Success\n\n@endpoint PUT /tasks/{taskId}/clientTaskPONumber\n@desc Updates Client Task PO Number of a given task.\n@required {taskId: str # task's internal identifier}\n@optional {value: str}\n@returns(200) Success\n@example_request \"/home-api/assets/examples/v1/tasks/updateClientTaskPONumber.json#requestBody\"\n\n@endpoint PUT /tasks/{taskId}/name\n@desc Updates name of a given task.\n@required {taskId: str # task's internal identifier}\n@optional {value: str}\n@returns(200) Success\n@example_request \"/home-api/assets/examples/v1/tasks/updateName.json#requestBody\"\n\n@endgroup\n\n@group dictionaries\n@endpoint POST /v2/dictionaries/language\n@optional {id: int(int64) # internal identifier, name: str # localised name (formatted in the current user's locale), active: bool # should this value be available on the XTRF selection lists, preferred: bool # should this value be available on the top of XTRF selection lists, in the Preferred section, symbol: str # specific symbol or abbreviation, iso6391: str # ISO 639-1 code, iso6392: str # ISO 639-2 code, default: bool # should this value be set by default in XTRF selection lists}\n\n@endpoint PATCH /v2/dictionaries/language/{languageId}\n@required {languageId: int(int64)}\n@optional {active: bool}\n\n@endpoint POST /v2/dictionaries/specialization\n@optional {id: int(int64) # internal identifier, name: str # localised name (formatted in the current user's locale), active: bool # should this value be available on the XTRF selection lists, preferred: bool # should this value be available on the top of XTRF selection lists, in the Preferred section, default: bool # should this value be set by default in XTRF selection lists}\n\n@endpoint PATCH /v2/dictionaries/specialization/{specializationId}\n@required {specializationId: int(int64)}\n@optional {active: bool}\n\n@endgroup\n\n@group jobs\n@endpoint POST /v2/jobs/{jobId}/files/addExternalLink\n@required {jobId: str # job's internal identifier}\n@optional {category: str, languageIds: [int(int64)], languageCombinationIds: [map{sourceLanguageId: int(int64), targetLanguageId: int(int64)}], url: str, filename: str, externalInfo: map}\n\n@endpoint POST /v2/jobs/{jobId}/files/delivered/addLink\n@desc Adds file link to the project as a link delivered in the job.\n@required {jobId: str # job's internal identifier}\n@optional {fileLinks: [map{category: str, languageIds: [int(int64)], languageCombinationIds: [map], url: str, filename: str, externalInfo: map, toBeGenerated: bool}]}\n@example_request \"/home-api/assets/examples/v2/jobs/addFileLinksToJob.json#requestBody\"\n\n@endpoint PUT /v2/jobs/{jobId}/files/delivered/add\n@desc Adds files to the project as delivered in the job.\n@required {jobId: str # job's internal identifier}\n@optional {files: [map{category: str, languageIds: [int(int64)], languageCombinationIds: [map], fileId: str}], duplicateFileAction: str}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/jobs/addFiles.json#requestBody\"\n\n@endpoint PUT /v2/jobs/{jobId}/vendor\n@desc Assigns vendor to a job in a project.\n@required {jobId: str # job's internal identifier}\n@optional {allowLSPAssignment: bool, vendorPriceProfileId: int(int64)}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/jobs/assignVendor.json#requestBody\"\n\n@endpoint PUT /v2/jobs/{jobId}/dates\n@desc Updates dates of a given job.\n@required {jobId: str # job's internal identifier}\n@optional {startDate: int(int64), deadline: int(int64), actualStartDate: int(int64), actualEndDate: int(int64)}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/jobs/changeDates.json#requestBody\"\n\n@endpoint PUT /v2/jobs/{jobId}/status\n@desc Changes job status if possible (400 Bad Request is returned otherwise).\n@required {jobId: str # job's internal identifier}\n@optional {externalId: str, bundleFrom: int(int64), status: str}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/jobs/changeStatus.json#requestBody\"\n\n@endpoint GET /v2/jobs/{jobId}\n@desc Returns details for a job.\n@required {jobId: str # job's internal identifier}\n\n@endpoint DELETE /v2/jobs/{jobId}\n@desc Deletes a job.\n@required {jobId: str # job's internal identifier}\n@returns(204) Success\n\n@endpoint GET /v2/jobs/for-external-id\n@optional {externalProjectId: str # job's externalProjectId, externalId: str # job's external identifier, bundleId: int(int64) # job's external bundle id, bundleFrom: int(int64) # job's external bundle from, bundleTo: int(int64) # job's external bundle to}\n\n@endpoint GET /v2/jobs/{jobId}/files/delivered\n@desc Returns list of files delivered in the job.\n@required {jobId: str # job's internal identifier}\n\n@endpoint GET /v2/jobs/{jobId}/files/sharedReferenceFiles\n@desc Returns list of files shared with the job as Reference Files.\n@required {jobId: str # job's internal identifier}\n\n@endpoint GET /v2/jobs/{jobId}/files/sharedWorkFiles\n@desc Returns list of files shared with the job as Work Files.\n@required {jobId: str # job's internal identifier}\n\n@endpoint POST /v2/jobs/merge\n@desc Merges given list of jobs into one job.\n@optional {jobIds: [str]}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/jobs/merge.json#requestBody\"\n\n@endpoint PUT /v2/jobs/{jobId}/files/sharedReferenceFiles/share\n@desc Shares selected files as Reference Files with a job in a project.\n@required {jobId: str # job's internal identifier}\n\n@endpoint PUT /v2/jobs/{jobId}/files/sharedWorkFiles/share\n@desc Shares selected files as Work Files with a job in a project.\n@required {jobId: str # job's internal identifier}\n\n@endpoint PUT /v2/jobs/{jobId}/files/stopSharing\n@desc Stops sharing selected files with a job in a project.\n@required {jobId: str # job's internal identifier}\n\n@endpoint PUT /v2/jobs/{jobId}/instructions\n@desc Updates instructions for a job.\n@required {jobId: str # job's internal identifier}\n@optional {value: str}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/jobs/updateInstructionsForJob.json#requestBody\"\n\n@endpoint POST /v2/jobs/{jobId}/files/delivered/upload\n@desc Uploads file to the project as a file delivered in the job.\n@required {jobId: str # job's internal identifier}\n\n@endpoint POST /v2/jobs/{jobId}/files/delivered/uploadFileByVendor\n@desc Uploads file to the project as a file delivered in the job, added by vendor.\n@required {jobId: str # job's internal identifier}\n@optional {externalJobId: str # job's external identifier}\n\n@endgroup\n\n@group projects\n@endpoint POST /v2/projects/{projectId}/files/addExternalLinks\n@required {projectId: str # project's internal identifier}\n@optional {externalFiles: [map{category: str, languageIds: [int(int64)], languageCombinationIds: [map], url: str, filename: str, externalInfo: map}]}\n\n@endpoint POST /v2/projects/{projectId}/externalInfo\n@required {projectId: str}\n\n@endpoint POST /v2/projects/{projectId}/files/addLink\n@desc Adds file links to the project as added by PM.\n@required {projectId: str # project's internal identifier}\n@optional {fileLinks: [map{category: str, languageIds: [int(int64)], languageCombinationIds: [map], url: str, filename: str, externalInfo: map, toBeGenerated: bool}]}\n@example_request \"/home-api/assets/examples/v2/projects/addFileLinks.json#requestBody\"\n\n@endpoint PUT /v2/projects/{projectId}/files/add\n@desc Adds files to the project as added by PM.\n@required {projectId: str # project's internal identifier}\n@optional {files: [map{category: str, languageIds: [int(int64)], languageCombinationIds: [map], fileId: str}], duplicateFileAction: str}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/projects/addFiles.json#requestBody\"\n\n@endpoint POST /v2/projects/{projectId}/addJob\n@required {projectId: str}\n\n@endpoint PUT /v2/projects/{projectId}/files/addTargetFile\n@desc Adds target file to the project as added by PM.\n@required {projectId: str # project's internal identifier}\n@optional {externalProjectId: str, externalJobId: str, fileId: str}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/projects/addTargetFile.json#requestBody\"\n\n@endpoint POST /v2/projects/files/archive\n@desc Prepares a ZIP archive that contains the specified files.\n@optional {files: [str]}\n@example_request \"/home-api/assets/examples/v2/projects/archive.json#requestBody\"\n\n@endpoint PUT /v2/projects/{projectId}/status\n@desc Changes project status if possible (400 Bad Request is returned otherwise).\n@required {projectId: str # project's internal identifier}\n@optional {status: str}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/projects/changeStatus.json#requestBody\"\n\n@endpoint POST /v2/projects\n@desc Creates a new Smart Project.\n@optional {name: str, clientId: int(int64), serviceId: int(int64)}\n@returns(201) Success\n\n@endpoint POST /v2/projects/{projectId}/createCatToolProject\n@desc Creates Cat Tool Project corresponding to XTRF project.\n@required {projectId: str # project's internal identifier}\n@optional {templateSelectionType: str(Same_As_Project/Do_Not_Use_Template/Template_By_Id) # Template selection type. If none is provided default value: 'Same_As_Project' will be used., templateId: str # CAT Tool Template Id. Parameter can only be used if 'Template_By_Id' Template Selection Type is provided.}\n\n@endpoint POST /v2/projects/{projectId}/finance/payables\n@desc Adds a payable to a project.\n@required {projectId: str # project's internal identifier}\n@optional {id: int(int64), jobTypeId: int(int64), languageCombination: map{sourceLanguageId: int(int64), targetLanguageId: int(int64)}, languageCombinationIdNumber: str, rateOrigin: str(PRICE_PROFILE/PRICE_LIST/FILLED_MANUALLY/AUTOCALCULATED), currencyId: int(int64), total: num, invoiceId: str, type: str(SIMPLE/CAT), calculationUnitId: int(int64), ignoreMinimumCharge: bool, minimumCharge: num, description: str, rate: num, quantity: num, jobId: map, catLogFile: map{name: str, url: str, content: str, token: str}}\n@example_request \"/home-api/assets/examples/v2/projects/createPayable.json#requestBody\"\n\n@endpoint POST /v2/projects/{projectId}/finance/receivables\n@desc Adds a receivable to a project.\n@required {projectId: str # project's internal identifier}\n@optional {id: int(int64), jobTypeId: int(int64), languageCombination: map{sourceLanguageId: int(int64), targetLanguageId: int(int64)}, languageCombinationIdNumber: str, rateOrigin: str(PRICE_PROFILE/PRICE_LIST/FILLED_MANUALLY/AUTOCALCULATED), currencyId: int(int64), total: num, invoiceId: str, type: str(SIMPLE/CAT), calculationUnitId: int(int64), ignoreMinimumCharge: bool, minimumCharge: num, description: str, rate: num, quantity: num, taskId: int(int64), catLogFile: map{name: str, url: str, content: str, token: str}}\n@example_request \"/home-api/assets/examples/v2/projects/createReceivable.json#requestBody\"\n\n@endpoint DELETE /v2/projects/{projectId}/files/{fileId}\n@desc Deletes a file.\n@required {projectId: str # project's internal identifier, fileId: str # file's internal identifier}\n@returns(204) Success\n\n@endpoint PUT /v2/projects/{projectId}/finance/payables/{payableId}\n@desc Updates a simple payable.\n@required {projectId: str # project's internal identifier, payableId: int(int64) # payable's internal identifier}\n@optional {id: int(int64), jobTypeId: int(int64), languageCombination: map{sourceLanguageId: int(int64), targetLanguageId: int(int64)}, languageCombinationIdNumber: str, rateOrigin: str(PRICE_PROFILE/PRICE_LIST/FILLED_MANUALLY/AUTOCALCULATED), currencyId: int(int64), total: num, invoiceId: str, type: str(SIMPLE/CAT), calculationUnitId: int(int64), ignoreMinimumCharge: bool, minimumCharge: num, description: str, rate: num, quantity: num, jobId: map}\n@example_request \"/home-api/assets/examples/v2/projects/updatePayable.json#requestBody\"\n\n@endpoint DELETE /v2/projects/{projectId}/finance/payables/{payableId}\n@desc Deletes a payable.\n@required {projectId: str # project's internal identifier, payableId: int(int64) # payable's internal identifier}\n@returns(204) Success\n\n@endpoint PUT /v2/projects/{projectId}/finance/receivables/{receivableId}\n@desc Updates a simple receivable.\n@required {projectId: str # project's internal identifier, receivableId: int(int64) # receivable's internal identifier}\n@optional {id: int(int64), jobTypeId: int(int64), languageCombination: map{sourceLanguageId: int(int64), targetLanguageId: int(int64)}, languageCombinationIdNumber: str, rateOrigin: str(PRICE_PROFILE/PRICE_LIST/FILLED_MANUALLY/AUTOCALCULATED), currencyId: int(int64), total: num, invoiceId: str, type: str(SIMPLE/CAT), calculationUnitId: int(int64), ignoreMinimumCharge: bool, minimumCharge: num, description: str, rate: num, quantity: num, taskId: int(int64)}\n@example_request \"/home-api/assets/examples/v2/projects/updateReceivable.json#requestBody\"\n\n@endpoint DELETE /v2/projects/{projectId}/finance/receivables/{receivableId}\n@desc Deletes a receivable.\n@required {projectId: str # project's internal identifier, receivableId: int(int64) # receivable's internal identifier}\n@returns(204) Success\n\n@endpoint GET /v2/projects/for-external-id/{externalProjectId}\n@desc Returns project details.\n@required {externalProjectId: str # project's external identifier}\n\n@endpoint GET /v2/projects/{projectId}\n@desc Returns project details.\n@required {projectId: str # project's internal identifier}\n\n@endpoint GET /v2/projects/{projectId}/catToolProject\n@desc Returns if cat tool project is created or queued.\n@required {projectId: str}\n\n@endpoint GET /v2/projects/catToolProjectTemplates\n@desc Returns CAT Tool project templates available for selection in XTRF.\n@optional {catToolType: str(MemoQ/XTM) # Type of the CAT Tool, projectId: str # Project's internal identifier, catToolId: int(int64) # CAT Tool instance’s internal identifier}\n\n@endpoint GET /v2/projects/{projectId}/clientContacts\n@desc Returns Client Contacts information for a project.\n@required {projectId: str # project's internal identifier}\n\n@endpoint PUT /v2/projects/{projectId}/clientContacts\n@desc Updates Client Contacts for a project.\n@required {projectId: str # project's internal identifier}\n@optional {primaryId: int(int64), additionalIds: [int(int64)]}\n@example_request \"/home-api/assets/examples/v2/projects/updateClientContacts.json#requestBody\"\n\n@endpoint GET /v2/projects/{projectId}/customFields\n@desc Returns a list of custom field keys and values for a project.\n@required {projectId: str # project's internal identifier}\n\n@endpoint GET /v2/projects/{projectId}/files/deliverable\n@desc Returns list of files in a project, that are ready to be delivered to client.\n@required {projectId: str # project's internal identifier}\n\n@endpoint GET /v2/projects/files/{fileId}\n@desc Returns details of a file.\n@required {fileId: str # file's internal identifier}\n\n@endpoint GET /v2/projects/files/{fileId}/download/{fileName}\n@desc Downloads a file content.\n@required {fileId: str # file's internal identifier, fileName: str # file's name}\n\n@endpoint GET /v2/projects/{projectId}/files\n@desc Returns list of files in a project.\n@required {projectId: str # project's internal identifier}\n\n@endpoint GET /v2/projects/{projectId}/finance\n@desc Returns finance information for a project.\n@required {projectId: str # project's internal identifier}\n\n@endpoint GET /v2/projects/{projectId}/jobs\n@desc Returns list of jobs in a project.\n@required {projectId: str # project's internal identifier}\n\n@endpoint GET /v2/projects/{projectId}/process\n@desc Returns process id.\n@required {projectId: str}\n\n@endpoint PUT /v2/projects/{projectId}/catToolProjectTemplateDetails\n@desc Updates template details for a project.\n@required {projectId: str # project's internal identifier}\n@optional {catToolProjectTemplateId: str}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/projects/updateTemplateDetails.json#requestBody\"\n\n@endpoint PUT /v2/projects/{projectId}/clientDeadline\n@desc Updates Client Deadline for a project.\n@required {projectId: str # project's internal identifier}\n@optional {value: int(int64)}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/projects/updateClientDeadline.json#requestBody\"\n\n@endpoint PUT /v2/projects/{projectId}/clientNotes\n@desc Updates Client Notes for a project.\n@required {projectId: str # project's internal identifier}\n@optional {value: str}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/projects/updateClientNotes.json#requestBody\"\n\n@endpoint PUT /v2/projects/{projectId}/clientReferenceNumber\n@desc Updates Client Reference Number for a project.\n@required {projectId: str # project's internal identifier}\n@optional {value: str}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/projects/updateClientReferenceNumber.json#requestBody\"\n\n@endpoint PUT /v2/projects/{projectId}/customFields/{key}\n@desc Updates a custom field with a specified key in a project\n@required {projectId: str # project's internal identifier, key: str # custom field's key}\n@optional {value: map}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/projects/updateCustomField.json#requestBody\"\n\n@endpoint PUT /v2/projects/{projectId}/internalNotes\n@desc Updates Internal Notes for a project.\n@required {projectId: str # project's internal identifier}\n@optional {value: str}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/projects/updateInternalNotes.json#requestBody\"\n\n@endpoint PUT /v2/projects/{projectId}/orderDate\n@desc Updates Order Date for a project.\n@required {projectId: str # project's internal identifier}\n@optional {value: int(int64)}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/projects/updateOrderedOn.json#requestBody\"\n\n@endpoint PUT /v2/projects/{projectId}/processType\n@required {projectId: str # project's internal identifier}\n@optional {value: str, externalSystemId: int(int64)}\n\n@endpoint PUT /v2/projects/{projectId}/sourceLanguage\n@desc Updates source language for a project.\n@required {projectId: str # project's internal identifier}\n@optional {sourceLanguageId: int(int64)}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/projects/updateSourceLanguage.json#requestBody\"\n\n@endpoint PUT /v2/projects/{projectId}/specialization\n@desc Updates specialization for a project.\n@required {projectId: str # project's internal identifier}\n@optional {specializationId: int(int64)}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/projects/updateSpecialization.json#requestBody\"\n\n@endpoint PUT /v2/projects/{projectId}/targetLanguages\n@desc Updates target languages for a project.\n@required {projectId: str # project's internal identifier}\n@optional {targetLanguageIds: [int(int64)]}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/projects/updateTargetLanguages.json#requestBody\"\n\n@endpoint PUT /v2/projects/{projectId}/vendorInstructions\n@desc Updates instructions for all vendors performing the jobs in a project.\n@required {projectId: str # project's internal identifier}\n@optional {value: str}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/projects/updateSpecialization.json#requestBody\"\n\n@endpoint PUT /v2/projects/{projectId}/volume\n@desc Updates volume for a project.\n@required {projectId: str # project's internal identifier}\n@optional {value: num}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/projects/updateVolume.json#requestBody\"\n\n@endpoint POST /v2/projects/{projectId}/files/upload\n@desc Uploads file to the project as a file uploaded by PM.\n@required {projectId: str # project's internal identifier}\n\n@endgroup\n\n@group quotes\n@endpoint POST /v2/quotes/{quoteId}/files/addExternalLinks\n@required {quoteId: str # quote's internal identifier}\n@optional {externalFiles: [map{category: str, languageIds: [int(int64)], languageCombinationIds: [map], url: str, filename: str, externalInfo: map}]}\n\n@endpoint POST /v2/quotes/{quoteId}/externalInfo\n@required {quoteId: str}\n\n@endpoint POST /v2/quotes/{quoteId}/files/addLink\n@desc Adds file links to the quote as added by PM.\n@required {quoteId: str # quote's internal identifier}\n@optional {fileLinks: [map{category: str, languageIds: [int(int64)], languageCombinationIds: [map], url: str, filename: str, externalInfo: map, toBeGenerated: bool}]}\n@example_request \"/home-api/assets/examples/v2/quotes/addFileLinks.json#requestBody\"\n\n@endpoint PUT /v2/quotes/{quoteId}/files/add\n@desc Adds files to the quote as added by PM.\n@required {quoteId: str # quote's internal identifier}\n@optional {value: int(int64)}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/quotes/addFiles.json#requestBody\"\n\n@endpoint POST /v2/quotes/{quoteId}/addJob\n@required {quoteId: str}\n\n@endpoint PUT /v2/quotes/{quoteId}/files/addTargetFile\n@desc Adds target file to the quote as added by PM.\n@required {quoteId: str # quote's internal identifier}\n@optional {externalProjectId: str, externalJobId: str, fileId: str}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/quotes/addTargetFile.json#requestBody\"\n\n@endpoint POST /v2/quotes/files/archive\n@desc Prepares a ZIP archive that contains the specified files.\n\n@endpoint PUT /v2/quotes/{quoteId}/status\n@desc Changes quote status if possible (400 Bad Request is returned otherwise).\n@required {quoteId: str # quote's internal identifier}\n@optional {status: str}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/quotes/changeStatus.json#requestBody\"\n\n@endpoint POST /v2/quotes\n@desc Creates a new Smart Quote.\n@optional {name: str, clientId: int(int64), serviceId: int(int64), opportunityOfferId: int(int64)}\n@returns(201) Success\n\n@endpoint POST /v2/quotes/{quoteId}/finance/payables\n@desc Adds a payable to a quote.\n@required {quoteId: str # quote's internal identifier}\n@optional {id: int(int64), jobTypeId: int(int64), languageCombination: map{sourceLanguageId: int(int64), targetLanguageId: int(int64)}, languageCombinationIdNumber: str, rateOrigin: str(PRICE_PROFILE/PRICE_LIST/FILLED_MANUALLY/AUTOCALCULATED), currencyId: int(int64), total: num, invoiceId: str, type: str(SIMPLE/CAT), calculationUnitId: int(int64), ignoreMinimumCharge: bool, minimumCharge: num, description: str, rate: num, quantity: num, jobId: map, catLogFile: map{name: str, url: str, content: str, token: str}}\n@example_request \"/home-api/assets/examples/v2/quotes/createPayable.json#requestBody\"\n\n@endpoint POST /v2/quotes/{quoteId}/finance/receivables\n@desc Adds a receivable to a quote.\n@required {quoteId: str # quote's internal identifier}\n@optional {id: int(int64), jobTypeId: int(int64), languageCombination: map{sourceLanguageId: int(int64), targetLanguageId: int(int64)}, languageCombinationIdNumber: str, rateOrigin: str(PRICE_PROFILE/PRICE_LIST/FILLED_MANUALLY/AUTOCALCULATED), currencyId: int(int64), total: num, invoiceId: str, type: str(SIMPLE/CAT), calculationUnitId: int(int64), ignoreMinimumCharge: bool, minimumCharge: num, description: str, rate: num, quantity: num, taskId: int(int64), catLogFile: map{name: str, url: str, content: str, token: str}}\n@example_request \"/home-api/assets/examples/v2/quotes/createReceivable.json#requestBody\"\n\n@endpoint DELETE /v2/quotes/{quoteId}/files/{fileId}\n@desc Deletes a file.\n@required {quoteId: str # quote's internal identifier, fileId: str # file's internal identifier}\n@returns(204) Success\n\n@endpoint PUT /v2/quotes/{quoteId}/finance/payables/{payableId}\n@desc Updates a simple payable.\n@required {quoteId: str # quote's internal identifier, payableId: int(int64) # payable's internal identifier}\n@optional {id: int(int64), jobTypeId: int(int64), languageCombination: map{sourceLanguageId: int(int64), targetLanguageId: int(int64)}, languageCombinationIdNumber: str, rateOrigin: str(PRICE_PROFILE/PRICE_LIST/FILLED_MANUALLY/AUTOCALCULATED), currencyId: int(int64), total: num, invoiceId: str, type: str(SIMPLE/CAT), calculationUnitId: int(int64), ignoreMinimumCharge: bool, minimumCharge: num, description: str, rate: num, quantity: num, jobId: map}\n@example_request \"/home-api/assets/examples/v2/quotes/updatePayable.json#requestBody\"\n\n@endpoint DELETE /v2/quotes/{quoteId}/finance/payables/{payableId}\n@desc Deletes a payable.\n@required {quoteId: str # quote's internal identifier, payableId: int(int64) # payable's internal identifier}\n@returns(204) Success\n\n@endpoint PUT /v2/quotes/{quoteId}/finance/receivables/{receivableId}\n@desc Updates a simple receivable.\n@required {quoteId: str # quote's internal identifier, receivableId: int(int64) # receivable's internal identifier}\n@optional {id: int(int64), jobTypeId: int(int64), languageCombination: map{sourceLanguageId: int(int64), targetLanguageId: int(int64)}, languageCombinationIdNumber: str, rateOrigin: str(PRICE_PROFILE/PRICE_LIST/FILLED_MANUALLY/AUTOCALCULATED), currencyId: int(int64), total: num, invoiceId: str, type: str(SIMPLE/CAT), calculationUnitId: int(int64), ignoreMinimumCharge: bool, minimumCharge: num, description: str, rate: num, quantity: num, taskId: int(int64)}\n@example_request \"/home-api/assets/examples/v2/quotes/updateReceivable.json#requestBody\"\n\n@endpoint DELETE /v2/quotes/{quoteId}/finance/receivables/{receivableId}\n@desc Deletes a receivable.\n@required {quoteId: str # quote's internal identifier, receivableId: int(int64) # receivable's internal identifier}\n@returns(204) Success\n\n@endpoint GET /v2/quotes/for-external-id/{externalProjectId}\n@desc Returns quote details.\n@required {externalProjectId: str # project's external identifier}\n\n@endpoint GET /v2/quotes/{quoteId}\n@desc Returns quote details.\n@required {quoteId: str # quote's internal identifier}\n\n@endpoint GET /v2/quotes/{quoteId}/clientContacts\n@desc Returns Client Contacts information for a quote.\n@required {quoteId: str # quote's internal identifier}\n\n@endpoint PUT /v2/quotes/{quoteId}/clientContacts\n@desc Updates Client Contacts for a quote.\n@required {quoteId: str # quote's internal identifier}\n\n@endpoint GET /v2/quotes/{quoteId}/customFields\n@desc Returns a list of custom field keys and values for a project.\n@required {quoteId: str # quote's internal identifier}\n\n@endpoint GET /v2/quotes/files/{fileId}\n@desc Returns details of a file.\n@required {fileId: str # file's internal identifier}\n\n@endpoint GET /v2/quotes/files/{fileId}/download/{fileName}\n@desc Downloads a file content.\n@required {fileId: str # file's internal identifier, fileName: str # file's name}\n\n@endpoint GET /v2/quotes/{quoteId}/files\n@desc Returns list of files in a quote.\n@required {quoteId: str # quote's internal identifier}\n\n@endpoint GET /v2/quotes/{quoteId}/finance\n@desc Returns finance information for a quote.\n@required {quoteId: str # quote's internal identifier}\n\n@endpoint GET /v2/quotes/{quoteId}/jobs\n@desc Returns list of jobs in a quote.\n@required {quoteId: str # quote's internal identifier}\n\n@endpoint GET /v2/quotes/{quoteId}/process\n@desc Returns process id.\n@required {quoteId: str}\n\n@endpoint PUT /v2/quotes/{quoteId}/businessDays\n@desc Updates Business Days for a quote.\n@required {quoteId: str # quote's internal identifier}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/quotes/updateBusinessDays.json#requestBody\"\n\n@endpoint PUT /v2/quotes/{quoteId}/catToolProjectTemplateDetails\n@desc Updates template details for a quote.\n@required {quoteId: str # quote's internal identifier}\n@optional {catToolProjectTemplateId: str}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/projects/updateTemplateDetails.json#requestBody\"\n\n@endpoint PUT /v2/quotes/{quoteId}/clientNotes\n@desc Updates Client Notes for a quote.\n@required {quoteId: str # quote's internal identifier}\n@optional {value: str}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/quotes/updateClientNotes.json#requestBody\"\n\n@endpoint PUT /v2/quotes/{quoteId}/clientReferenceNumber\n@desc Updates Client Reference Number for a quote.\n@required {quoteId: str # quote's internal identifier}\n@optional {value: str}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/quotes/updateClientReferenceNumber.json#requestBody\"\n\n@endpoint PUT /v2/quotes/{quoteId}/customFields/{key}\n@desc Updates a custom field with a specified key in a quote.\n@required {quoteId: str # quote's internal identifier, key: str # custom field's key}\n@optional {value: map}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/quotes/updateCustomField.json#requestBody\"\n\n@endpoint PUT /v2/quotes/{quoteId}/expectedDeliveryDate\n@desc Updates Expected Delivery Date for a quote.\n@required {quoteId: str # quote's internal identifier}\n@optional {value: int(int64)}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/quotes/updateExpectedDeliveryDate.json#requestBody\"\n\n@endpoint PUT /v2/quotes/{quoteId}/internalNotes\n@desc Updates Internal Notes for a quote.\n@required {quoteId: str # quote's internal identifier}\n@optional {value: str}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/quotes/updateInternalNotes.json#requestBody\"\n\n@endpoint PUT /v2/quotes/{quoteId}/processType\n@required {quoteId: str # quote's internal identifier}\n@optional {value: str, externalSystemId: int(int64)}\n\n@endpoint PUT /v2/quotes/{quoteId}/quoteExpiry\n@desc Updates Quote Expiry Date for a quote.\n@required {quoteId: str # quote's internal identifier}\n@optional {value: int(int64)}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/quotes/updateQuoteExpiry.json#requestBody\"\n\n@endpoint PUT /v2/quotes/{quoteId}/sourceLanguage\n@desc Updates source language for a quote.\n@required {quoteId: str # quote's internal identifier}\n@optional {sourceLanguageId: int(int64)}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/quotes/updateSourceLanguage.json#requestBody\"\n\n@endpoint PUT /v2/quotes/{quoteId}/specialization\n@desc Updates specialization for a quote.\n@required {quoteId: str # quote's internal identifier}\n@optional {specializationId: int(int64)}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/quotes/updateSpecialization.json#requestBody\"\n\n@endpoint PUT /v2/quotes/{quoteId}/targetLanguages\n@desc Updates target languages for a quote.\n@required {quoteId: str # quote's internal identifier}\n@optional {targetLanguageIds: [int(int64)]}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/quotes/updateTargetLanguages.json#requestBody\"\n\n@endpoint PUT /v2/quotes/{quoteId}/vendorInstructions\n@desc Updates instructions for all vendors performing the jobs in a quote.\n@required {quoteId: str # quote's internal identifier}\n@optional {value: str}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/quotes/updateInstructionsForAllJobs.json#requestBody\"\n\n@endpoint PUT /v2/quotes/{quoteId}/volume\n@desc Updates volume for a quote.\n@required {quoteId: str # quote's internal identifier}\n@optional {value: num}\n@returns(204) Success\n@example_request \"/home-api/assets/examples/v2/quotes/updateVolume.json#requestBody\"\n\n@endpoint POST /v2/quotes/{quoteId}/files/upload\n@desc Uploads file to the quote as a file uploaded by PM.\n@required {quoteId: str # quote's internal identifier}\n\n@endgroup\n\n@end\n"}}