Skip to content

Technical Integration

Jani Giannoudis edited this page Jul 27, 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. The swagger.json file is included in the Release assets.

.NET Client Integration

.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.

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.

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

  • Engine: System events for changes in cases, payruns and tasks
  • Automation: Custom webhook invocation in scripting function (InvokeWebhook)

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.

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.

Exchange Tools

The Payroll Console provides the following 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