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
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:- Whether the recipient is registered on the network
- Which document types the recipient supports
- Which Access Point endpoint to send documents to
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:| Module | Purpose |
|---|---|
phoss-smp-backend | Core interfaces, domain model, REST API logic, configuration |
phoss-smp-backend-xml | XML file-based persistence implementation |
phoss-smp-backend-sql | SQL persistence via JDBC and Flyway migrations |
phoss-smp-backend-mongodb | MongoDB persistence implementation |
phoss-smp-webapp | Core web layer: servlets, management UI, REST filters |
phoss-smp-webapp-xml | Deployable WAR combining webapp + XML backend |
phoss-smp-webapp-sql | Deployable WAR combining webapp + SQL backend |
phoss-smp-webapp-mongodb | Deployable WAR combining webapp + MongoDB backend |
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