Skip to content

Technical Integration

Jani Giannoudis edited this page Jul 11, 2023 · 18 revisions

Payroll Engine Technical Integration

REST API

The Payroll Engine is based on the open standard OpenAPI Specification and can be used by any REST-enabled client.


.NET Client Application

NET clients can use the Payroll Engine at code level with the Client Services. Examples of the use of Client Services are the Payroll Console and the Web Application.


Payroll Console

The Payroll Console offers various commands for data exchange.

Command Description
PayrollImport Import regulations, company and employee data (case data) with support from zip-archive
PayrollImportExcel Import regulations, company and employee data (case data) in Excel documents
PayrollExport Export regulations, company and employee data (case data) selectively
Report Data reports in XML, Excel and PDF
DataReport Data reports io JSON

Webhooks

Webhooks enable bidirectional communication between the API client and the backend. When certain events occur, the backend calls an external endpoint. Triggers for webhooks are:

  • Specific system events like a case change or a payrun execution
  • Individual trigger in automation script

For specific events in the payroll process, such as a new employee case or the final payroll run, webhooks can be registered. Each webhook message is stored in the system. For special cases, it is possible to trigger a webhook from a rule script.

The tutorial Webhook Consumer shows how Payroll Engine messages are forwarded to another service.


Database Integration

Currently the backend supports the SQL Server with about 65 tables, 40 stored procedures and 8 functions. To integrate other databases, the IDbContext interface from the backend project needs to be implemented.


Report Integration

The Payroll Engine Clients are using by default the FastReport solution. To integrate another report engine, the IDataMerge interface from the payroll core project needs to be implemented.


Logger Integration

The Payroll Engine Clients are using by default the Serilog Logger solution. To integrate another logger, the ILogger interface from the payroll core project needs to be implemented.

Clone this wiki locally