Sharpening your .NET applications

In detail

Linking software to external devices or services

Linking software to external devices or services

Changing perspective

The more an ERP can connect to other systems, the more it can broaden its audience. This often requires stepping outside your comfort zone, moving away from familiar tools and working with tools designed by others. For the ERP developer, this is not always easy or enjoyable:

  • Within the ERP, the integration may represent an essential feature, while remaining marginal in the context of the ERP as a whole.
  • For the provider of the connected service, however, it represents 100% of their usual ecosystem.

This is therefore often where it becomes more difficult to move forward at a good pace: the terminology changes, mutual understanding can be harder to establish, … Calm, patience and perseverance often become essential.

Protecting your product

An integration that cannibalises part of the product should never be implemented. An integration that reduces the quality of the software (stability, security, …) should also be rejected. The end user will never make the distinction. It is our software that will display the error message, so it will be seen as « responsible ». Integration choices must therefore be made very carefully.

Integrations I have personally implemented successfully

  • Payment terminals
    • Atos WorldLine via the VIC and TIM protocols
    • Cetrel (Luxembourg)
    • Cashdro cash management systems
    • Ingenico
    • VivaWallet
    • Mollie
    • AP terminals (Concert protocol in France)
    • Custom integrations using an abstract class available in Mercator
  • Online payments
    • Ogone
    • Hipay
    • Mollie
    • PayPal
    • PayPlug
    • SaferPay
    • WorldLine   
  • Weighing scales
    • Integrated Datalogic Magellan 8400 scanner-scale – Bizerba
    • Bizerba - ITU
    • Mettler-Toledo 8217 or compatible models
    • Any scale using the NCI or DIALOG06 protocol
  • Communication with tax authorities
    • Intervat: filing VAT returns in Belgium
    • Belcotax-on-web: filing 281.50 commission and fee statements
    • API of the Belgian Federal Public Service Finance
    • eCDF: filing VAT returns and annual accounts in Luxembourg
    • VIES: retrieving details of VAT-registered businesses and validating intra-EU VAT numbers
  • Reading the Belgian electronic identity card
  • Integration with email software
    • Outlook (emails, contacts, …) via OLE/DCOM
    • Any MAPI-compatible software
  • Integration with any SMTP server, including Azure via Microsoft Graph API
  • Sending notifications to mobile applications:
    • Via Firebase (Android)
    • Via APNS (iOS)
  • Programmatic control of all components of the new Outlook via Graph API: contacts, tasks and appointments
  • Sending and receiving Peppol invoices via a Belgian provider and a French provider
  • Sending and receiving banking information via Isabel GO, Isabel Connect and Ponto
  • Electronic signatures via OkSign
  • Receiving images from TWAIN-compatible scanners
  • Exporting Belgian annual accounts
    • To Sofista (NBB)
    • To Accon
    • To Sofisk
    • To First
  • Integration with Freedelity (shared loyalty cards)
  • Integration with CompanyWeb (financial information)
  • Integration with Letzshop (Luxembourg, shared e-commerce platform)
  • Integration with external accounting software
    • Popsy
    • Bob
    • WinBooks


This list is not exhaustive.

These integrations have led me to work with a very wide range of protocols and technologies: serial communications, MAPI, OLE/DCOM, TCP/IP, REST, SOAP, OAuth2, X509 certificates, XML or JSON exchanges, proprietary protocols, Microsoft Graph, …

Previous Next
All products, technologies, and company names mentioned on this website are trademarks or registered trademarks of their respective owners. The Microsoft products cited (SQL Server, Windows, MAUI, Xamarin, .NET, Blazor,...) are trademarks of Microsoft Corporation. Ubuntu is a registered trademark of Canonical Ltd.
An unhandled error has occurred. Reload 🗙

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.