SMP i wyszukiwanie uczestnika: jak Peppol przekierowuje dokumenty

Jak Peppol znajduje właściwego odbiorcę przez SML, DNS NAPTR i SMP: krok po kroku, w tym typowe komunikaty błędów.

Service Metadata Publisher (SMP) to katalog adresowy sieci Peppol. Gdy Access Point (AP) wysyła dokument, używa Participant Identifier odbiorcy, aby -- przez Service Metadata Locator (SML) i Domain Name System (DNS) -- ustalić, w którym SMP odbiorca jest zarejestrowany, jaki URL punktu końcowego wywołać i jakie typy dokumentów są obsługiwane. Ten artykuł opisuje łańcuch odkrycia krok po kroku.

Dlaczego SMP?

Peppol jest otwartą siecią: nie istnieje centralna skrzynka pocztowa, która odbiera i dystrybuuje wszystkie dokumenty. Zamiast tego każdy certyfikowany dostawca usług prowadzi własny SMP z metadanymi swoich klientów -- jakie dokumenty mogą odbierać, przez jaki AP i jakimi certyfikatami podpisują. Wysyłający AP musi przed każdym przesłaniem ustalić, dokąd trafić ma dokument, i w tym celu używa SMP odbiorcy.

Specyfikacja SMP jest standardem Organization for the Advancement of Structured Information Standards (OASIS). eConnect figuruje na liście rozwiązań zgodnych z eDelivery SMP Komisji Europejskiej z własną implementacją.

Participant Identifier: adres

Każda organizacja w Peppol ma co najmniej jeden Participant Identifier, zbudowany ze scheme i value:

iso6523-actorid-upis::<scheme>:<value>

Scheme to kod z listy kodów Electronic Address Scheme (EAS) -- rejestru OpenPeppol krajowych i międzynarodowych systemów identyfikacji. Najczęściej używane kody EAS:

EASKrajTyp identyfikatoraPrzykład0106HolandiaNumer izby handlowej (KvK)iso6523-actorid-upis::0106:544415870190HolandiaNumer identyfikacyjny organizacji (OIN, 20 cyfr)iso6523-actorid-upis::0190:000000018200293360009944HolandiaNumer VATiso6523-actorid-upis::9944:NL851306469B010208BelgiaNumer przedsiębiorstwa (KBO)iso6523-actorid-upis::0208:08999653070204NiemcyLeitweg-ID (administracja publiczna)iso6523-actorid-upis::0204:991-01234-560192NorwegiaNumer organizacjiiso6523-actorid-upis::0192:7457073270235Zjednoczone Emiraty ArabskieNumer rejestracji podatkowej (TRN)iso6523-actorid-upis::0235:1001234567000030088MiędzynarodowyGlobal Location Number (GLN, GS1)iso6523-actorid-upis::0088:1548079098355

Pełny przegląd dostępny jest na docs.peppol.eu/edelivery/codelists/ i w ID Peppol i identyfikatory.

Pełny łańcuch odkrycia

Wysyłający AP odpowiada na trzy pytania dla każdego dokumentu:

  1. Gdzie znajduje się SMP odbiorcy? Wyszukiwanie przez SML / DNS NAPTR.
  2. Który punkt końcowy i certyfikat odpowiadają żądanemu typowi dokumentu? Wyszukiwanie w SMP.
  3. Jaki profil Peppol obsługuje odbiorca? Odpowiedź znajduje się w odpowiedzi SMP (BIS Billing V3, NLCIUS, PINT EU, itp.).
Krok 1: Hash Participant Identifier

Participant Identifier jest poddawany hashowaniu MD5 i kodowany w małych literach szesnastkowo. Wartość hash staje się najbardziej lewą etykietą domeny SML, po której następuje scheme Peppol i strefa SML. Dla produkcji:

B-<md5>.iso6523-actorid-upis.edelivery.tech.ec.europa.eu

Środowisko testowe Peppol używa oddzielnej strefy SML. Od marca 2026 dla produkcji i testów publikowane są wyłącznie rekordy NAPTR -- stare rekordy CNAME zostały usunięte.

Krok 2: Wyszukiwanie DNS NAPTR

Wysyłający AP wykonuje zapytanie DNS na powyższej domenie, dla typu rekordu NAPTR (Naming Authority Pointer). NAPTR jest obowiązkowy od 1 lutego 2026. Odpowiedź NAPTR zawiera znacznik usługi (Meta:SMP) i pole regexp wskazujące na URL SMP odbiorcy:

B-<md5>.iso6523-actorid-upis.edelivery.tech.ec.europa.eu
   IN NAPTR 100 10 "U" "Meta:SMP" "!^.*$!https://smp.example.com/!" .

Wynik: AP wie, pod jakim URL SMP zarejestrowany jest odbiorca.

Krok 3: Zapytanie do SMP

Używając URL SMP, AP buduje konkretny URL metadanych dla tego uczestnika:

GET https://smp.example.com/iso6523-actorid-upis%3A%3A0106%3A54441587

SMP zwraca ServiceGroup w formacie XML ze wszystkimi obsługiwanymi typami dokumentów. Na typ dokumentu AP może zażądać ServiceMetadata poprzez drugie żądanie:

GET https://smp.example.com/iso6523-actorid-upis%3A%3A0106%3A54441587/services/<DocumentTypeId>

Odpowiedź zawiera URL punktu końcowego, profil transportu, proces i certyfikat PKI odbierającego AP. Na podstawie tych informacji C2 szyfruje i podpisuje dokument, otwiera połączenie AS4 z C3 pod znalezionym EndpointURI i dostarcza go.

Przykład: od Participant Identifier do trasy AP

Poniższa ilustracja end-to-end pokazuje, jak niderlandzki Participant Identifier (numer KvK) prowadzi do konkretnego URL punktu końcowego:

1. Nadawca chce wysłać fakturę do:
   iso6523-actorid-upis::0106:54441587  (eConnect, EAS 0106 -- KvK)

2. AP nadawcy wykonuje lookup DNS NAPTR:
   B-<md5>.iso6523-actorid-upis.edelivery.tech.ec.europa.eu
   --> URL SMP: https://smp.econnect.eu/

3. AP nadawcy odpytuje SMP:
   GET https://smp.econnect.eu/iso6523-actorid-upis%3A%3A0106%3A54441587
   --> ServiceGroup z m.in. DocumentTypeId dla faktury NLCIUS

4. AP nadawcy odpytuje ServiceMetadata dla NLCIUS:
   GET https://smp.econnect.eu/iso6523-actorid-upis%3A%3A0106%3A54441587/services/<NLCIUS-DocumentTypeId>
   --> EndpointURI: https://ap.econnect.eu/as4
   --> Certificate: <X.509 / cert. PKI>
   --> TransportProfile: peppol-transport-as4-v2_0

5. AP nadawcy tworzy SBDH z metadanymi routingu,
   podpisuje i wysyła przez AS4 + TLS do EndpointURI.
Co zawiera rejestracja SMP?

Przy rejestracji w SMP konfigurowane są capability dla każdej rodziny dokumentów na organizację:

CapabilityTypy dokumentówinvoicesSI-UBL 2.0 (NLCIUS), Peppol BIS Billing V3 (UBL i CII), PINT EUselfbillingBIS Self-Billing V3invoiceResponseBIS Invoice Response 3.0orderOnlyOrder Only 3.3orderAdvancedOrder, Order Change, Order Cancellation 3.3orderResponseOrder Response 3.3pintProfilesNa region: PINT-SG, PINT-A-NZ, PINT-MY, PINT-JP, PINT-AE, PINT-OM, PINT-SKmls / mlrMessage Level Status / Message Level Response

Każda capability ma wartość on, off lub inherited. Pełny zestaw capability określa, jakie typy dokumentów wysyłający AP może znaleźć w SMP -- a tym samym dla czego odbiorca jest faktycznie osiągalny.

Buforowanie i dostępność

Lookup SMP jest wykonywany przy każdym wysyłaniu. Dla skali i niezawodności SMP eConnect stosuje własną warstwę buforowania: lookups pozostają dostępne -- nawet jeśli zewnętrzny SMP jest tymczasowo niedostępny -- ponownie wykorzystując buforowane metadane w okresie ważności. eConnect gwarantuje 99,99% dostępności SMP.

SML a SMP

Dwa podobnie brzmiące terminy, które w praktyce są często mylone:

  • SML (Service Metadata Locator) to centralna strefa DNS (edelivery.tech.ec.europa.eu dla produkcji), w której publikowane są wszystkie Participant Identifiers i która wskazuje właściwy SMP. Istnieje jeden produkcyjny SML i jeden testowy; OpenPeppol przejmuje zarządzanie od Komisji Europejskiej (przejście do końca sierpnia 2026).
  • SMP (Service Metadata Publisher) to katalog indywidualnego dostawcy usług. Każdy SP prowadzi własny SMP dla własnych klientów.

Analogia z DNS: SML to centralna książka telefoniczna, która odsyła do właściwego regionalnego katalogu; SMP to ten katalog z rzeczywistymi danymi.

Migracja między dostawcami usług

Participant Identifier może być zarejestrowany tylko w jednym SMP naraz -- w przeciwnym razie C2 nie wiedziałby, dokąd wysłać dokument. Przy zmianie dostawcy obowiązuje procedura migracji z kluczem migracyjnym: obecny SMP generuje klucz, a nowy SMP używa go do bezproblemowego przejęcia rejestracji. Podczas przejścia organizacja pozostaje osiągalna; identyfikator się nie zmienia, więc partnerzy handlowi niczego nie zauważą.

Peppol Directory i Lookup Service

Oprócz czytelnego maszynowo SMP, istnieją dwa publiczne interfejsy do ręcznych wyszukiwań:

  • Peppol Directory -- directory.peppol.eu: publiczny rejestr uczestników Peppol, z wyszukiwaniem po nazwie organizacji, kraju i Participant ID. Asynchroniczny i nierzetelny do weryfikacji osiągalności: Directory pobiera dane okresowo z SMP, a usługa Directory bywa tymczasowo niedostępna. W efekcie rejestracja lub wy-rejestracja może pojawić się w Directory z opóźnieniem -- lub wcale. Organizacja może więc widnieć w Directory, podczas gdy wyszukiwanie SMP zwraca No valid delivery options / PartyId not found, lub odwrotnie. Nie traktuj Directory jako dowodu, że ktoś może lub nie może odbierać.
  • Peppol Lookup Service -- lookup.peppol.org, od marca 2026: bezpośrednio odpytuje SMP i pokazuje aktualny status publikacji. Przydatny podczas rozwiązywania problemów, gdy Directory i rzeczywista rejestracja są rozsynchronizowane.
Jak sprawdzić, czy ktoś jest osiągalny na Peppol

Aby uzyskać wiarygoodną odpowiedź na pytanie czy ten odbiorca może lub nie może odbierać, należy wykonać prawdziwe wyszukiwanie SMP -- nie polegaj na widoku Directory. Dwa publiczne narzędzia wykonują rzeczywiste wyszukiwanie Peppol (to samo, które wykonuje PSB eConnect):

Jeśli wyszukiwanie powiedzie się w jednym z tych narzędzi, odbiorca jest osiągalny; jeśli się nie powiedzie (PartyId not found / brak opcji dostawy), odbiorca nie jest podłączony dla tego typu dokumentu -- niezależnie od tego, co pokazuje Peppol Directory. Programowo queryRecipientParty PSB daje ten sam, miarodajny wynik.

Pole „additional information" w Peppol Directory

W Peppol Directory pole „additional information" wyświetla nazwę rejestrującego dostawcy usług -- w przypadku rejestracji przez PSB eConnect widnieje tam „eConnect". Są to metadane registrara SMP rejestrującego SP i nie stanowią części konfigurowalnej per uczestnik businessCard. Pola konfigurowalne per uczestnik są obsługiwane przez businessCard.names; pole „additional information" leży poza tym zakresem i w związku z tym nie jest konfigurowalne per uczestnik -- także dla partnerów white-label rejestrujących się przez endpoint PSB eConnect.

Dla klientów, którzy chcą programowo sprawdzić, czy odbiorca jest osiągalny, Peppol Service Bus (PSB) eConnect oferuje endpoint queryRecipientParty, który bezpośrednio odpytuje SMP i wskazuje, przez jaki kanał i w jakim formacie odbiorca jest osiągalny.

Typowe komunikaty błędów
ObjawPrzyczynaRozwiązanieSMP not found / rozwiązanie NAPTR nie powiodło sięParticipant Identifier nie (lub niepoprawnie) zarejestrowany; błędny kod EASSprawdzić rejestrację przez Peppol Directory lub queryRecipientPartyService not foundDocumentTypeId nieobsługiwany przez odbiorcęPotwierdzić z odbiorcą, jakie profile publikuje jego SMPNo valid delivery optionsOdbiorca jest w rejestrze Peppol, ale nie ma aktywnej capability invoices -- patrz sekcja poniżejAlternatywny punkt dostarczenia lub inne ID Peppol -- patrz sekcja poniżejCertificate expired / invalidCertyfikat odbierającego AP wygasłOdbierający AP musi odnowić certyfikatEndpoint not reachableAwaria operacyjna w odbierającym APSkontaktować się z odbiorcą; zbuforowane wyszukiwanie może tymczasowo pomócqueryRecipientParty timeoutSMP odbiorcy nie odpowiadaOdbierający AP lub jego administrator musi zbadać SMP
"No valid delivery options": odbiorca zarejestrowany tylko dla Invoice Response

Odbiorca może być odnajdywalny w Peppol -- wyszukiwanie NAPTR i zapytanie SMP kończą się sukcesem -- a mimo to nie być w stanie otrzymywać faktur. SMP publikuje bowiem dla każdego typu dokumentu oddzielną capability. Odbieranie faktur należy do invoices; zwracanie statusu biznesowego (BIS Invoice Response 3.0) należy do oddzielnej capability invoiceResponse. Są to niezależne rejestracje.

Jeśli odbiorca jest zarejestrowany na swoim ID Peppol wyłącznie dla Invoice Response transaction 3.0 (invoiceResponse ustawione na on, invoices na off), wysyłający AP nie znajduje żadnego punktu końcowego invoices w SMP. Nie istnieje wtedy żadna prawidłowa ścieżka dostarczenia faktury, a platforma eConnect zgłasza No valid delivery options podczas wysyłania. Odbiorca może wysłać Invoice Response przez ten identyfikator, ale sam nie może przez niego odbierać faktur.

Ważne: to nie jest błąd po stronie eConnect ani nadawcy -- jest to dokładne odzwierciedlenie tego, co odbiorca opublikował we własnym SMP.

Dwa rozwiązania:

  1. Alternatywny punkt dostarczenia: poproś klienta, aby skontaktował się z odbiorcą i zapytał, przez jaki kanał (e-mail lub portal dostawcy) można dostarczyć fakturę.
  2. Inne ID Peppol: sprawdź, czy odbiorca ma drugie ID Peppol, na którym typ dokumentu faktury (invoices) jest zarejestrowany. Organizacja może rejestrować wiele identyfikatorów z oddzielnymi capability typów dokumentów na identyfikator.

W razie wątpliwości sprawdź, jakie typy dokumentów publikuje odbiorca za pośrednictwem Peppol Lookup Service lub programowo przez queryRecipientParty.

Często zadawane pytania
Jaka jest różnica między Peppol Directory a Peppol Lookup Service?

Peppol Directory (directory.peppol.eu) to asynchroniczny rejestr, który okresowo pobiera dane z SMP. Może być opóźniony względem rzeczywistego statusu rejestracji i jest zatem nierzetelny do weryfikacji osiągalności. Peppol Lookup Service (lookup.peppol.org) bezpośrednio odpytuje SMP i pokazuje aktualny status. Przy rozwiązywaniu problemów Lookup Service jest miarodajny. Alternatywy, które również odpytują SMP bezpośrednio: test.peppolautoriteit.nl/discover i peppol.helger.com.

Dlaczego otrzymuję 'No valid delivery options', gdy odbiorca jest w Peppol?

Odbiorca może figurować w rejestrze Peppol, ale być zarejestrowany wyłącznie dla Invoice Response (capability invoiceResponse), a nie do odbierania faktur (capability invoices). Nie istnieje wtedy żadna prawidłowa ścieżka dostarczenia faktury. Sprawdź przez queryRecipientParty lub Peppol Lookup Service, jakie capability są aktywne, i skontaktuj się z odbiorcą w sprawie alternatywnego punktu dostarczenia lub innego ID Peppol.

Jak długo trwa, zanim zmiana w SMP stanie się widoczna?

Zmiana w rzeczywistej rejestracji SMP jest skuteczna od następnego przesłania: wysyłający AP za każdym razem odpytuje SMP od nowa. Zewnętrzne, nieautorytatywne widoki, takie jak Peppol Directory (directory.peppol.eu) lub peppolcheck.be, mogą pokazać zmianę później ze względu na własną strategię buforowania i asynchroniczne pobieranie. Należy zauważyć różnicę: narzędzia, które odpytują SMP bezpośrednio -- takie jak test.peppolautoriteit.nl/discover i peppol.helger.com -- zawsze pokazują aktualny status. Dla miarodajnego statusu Peppol Lookup Service lub bezpośrednie zapytanie SMP przez queryRecipientParty jest rozstrzygające.

Czy odbiorca może mieć wiele ID Peppol?

Tak. Organizacja może rejestrować wiele Participant Identifiers -- każdy na innym schemacie EAS (np. KvK i numer VAT). Na identyfikator można skonfigurować własne capability typów dokumentów. Jeśli faktura zostanie odrzucona na jednym ID z No valid delivery options, warto sprawdzić, czy odbiorca ma inne ID Peppol z aktywną capability invoices.


Więcej o ID Peppol i identyfikatorach