Guys, you are stretching the capacity of the system. Please remember, that this system has no SLAs!
Ping me if you are interested in knowing how to run some of the APIs on your own premises - use firstname@lastname.com to reach me….
https://peppol.helger.com/api - prepend this to all queries.
digitprod - the production Peppol SMLdigittest - the test Peppol SML (aka SMK)autodetect - find the matching SML automatically
To retrieve all document types from a participant registered in an SMP.
Note: please see https://github.com/phax/smp-query-webapp if you want to run this in production on-site.
GET
/smpquery/SML-ID/participant-ID[?businessCard=false&xmlSchemaValidation=true&verifySignature=true]
SML-ID is the SML identifier mentioned above.participant-ID is the URL encoded participant identifier to be queried (e.g. iso6523-actorid-upis%3a%3a9915%3atest)businessCard can be used to turn on querying of SMP Business CardsxmlSchemaValidation can be used to turn off XML Schema validation of SMP responsesverifySignature can be used to turn off signature verification of SMP responses (not recommended)
Example URL (without Business Card): /smpquery/digittest/iso6523-actorid-upis%3a%3a9915%3atest
Example URL (with Business Card): /smpquery/digittest/iso6523-actorid-upis%3a%3a9915%3atest?businessCard=true
Note: all SMP queries are passed through to the effective SMP server and cause load there.
Example response (with Business Card):
{
"smptype":"peppol",
"participantID":"iso6523-actorid-upis::9915:test",
"urls":[
{
"href":"http://test-infra.peppol.at/iso6523-actorid-upis%3A%3A9915%3Atest/services/busdox-docid-qns%3A%3Aurn%3Aoasis%3Anames%3Aspecification%3Aubl%3Aschema%3Axsd%3ACreditNote-2%3A%3ACreditNote%23%23urn%3Acen.eu%3Aen16931%3A2017%23compliant%23urn%3Afdc%3Apeppol.eu%3A2017%3Apoacc%3Abilling%3A3.0%3A%3A2.1",
"documentTypeID":"busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2::CreditNote##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1",
"niceName":"Peppol BIS Billing UBL Credit Note V3",
"state":"act",
"isDeprecated":false
},
{
"href":"http://test-infra.peppol.at/iso6523-actorid-upis%3A%3A9915%3Atest/services/busdox-docid-qns%3A%3Aurn%3Aoasis%3Anames%3Aspecification%3Aubl%3Aschema%3Axsd%3AInvoice-2%3A%3AInvoice%23%23urn%3Acen.eu%3Aen16931%3A2017%23compliant%23urn%3Afdc%3Apeppol.eu%3A2017%3Apoacc%3Abilling%3A3.0%3A%3A2.1",
"documentTypeID":"busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1",
"niceName":"Peppol BIS Billing UBL Invoice V3",
"state":"act",
"isDeprecated":false
}
],
"businessCard":{
"participant":{
"scheme":"iso6523-actorid-upis",
"value":"9915:test"
},
"entity":[
{
"name":[
{
"name":"Austrian Government"
}
],
"countrycode":"AT",
"geoinfo":"Vienna, Austria",
"website":[
"https://test.erechnung.gv.at"
],
"additionalinfo":"This is the test endpoint for the whole Austrian Government!\r\nIt does not only support the Federal Government but also other external companies.",
"regdate":"2012-01-01"
}
]
},
"queryDateTime":"2025-10-01T14:04:35.46783651Z",
"queryDurationMillis":65
}
To retrieve all endpoints of an SMP participant for a single document type.
This API gives you AS4 and other endpoints.
Note: this API also supports querying for Peppol wildcard when using scheme peppol-doctype-wildcard.
Note: please see https://github.com/phax/smp-query-webapp if you want to run this in production on-site.
GET
/smpquery/SML-ID/participant-ID/docType-ID[?xmlSchemaValidation=true&verifySignature=true]
SML-ID is the SML identifier mentioned above.participant-ID is the URL encoded participant identifier to be queried (e.g. iso6523-actorid-upis%3a%3a9915%3atest)docType-ID is the URL encoded document type identifier to be queried (e.g. busdox-docid-qns%3A%3Aurn%3Aoasis%3Anames%3Aspecification%3Aubl%3Aschema%3Axsd%3AInvoice-2%3A%3AInvoice%23%23urn%3Awww.cenbii.eu%3Atransaction%3Abiitrns010%3Aver2.0%3Aextended%3Aurn%3Awww.peppol.eu%3Abis%3Apeppol5a%3Aver2.0%3A%3A2.1)xmlSchemaValidation can be used to turn off XML Schema validation of SMP responsesverifySignature can be used to turn off signature verification of SMP responses (not recommended)
Note: all SMP queries are passed through to the effective SMP server and cause load there.
Example response:
{
"smptype":"peppol",
"participantID":"iso6523-actorid-upis::9915:test",
"documentTypeID":"busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1",
"serviceinfo":{
"processes":[
{
"processID":"cenbii-procid-ubl::urn:fdc:peppol.eu:2017:poacc:billing:01:1.0",
"endpoints":[
{
"transportProfile":"peppol-transport-as4-v2_0",
"endpointReference":"https://test.erechnung.gv.at/as4",
"requireBusinessLevelSignature":false,
"minimumAuthenticationLevel":null,
"certificate":"MIIFwDCCA6igAwIBAgIQHVPXZhVL2J+G+tNqMFz3kDANBgkqhkiG9w0BAQsFADBr\nMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQT3BlblBFUFBPTCBBSVNCTDEWMBQGA1UE\nCxMNRk9SIFRFU1QgT05MWTEpMCcGA1UEAxMgUEVQUE9MIEFDQ0VTUyBQT0lOVCBU\nRVNUIENBIC0gRzIwHhcNMjQxMTEzMDAwMDAwWhcNMjYxMTAzMjM1OTU5WjBNMQsw\nCQYDVQQGEwJBVDERMA8GA1UECgwIQlJaIEdtYkgxFzAVBgNVBAsMDlBFUFBPTCBU\nRVNUIEFQMRIwEAYDVQQDDAlQT1AwMDAyNzAwggEiMA0GCSqGSIb3DQEBAQUAA4IB\nDwAwggEKAoIBAQDIVQjWwLbgQYs9tepIQEteUcxxymLXzKtRoQdqNS8e3yduBfPO\nLpZdI0Zk5xyzHqmzG7B1/UJbvVAjShIDJ95nszsvTFC6i0Bw+rOhE2Y0ZyakkJM/\nKDoVcTEpZoQ4IzF56gORzMnk6qiLL9HTybmxNzzikrxzR126N7wFUzbK0SGEAXlj\nuUG42lu+QXWp++71DUYvCzuaIAAc+IPR1rDCLTQgAosW1kgwehek3igcXQuouUfp\nkB6e+joJurKFEe4gvwBCt+taF1iXFSRFKCEse53jOieZeJj7CXLyTYjMleCZzlxo\n5XNU0cIWXYbts70a6SXhMDYsZISb+5N+x7LFAgMBAAGjggF8MIIBeDAMBgNVHRMB\nAf8EAjAAMA4GA1UdDwEB/wQEAwIDqDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDAjAd\nBgNVHQ4EFgQUrr4N2vx7Hoh814pJ+Gqn/r/bSd8wXQYDVR0fBFYwVDBSoFCgToZM\naHR0cDovL3BraS1jcmwuc3ltYXV0aC5jb20vY2FfNmE5Mzc3MzRhMzkzYTA4MDVi\nZjMzY2RhOGIzMzEwOTMvTGF0ZXN0Q1JMLmNybDA3BggrBgEFBQcBAQQrMCkwJwYI\nKwYBBQUHMAGGG2h0dHA6Ly9wa2ktb2NzcC5zeW1hdXRoLmNvbTAfBgNVHSMEGDAW\ngBRrb0u28Te6Kzx/GM26K7K5fCo36zAtBgpghkgBhvhFARADBB8wHQYTYIZIAYb4\nRQEQAQIDAQGBqZDhAxYGOTU3NjA4MDkGCmCGSAGG+EUBEAUEKzApAgEAFiRhSFIw\nY0hNNkx5OXdhMmt0Y21FdWMzbHRZWFYwYUM1amIyMD0wDQYJKoZIhvcNAQELBQAD\nggIBAGZajBZleSCU40p5dNkclWzJ9ajYZAmboq6qshcuLYfJk+sw5e09Fzus62qV\nRUs78iXzgWVQQkvhJJIolsnlwm7t1s8X/pUoJhCW51v2ZlPq/nNVbVUevVYQvcMq\nTczgzlHX2hyDDEMtP2t3m4PmSkKBufSs8cLI5brbyxWvARmZZev6FLMOfNouQ4ZQ\nyoRgB+FA6tqCEgTMouhax822oo74D11Xz+VqRaEWe6Ey//LIzcue7C/jcMqwaWCe\nURf9ieZuy2wJBAcwdcFBjvlLFzwF1FHVtbF67VBepDK3POMFpwUcDFPhZtbMK0i1\ntDSVMQ+Bj3sBYYS4LRh/Bqt0ZHpyNcU5eigWyXI4PAkoC9f24iG4EQYiRQjNodxT\nm5M9u/lnZi5EO99VDL1sdg5AUp06HA1iocmyoymhC9QV66LFe8TYeRJ14qCVcV1t\nW1iGxhc034FspjZrmckysjQF3pWzH9dQ/EAz4P3CAlqgnP3RsX52OuHq3oxwJuNk\nlGHzXiTnqrQg7CDg8O/yjz9S2GQgH3R3FcRISzW9YR6UHCk3pJ7QyJd4FGSqsZEd\nfIgJjqaCkZeIK3xBQ+6FaBJZQeKFWNB5gHlFxRbz/7tzbWdDdn6VpRN/t9Gg4rOd\ntZil72vPBq6jy5giQwLqNza8X597CmOpTpDpNi7YVBimYKg4",
"certificateDetails":{
"parsable":true,
"subject":{
"name":"CN=POP000270,OU=PEPPOL TEST AP,O=BRZ GmbH,C=AT",
"C":"AT",
"O":"BRZ GmbH",
"OU":"PEPPOL TEST AP",
"CN":"POP000270"
},
"issuer":{
"name":"CN=PEPPOL ACCESS POINT TEST CA - G2,OU=FOR TEST ONLY,O=OpenPEPPOL AISBL,C=BE",
"C":"BE",
"O":"OpenPEPPOL AISBL",
"OU":"FOR TEST ONLY",
"CN":"PEPPOL ACCESS POINT TEST CA - G2"
},
"serial10":38982941322949190188120289136764319632,
"serial16":"1d53d766154bd89f86fad36a305cf790",
"notBefore":"2024-11-13T00:00:00",
"notAfter":"2026-11-03T23:59:59",
"validByDate":true,
"sigAlgName":"SHA256withRSA"
},
"serviceDescription":"BRZ Test AP",
"technicalContactUrl":"support-erb@brz.gv.at",
"technicalInformationUrl":null,
"extension":null
}
],
"extension":null
}
],
"extension":null
},
"queryDateTime":"2025-10-01T14:12:06.315196818Z",
"queryDurationMillis":86
}
To retrieve the Business Card of a participant stored in an SMP.
Note: please see https://github.com/phax/smp-query-webapp if you want to run this in production on-site.
GET
/businesscard/SML-ID/participant-ID
SML-ID is the SML identifier mentioned above.participant-ID is the URL encoded participant identifier to be queried (e.g. iso6523-actorid-upis%3a%3a9915%3atest)
Example URL: /businesscard/digittest/iso6523-actorid-upis%3a%3a9915%3atest
Note: the layout of the BusinessCard JSON is identical to the one used in querying all document types of a participant.
Note: all SMP queries are passed through to the effective SMP server and cause load there.
Example Response:
{
"participant":{
"scheme":"iso6523-actorid-upis",
"value":"9915:test"
},
"entity":[
{
"name":[
{
"name":"Austrian Government"
}
],
"countrycode":"AT",
"geoinfo":"Vienna, Austria",
"website":[
"https://test.erechnung.gv.at"
],
"additionalinfo":"This is the test endpoint for the whole Austrian Government!\r\nIt does not only support the Federal Government but also other external companies.",
"regdate":"2012-01-01"
}
],
"queryDateTime":"2025-10-01T14:15:44.4065939Z",
"queryDurationMillis":580
}
To automatically convert EN 16931 CII D16B documents to EN 16931 UBL 2.1 documents, based on https://github.com/phax/en16931-cii2ubl.
POST
/convert/cii2ubl
simple-response can be used to "only" return the UBL document and no additional detail. Possible values are true and false. Default is false.xml-beautify can be used to format (indent) the resulting UBL document. Possible values are true and false. Default is true.
Note: the request header Content-Type MUST be set to text/xml or application/xml.
Privacy note: uploaded documents are not persisted and stored by this system. The source document is converted and than discarded.
Example curl call to convert the local file "CII_example2.xml":
curl -X POST "https://peppol.helger.com/api/convert/cii2ubl?simple-response=true&xml-beautify=true" --data @CII_example2.xml --header "Content-Type: application/xml"
Example Response (default layout):
{
"conversionDateTime":"2025-10-01T15:51:56.746634761Z",
"parsingDuractionMillis":86,
"parsingErrors":[],
"conversionVersion":"3.0.1",
"conversionBuildTimestamp":"2025-09-19T12:55:25Z",
"conversionDuractionMillis":0,
"coversionErrors":[],
"ubl":"<?xml version=\"1.0\" encoding=\"UTF-8\"?><Invoice xmlns=\"urn:oasis:names:specification:ubl:schema:xsd:Invoice-2\" xmlns:cac=\"urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2\" xmlns:cec=\"urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2\" xmlns:cbc=\"urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2\"><cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID><cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID><cbc:ID>TOSL108</cbc:ID><cbc:IssueDate>2013-06-30</cbc:IssueDate><!-- details omitted for readability --></Invoice>"
}
Example Response (simple response layout):
<?xml version="1.0" encoding="UTF-8"?> <Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cec="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"> <cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID> <cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID> <cbc:ID>TOSL108</cbc:ID> <cbc:IssueDate>2013-06-30</cbc:IssueDate> <!-- details omitted for readability --> </Invoice>
GET
/ppidexistence/SML-ID/participant-ID
SML-ID is the SML identifier mentioned above. Note: autodetect is not supported for this API.participant-ID is the URL encoded participant identifier to be queried (e.g. iso6523-actorid-upis%3a%3a9915%3atest)
Example URL: /ppidexistence/digittest/iso6523-actorid-upis%3a%3a9915%3ahelger
Example Response:
{
"participantID":"iso6523-actorid-upis::9915:helger",
"sml":"digittest",
"smpHostURI":"http://smp.helger.com",
"exists":true,
"queryDateTime":"2025-10-01T14:19:07.763821658Z",
"queryDurationMillis":1
}