Skip to content
Logistics

Supplier invoices read by AI, approved by people and matched to shipments

One portal with four applications for an international freight forwarder. At its centre, an AI agent that reads supplier PDF invoices, checks that each document really is an invoice and extracts the data for approval, import and matching with shipment files.

Client
An international freight forwarder
Sector
Logistics

In numbers

applications in one portal
4
roles in the access-control model
7
interface languages, Italian and English
2

The context

A freight forwarder receives supplier invoices for every part of every shipment: carriers, agents, brokers, warehouses. Each one has to be checked, booked and tied to the right shipment file before it can be paid or charged on.

Mistakes cost in both directions: a cost missed on a shipment is margin lost, and a cost booked twice becomes a dispute with a supplier. Done by hand, this is slow and repetitive work that depends on a few experienced people. The master data behind it — commercial parties, offices, payment terms, broker rules, the parameters for Italian electronic invoicing — was spread across different tools.

What we built

One portal, four applications, one sign-in. At its centre is supplier invoice processing, where the first check matters more than it seems: a mailbox that receives invoices also receives reminders, statements and duplicates, and checking that a PDF is an invoice before extracting anything keeps the rest of the flow clean.

The four applications:

  • Master data: commercial parties, offices, payment terms, broker rules and the parameters for the Italian e-invoicing exchange system (SDI), with a map view.

  • Supplier invoice processing: an AI agent receives supplier PDF invoices, checks that each document really is an invoice, and extracts the data. Invoices are then mapped, approved and imported into the management system.

  • Catalogue: a shared catalogue, managed in the same portal.

  • Permissions: access control with seven roles, so that each person works only on what their role allows.

How it connects

Approved invoices are imported into the management system and matched to shipment files through the API of the forwarder's operational system, so each cost lands on the right shipment.

Corporate single sign-on runs through Keycloak. A RabbitMQ message queue carries work between the parts of the system, SignalR updates the screens in real time as documents move, and scheduled jobs take care of recurring work. The interface is available in Italian and English.

The outcome

Supplier invoices start as data prepared by the AI, not as manual entry. People review, correct and approve what the agent has extracted.

Master data, invoices, catalogue and permissions live in one portal with one sign-in, instead of in separate tools.

Because work moves through a message queue, a burst of invoices is absorbed and processed in turn instead of blocking the system.

Technology

  • Angular 21
  • .NET 9 and 10
  • SQL Server
  • Keycloak
  • RabbitMQ
  • SignalR

Related services

  • 01

    Enterprise AI

    AI systems in production on your data and processes, connected to your ERP and supervised by people.

    • Document AI for invoices and orders
    • Assistants over your own documents
    • Human review of exceptions
    • EU data residency and audit trail
  • 03

    Systems integration

    Your ERP, CRM and legacy systems connected through APIs, queues and imports that are traceable and safe to repeat.

    • ERP integration, e.g. Microsoft Dynamics NAV
    • APIs, message queues, synchronisation
    • Migrations from legacy systems
    • Idempotent, observable, documented

Your project

Does one of these look like your problem?

The details change from company to company; the method doesn't. Tell us about yours.

Request a private meeting