Skip to main content

phoss SMP

phoss SMP is a production-ready Service Metadata Publisher (SMP) server that implements all major SMP specifications:
  • Peppol SMP 1.x — The widely adopted Peppol network standard
  • OASIS BDXR SMP 1.0 — The OASIS open standard (supersedes Peppol SMP)
  • OASIS BDXR SMP 2.0 — The latest OASIS standard with enhanced capabilities
It was the first SMP server to achieve CEF eDelivery conformance, making it a proven choice for production deployments in the Peppol and OpenPeppol ecosystems. Current version: 8.1.3 (released 2026-03-06)

What is an SMP?

A Service Metadata Publisher is a registry that maps participant identifiers to their Access Point (AP) endpoints and supported document types. When a sender wants to deliver an electronic document (such as an invoice), it queries the SMP to discover:
  1. Whether the recipient is registered on the network
  2. Which document types the recipient supports
  3. Which Access Point endpoint to send documents to
The SMP is queried via DNS through the SML (Service Metadata Locator), providing a decentralized participant discovery mechanism across the Peppol network.

Key features

Multiple specification support

Supports Peppol SMP 1.x, OASIS BDXR SMP 1.0, and OASIS BDXR SMP 2.0 in a single server instance.

Three storage backends

Choose between XML (file-based), SQL (MySQL/PostgreSQL/Oracle/DB2), or MongoDB to match your infrastructure.

Management GUI

Built-in web UI for managing service groups, endpoints, business cards, and server settings.

Docker ready

Pre-built Docker images available for all three backends on Docker Hub.

SML integration

Automatic DNS registration via the Service Metadata Locator for Peppol network participation.

Directory integration

Automatic participant data publication to the Peppol Directory for business discovery.

CEF eDelivery compliant

The first SMP server certified as OASIS SMP conformant by the European Commission.

Production security

Bearer token auth, CSP headers, HTTPS enforcement, and configurable security hardening.

Module architecture

phoss SMP is organized into layered modules:
ModulePurpose
phoss-smp-backendCore interfaces, domain model, REST API logic, configuration
phoss-smp-backend-xmlXML file-based persistence implementation
phoss-smp-backend-sqlSQL persistence via JDBC and Flyway migrations
phoss-smp-backend-mongodbMongoDB persistence implementation
phoss-smp-webappCore web layer: servlets, management UI, REST filters
phoss-smp-webapp-xmlDeployable WAR combining webapp + XML backend
phoss-smp-webapp-sqlDeployable WAR combining webapp + SQL backend
phoss-smp-webapp-mongodbDeployable WAR combining webapp + MongoDB backend
Only the phoss-smp-webapp-* modules produce deployable WAR files. You select one based on your chosen backend.

Technology stack

  • Java 17+ with Maven 3.6+
  • Helger ecosystem: ph-commons, ph-web, ph-oton (web/UI framework)
  • Peppol: peppol-commons, peppol-smp-client, peppol-sml-client
  • Persistence: Apache Commons DBCP2, Flyway 12, MongoDB driver 5.6
  • App server: Tomcat 10.1.x or Jetty 12.x (Jakarta EE 10)
  • Logging: Log4j 2 + SLF4J

License

phoss SMP is dual-licensed under MPL 2.0 and Apache 2.0.

Next steps

Quickstart

Get phoss SMP running in minutes with Docker

Architecture

Understand the module structure and component design

Installation

Production installation with WAR deployment or Docker

API Reference

Explore the REST API endpoints

Build docs developers (and LLMs) love