Skip to main content
Business cards store human-readable information about a participant for use by the Peppol Directory. They are separate from service metadata and can exist independently.
The Business Card API requires the smp.directory.integration.enabled = true setting, or can be used standalone without Directory auto-push. If the server was deployed without business card support, all endpoints return 400 Bad Request with the message “This SMP server does not support the Business Card API”.

GET /businesscard/{ServiceGroupId}

Returns the business card for the given participant. Authentication: Not required.
ServiceGroupId
string
required
The participant identifier in scheme::value format, URL-encoded.
curl https://smp.example.org/businesscard/iso6523-actorid-upis%3A%3A0088%3A5060210000007

Response fields

ParticipantIdentifier
string
The participant identifier. The scheme attribute holds the identifier scheme.
BusinessEntity
array
One or more business entities. Each entity represents an organisational unit of the participant.

Error responses

StatusCondition
400Identifier cannot be parsed, or business card support is not enabled
404Service group not found, or no business card exists for this participant

PUT /businesscard/{ServiceGroupId}

Creates or replaces the business card for the given participant. The participant identifier in the URL must match the identifier in the request body. Authentication: Required. See Authentication.
ServiceGroupId
string
required
The participant identifier in scheme::value format, URL-encoded.
<?xml version="1.0" encoding="UTF-8"?>
<BusinessCard xmlns="http://www.peppol.eu/schema/pd/businesscard/20180621/">
  <ParticipantIdentifier scheme="iso6523-actorid-upis">0088:5060210000007</ParticipantIdentifier>
  <BusinessEntity>
    <Name language="en">Example Company Ltd</Name>
    <CountryCode>DE</CountryCode>
    <Identifier scheme="0088">5060210000007</Identifier>
    <AdditionalInfo>Supplier of electronic components</AdditionalInfo>
  </BusinessEntity>
</BusinessCard>

Response

Returns HTTP 200 OK with an empty body on success. If smp.directory.integration.autoupdate = true is configured, the server automatically notifies the Peppol Directory to index the updated participant.

Error responses

StatusCondition
400Identifier mismatch, or business card support is not enabled
401Missing or invalid credentials
403Authenticated user does not own the service group
404Service group does not exist

DELETE /businesscard/{ServiceGroupId}

Deletes the business card for the given participant. Authentication: Required. See Authentication.
ServiceGroupId
string
required
The participant identifier in scheme::value format, URL-encoded.
curl -X DELETE \
  https://smp.example.org/businesscard/iso6523-actorid-upis%3A%3A0088%3A5060210000007 \
  -u [email protected]:password

Response

Returns HTTP 200 OK on success.

Error responses

StatusCondition
400Identifier cannot be parsed, or business card support is not enabled
401Missing or invalid credentials
403Authenticated user does not own the service group
404Service group or business card not found

POST /businesscard/{ServiceGroupId}/push

Triggers an immediate push of the participant’s business card to the configured Peppol Directory, regardless of the smp.directory.integration.autoupdate setting. A business card must already exist for the participant. Authentication: Required. See Authentication.
ServiceGroupId
string
required
The participant identifier in scheme::value format, URL-encoded.
curl -X POST \
  https://smp.example.org/businesscard/iso6523-actorid-upis%3A%3A0088%3A5060210000007/push \
  -u [email protected]:password

Response

Returns HTTP 200 OK on success.

Error responses

StatusCondition
400No business card exists for this participant, or Directory push is not configured
401Missing or invalid credentials
403Authenticated user does not own the service group
500Directory push failed — see server logs for details

Build docs developers (and LLMs) love