Both the OASIS SMP v1 Standard and PEPPOL SMP specification allow only one Certificate to be registered for an Endpoint. Therefore the current implementation only uses the first registered Certificate for an Endpoint when responding to a ServiceMetadata query.
This implies that a scheduled certificate renewal requires adding a new, duplicate, Endpoint registration with the new certificate and setting the activation and expiration dates on the Endpoints.
However the SMP server could also automatically create multiple Endpoints when queried if the Endpoint contains multiple Certificate entries. This would remove the need to duplicate the other Endpoint meta-data.
Example
Given this Endpoint registration:
The output of the ServiceMetadata query could be:
<ns3:ServiceEndpointList>
<ns3:Endpoint transportProfile="peppol-transport-as4-v2_0">
<ns2:EndpointReference>
<ns2:Address>https://example.holodeck-b2b.org/as4</ns2:Address>
</ns2:EndpointReference>
<ns3:RequireBusinessLevelSignature>false</ns3:RequireBusinessLevelSignature>
<ns3:ServiceExpirationDate>2026-02-12T00:00:00.000Z</ns3:ServiceExpirationDate>
<ns3:Certificate>PEM encoded old certificate</ns3:Certificate>
<ns3:ServiceDescription>The default endpoint for X</ns3:ServiceDescription>
<ns3:TechnicalContactUrl>mailto:contact-us@example.holodeck-b2b.org</ns3:TechnicalContactUrl>
</ns3:Endpoint>
<ns3:Endpoint transportProfile="peppol-transport-as4-v2_0">
<ns2:EndpointReference>
<ns2:Address>https://example.holodeck-b2b.org/as4</ns2:Address>
</ns2:EndpointReference>
<ns3:RequireBusinessLevelSignature>false</ns3:RequireBusinessLevelSignature>
<ns3:ServiceActivationDate>2026-02-12T00:00:00.000Z</ns3:ServiceActivationDate>
<ns3:Certificate>PEM encoded new certificate</ns3:Certificate>
<ns3:ServiceDescription>The default endpoint for X</ns3:ServiceDescription>
<ns3:TechnicalContactUrl>mailto:contact-us@example.holodeck-b2b.org</ns3:TechnicalContactUrl>
</ns3:Endpoint>
</ns3:ServiceEndpointList>
Both the OASIS SMP v1 Standard and PEPPOL SMP specification allow only one Certificate to be registered for an Endpoint. Therefore the current implementation only uses the first registered Certificate for an Endpoint when responding to a ServiceMetadata query.
This implies that a scheduled certificate renewal requires adding a new, duplicate, Endpoint registration with the new certificate and setting the activation and expiration dates on the Endpoints.
However the SMP server could also automatically create multiple Endpoints when queried if the Endpoint contains multiple Certificate entries. This would remove the need to duplicate the other Endpoint meta-data.
Example
Given this Endpoint registration:
The output of the ServiceMetadata query could be: