Translation

Translations.

APIDescription
GET api/translations/values/{languageId}/{appType}/{appName}

Get all translation values for the given application.

GET api/translations/values?skip={skip}&take={take}&key={key}&value={value}&language={language}&appType={appType}&appName={appName}

Get all translation values.

GET api/translations/{id}

Get translation by ID.

POST api/translations

Add a new translation.

PUT api/translations

Updates a translation.

DELETE api/translations/items/{id}

Deletes the translation item with the specified ID.

DELETE api/translations/bases/{id}

Deletes the translation base with the specified ID.

GET api/translations/keys?language={language}&appType={appType}&appName={appName}&key={key}

Get available keys for translation

PUT api/translations/copy

Copy updated and missing translations from dev to prod

Account

User account and permission management.

APIDescription
GET api/account

Returns information about the currently logged-in user.

PUT api/account/password/usernameoremail/b2c

Resets the password for the specified user.

GET api/account/password?code={code}

Callback method for user's password reset. Should not be called directly. Link with the corresponding code should only be known to the user that requested the password reset. Does not require access token.

POST api/account

Adds a new user account to the Azure AD.

PUT api/account

Updates user's profile information - e-mail, Name, Surname, Status or Role. The user is looked up by their username. AccountId can also be changed withing legacy account ID range ([1-5000]), if the user has a SystemAdmin role.

POST api/account/permission

Changes a permission for the user, using the company of the user making the change.

PUT api/account/switchCompany/{companyId}

Switches user's organization from the current one to the one specified by the parameter companyId. All of the claims are regenerated. After switching, user should log out and log in again to obtain a new token with a new set of claims.

GET api/account/companies?searchString={searchString}&take={take}&app={app}

Returns a list of organizations for which the user has at least one claim set.

GET api/account/users?skip={skip}&take={take}&username={username}&email={email}&name={name}&surname={surname}&status={status}

Returns a list of users in one's own organization.

GET api/account/details/{usernameOrId}

Returns details for the account in the user's company.

GET api/account/users/search?name={name}

Returns a list of users in one's own organization, filtered by partial name and/or surname.

GET api/account/email?emailAddress={emailAddress}

Returns details about a user by his e-mail address, if he is registered in the system.

PUT api/account/enableCompany?companyId={companyId}

Enables all of the accounts in the specified company.

PUT api/account/disableCompany?companyId={companyId}

Disables all of the accounts in the specified company.

GET api/account/apps?userName={userName}

Returns a list of applications that the user has the access to. Application names correspond to the assigned values of the ClaimTypes.App claim.

GET api/account/whoami

Decodes a JSON Web token specified in the request's HTTP authorization header and returns it as a JSON array of issued claims.

DELETE api/account?username={username}

Deletes the specified user from the current company. If the user has access to other companies, it is automatically assigned to some other company they have access to, otherwise they're deleted for good.

DELETE api/account/undelete?username={username}

Deletes the specified user from the current company. If the user has access to other companies, it is automatically assigned to some other company they have access to, otherwise they're deleted for good.

GET api/account/islastcompany?username={username}

Returns true if the user has access to a single company.

GET api/account/search?name={name}

Get available usernames.

PUT api/account/link/google

Link Google login.

Currency

Currencies-related REST endpoints.

APIDescription
GET api/currency?skip={skip}&take={take}&nameOrCode={nameOrCode}&all={all}

Returns all of the currencies with names containing the specified substring.

GET api/currency/{id}

Returns the currency with the specified ID.

GET api/currency/exchange?bankId={bankId}&fromCode={fromCode}&toCode={toCode}&fromId={fromId}&toId={toId}&date={date}

Returns the exchange rate of currencies.

GET api/currency/banks?name={name}

Returns all of the banks with names containing the specified substring.

Messages

E-mail message templates.

APIDescription
GET api/messages?documentId={documentId}

For a given document retrieves a list of messages in which it was sent.

GET api/messages?key={key}

For the specified recipient ID fetch all of the sent messages. Sort messages by TimeSent, from the latest to the oldest. List corresponding message Subject, From field, and document Url.

POST api/messages/untemplated

Sends an untemplated e-mail message.

POST api/messages/templated

Sends a templated e-mail message.

MandrillWebHook

APIDescription
POST api/MandrillWebHook

Mandrill webhook handler for postman. Do not invoke directly.

HEAD api/MandrillWebHook

Mandrill webhook handler for postman. Do not invoke directly.

Emails

APIDescription
POST api/emails/getActive

Gets the active e-mail address for the specified e-mail address that is registered in Postman's database.

POST api/emails/reset

Resets user's active key used for viewing received messages by sending a blank e-mail to the currently active e-mail address with a link to the URL containing the newly generated key.

PUT api/emails/active/{key}

Changes user's active e-mail account.

PUT api/emails/forward/{key}

Changes user's forward e-mail account.

GET api/emails/forward/{key}

For a given user ID, gets user's forward e-mail address.

GET api/emails/active/{key}

For a given user ID, gets user's active e-mail address.

City

City-related REST endpoints.

APIDescription
GET api/city?name={name}&postcode={postcode}&countryId={countryId}

Returns all of the cities with names or postcodes containing the specified substrings. If both are specified, only the name is used.

Document

Document templates and PDF generation.

APIDescription
GET api/documents

Get all document templates.

GET api/documents/categories

Get all document categories.

GET api/documents/{level}/{categoryName}/{departmentId}

Get available templates for for the selected level and category.

GET api/documents/{id}

Get document template by ID.

POST api/documents

Adds a new document template. If the CompanyId field is equal to 0, it adds a new global template. Otherwise, if the CompanyId field is equal to the AccountingOfficeId field, it adds a new accounting office-level template. Otherwise it adds an organization-level template.

PUT api/documents

Updates a document template by ID. Template name cannot be equal to an existing template name within the category, and the user must have the required privileges.

DELETE api/documents/{id}

Deletes the document template with the specified ID. If the template is a global template, it will delete all of the accounting office- and company-level templates with the same name as well.

GET api/documents/master/{id}

ListURL parameter value: API for the upload component. Only a single item is returned, since there can be only one template document per level for a company.

POST api/documents/master/{id}

UploadURL parameter value: API for the upload component.

GET api/documents/fittest/{category}/{code}/{departmentId}

Returns the fittest document template. Useful when creating a new template on the basis of an existing one.

POST api/document/generate

Generates/caches a PDF for the specified URL/DTO and a template name.

POST api/documents/generate

Generates/caches PDFs for every document in the list of the specified URLs and a template name.

GET api/document/metadata?documentURL={documentURL}

Verifies document's signature and extracts the embedded metadata.

POST api/document/zip/generate/{archiveName}

Generates an archive for the documents generated from the specified URLs and templates.

POST api/document/zip/generate/single/{archiveName}

Generate archive for multiple files from a single URL returning a list of DTOs

DELETE api/document/{documentId}

Deletes the cached PDF files for the document.

Organization

Details about organizations.

APIDescription
GET api/organization/{companyId}

For a given company ID, returns name of the corresponding organization.

GET api/organization/departments?type={type}

Returns a list of departments for the currently logged in company.

GET api/organization/departments/all?skip={skip}&take={take}&name={name}&type={type}&status={status}

Returns a list of departments for the currently logged in company.

POST api/organization/departments

Add a new department.

PUT api/organization/departments/{id}

Updates a department by ID.

PUT api/organization/data/inboundfilesemail

Generates a random e-mail address for the inbound files.

GET api/organization/lastchange

Returns company's last modified timestamp.

GET api/organization/data

Returns user's organization data.

POST api/organization/data

Adds organizational data.

PUT api/organization/data

Updates organizational data.

GET api/organization/employees?skip={skip}&take={take}&name={name}

Get all employees

POST api/organization/employees

Add a new employee.

PUT api/organization/employees/{employeeId}

Updates an employee.

DELETE api/organization/employees/{employeeId}

Deletes the employee with the specified ID.

GET api/organization/employees/search?name={name}&all={all}

Search employees in the company by name and surname.

Maintenance

Maintenance controller.

APIDescription
POST api/maintenance/regenerateDefaultMenuLayout

Seeds the default menu layout for users which don't have their own custom menu layout saved.

GET api/maintenance/warmup?code={code}

Keeps database contexts nice and warm.

GET api/maintenance/status

No documentation available.

Parameter

User parameter manipulation.

APIDescription
GET api/parameters?skip={skip}&take={take}&name={name}

Get all parameters.

GET api/parameters/categories

Get all parameter categories.

POST api/parameters

Add a new parameter.

GET api/parameters/{id}

Get parameter by ID.

PUT api/parameters/{id}

Updates a parameter by ID. Parameter name cannot be equal to an existing template name within the category.

DELETE api/parameters/{id}

Deletes the parameter with the specified ID.

GET api/parameters/values?skip={skip}&take={take}&name={name}&validFrom={validFrom}&validTo={validTo}&type={type}&enabled={enabled}&level={level}

Get all parameter values.

GET api/parameters/names?categoryId={categoryId}

Get all active parameter names.

GET api/parameters/values/default/{parameterId}?departmentId={departmentId}

Get the default parameter value, when adding a new parameter value. If there is no value specified, only the parameter data is returned.

POST api/parameters/values

Add a new parameter value.

GET api/parameters/values/{id}

Get parameter value by ID.

PUT api/parameters/values/{id}

Updates a parameter value by ID.

DELETE api/parameters/values/{id}

Deletes the parameter value with the specified ID.

GET api/parameters/values/current?paramValueRequests[0].Code={paramValueRequests[0].Code}&paramValueRequests[0].Category={paramValueRequests[0].Category}&paramValueRequests[0].DepartmentId={paramValueRequests[0].DepartmentId}&paramValueRequests[1].Code={paramValueRequests[1].Code}&paramValueRequests[1].Category={paramValueRequests[1].Category}&paramValueRequests[1].DepartmentId={paramValueRequests[1].DepartmentId}&date={date}

Fetches the specified parameter values.

Templates

Email templates manipulation.

APIDescription
GET api/emailtemplates/categories

Get all e-mail template categories.

GET api/emailtemplates/{level}/{categoryName}

Get available templates for for the selected level and category.

GET api/emailtemplates/fittest/{category}/{code}

Retrieves the raw body of the fittest template specified by name.

GET api/emailtemplates/company

Retrieves a list of templates valid for the user's company, its accounting office, and globally. Company ID is extracted from the token. For performance reasons the fields Subject and Body are not returned, and require an additional lookup by the e-mail template ID.

POST api/emailtemplates

Adds a new email template. If the CompanyId field is equal to 0, it adds a new global template. Otherwise, if the CompanyId field is equal to the AccountingOfficeId field, it adds a new accounting office-level template. Otherwise it adds an organization-level template.

GET api/emailtemplates/{id}

Fetches details for the template with the specified template ID.

PUT api/emailtemplates

Updates the e-mail template with the specified ID. Template name cannot be equal to an existing template name, and the user must have the required privileges.

DELETE api/emailtemplates/{id}

Deletes the template with the specified ID. If the template is a global template, it will delete all of the accounting office- and company-level templates with the same name as well.

Token

API token management.

APIDescription
GET api/token/{username}?password={password}

Get API token.

GET api/token/{username}/isfirst

Does the account require a change of the temporary password.

PUT api/token/{username}

Reset password for an account.

Package

Packages management - both document and application.

APIDescription
POST api/packages/documentsPackage

Creates a DocumentsPackageDTO. Document package name must be unique.

PUT api/packages/documentsPackage

Updates e DocumentsPackage by its ID. THe new document package name must be unique.

GET api/packages/documentsPackage

Fetches all documents packages, both active and inactive ones.

GET api/packages/documentsPackage/{packageId}

Fetches data for a single package by its ID.

DELETE api/packages/documentsPackage/{packageId}

Delete a documents package.

User's menu layout manipulation.

APIDescription
GET api/menu/{appName}

Gets user's saved menu layout, if it exists, for a given application and the company they are logged on to. The default menu layout is returned if a user doesn't have their own customized menu layout saved. Applications that the user doesn't have access to via their Web token are automatically stripped from the menu.

DELETE api/menu/{appName}

Deletes user's saved menu layout, if it exists, for a given application and the company they are logged on to. Afterwards the default user menu layout will be returned for the user.

PUT api/menu

Saves user's menu layout. If a menu layout for the user already exists for a given application and the company they are logged on to the old one is deleted. Applications that the user doesn't have access to via their Web token are stored nevertheless, but are automatically stripped from the list during the fetching phase. The order of menu items within a menu, and submenu items within menu items, is persisted as well.

UserSettings

User settings manipulation.

APIDescription
POST api/userSettings

Creates a setting for the user.

PUT api/userSettings

Update a setting for the user.

DELETE api/userSettings?screenId={screenId}&name={name}

Delete a particular setting, along with the data. A user can only delete a setting that they themselves created.

GET api/userSettings?screenId={screenId}

Gets available settings for the user, without values. These include settings that are user-specific, as well as settings that are stored at the accounting office, company and global level.

InboundMandrillWebHook

APIDescription
POST api/InboundMandrillWebHook

Mandrill webhook handler for incoming document files. Do not invoke directly.

HEAD api/InboundMandrillWebHook

Mandrill webhook handler for incoming document files. Do not invoke directly.

Certificates

Certificates handling.

APIDescription
POST api/certificates

Upload a new certificate.

GET api/certificates/images/{id}

Get a certificate signature image.

POST api/certificates/images/{id}

Upload a new certificate signature image.

GET api/certificates?skip={skip}&take={take}&user={user}&expiryDateFrom={expiryDateFrom}

Lists certificates for the user's company, and for all of the users in it.

DELETE api/certificates/{id}

Delete the specified certificate.

DELETE api/certificates/images/{id}

Delete the signature image from the specified certificate.

PUT api/certificates/{certificateId}

Certificate metadata update.

Payments

User payments.

APIDescription
GET api/payments/setup

Get payment setup.

PUT api/payments/setup

Add/update a payment setup.

GET api/payments

Get payment info.

POST api/payments/legalUser

Add a new legal user.

POST api/payments/card

Add a new card.

GET api/payments/cardstatus

Get card validity.

DELETE api/payments/card

Deletes the registered card.

GET api/payments/status

Get payment setup.

Files

Document upload and linking.

APIDescription
POST api/files?uploadDocumentDTOBase64={uploadDocumentDTOBase64}

UploadURL configuration endpoint for the uploadDocument component.

POST api/files/public?uploadDocumentDTOBase64={uploadDocumentDTOBase64}

UploadURL configuration endpoint for the uploadDocument component - public version.

POST api/files/new

Uploads a new unassigned file for the company.

GET api/files?listDocumentDTOBase64={listDocumentDTOBase64}

ListURL configuration endpoint for the uploadDocument component.

POST api/files/count

Get count number for the files attached to documents.

GET api/files/public?listDocumentDTOBase64={listDocumentDTOBase64}

ListURL configuration endpoint for the uploadDocument component - public version.

DELETE api/files/trash

Trashes the specified file upload.

DELETE api/files/trash/{fileId}

Trashes the specified file upload.

PUT api/files/{fileId}

Undoes file trashing.

DELETE api/files/{fileId}

Deletes the specified file upload.

PUT api/files

Changes the download file name for the specified document upload ID.

PUT api/files/attach

Attaches the specified document file to the specified document.

GET api/files/all?status={status}&skip={skip}&take={take}&fileName={fileName}&applicationName={applicationName}&from={from}&to={to}

Fetches a list of document files for the current company and application type.

GET api/files/new?skip={skip}&take={take}&fileName={fileName}&senderEmail={senderEmail}&from={from}&to={to}

Returns a list of new (i.e. unassigned) PDF files, for the current application type.

GET api/files/latest

Returns creation time of the latest new file for the current company.

PUT api/files/detach/{fileId}

Detaches the specified file upload from the document it's assigned to.

Country

Countries-related REST endpoints.

APIDescription
GET api/country?name={name}&all={all}

Returns all of the countries with names containing the specified substring.

GET api/country?skip={skip}&take={take}&name={name}

Returns all of the countries with names containing the specified substring.

GET api/country/{id}

Returns the country with the specified ID.