Wysyłanie i odbieranie korespondencji ePUAP
Podsumowanie:nAxiom oferuje narzędzia umożliwiające współpracę z ePUAP — Elektroniczną Platformą Usług Administracji Publicznej. Korzystając z tych narzędzi, w aplikacjach nAxiom można wymieniać korespondencję z jednostkami administracji publicznej.
Proces poczty wychodzącej polega na utworzeniu odpowiedniego typu dokumentu XML z załącznikami lub bez, jego podpisaniu (opcjonalnie) i przesłaniu do adresata na odpowiedni adres skrytki.
W tym temacie
- Konfiguracja ePUAP Service
- Przykład pełnej konfiguracji
- Instalacja i deinstalacja usługi ePUAP
- Utworzenie pisma XML
- Podpis pisma
- Wysłanie pisma
- Poczta przychodząca
- Nierozpoznane rodzaje pism
- Rozpoznane rodzaje pism
- Książka adresowa ePUAP
- Dodatek A. Przykład pliku konfiguracyjnego
- Dodatek B. Przykład pełnej konfiguracji
- Dodatek C. Przykładowe pisma ePUAP
Konfiguracja ePUAP Service
W celu uruchomienia integracji z Elektroniczną Skrzynką Podawczą ePUAP należy skonfigurować odpowiednio usługę odpowiedzialną za synchronizację książki adresowej, pobieranie korespondencji oraz akcję wysyłki dokumentów. Ustawienia konfiguracyjne znajdują się w pliku appsettings.json komponentu NAX.Modules.ePUAP.Service.
Przykład pliku konfiguracyjnego, który należy uzupełnić, zamieszczono w dodatku A.
Opis parametrów:
Klucze pogrubione są wymagane.
- AuthUrl: adres do serwisu uwierzytelniającego
- ServiceUrl: adres udostępniania usługi ePUAP
- PublicApiUrl: adres serwisu Public API
- LogResponseXml: flaga zapisu odebranych pism na dysku w formacie XML
- LogsPath: ścieżka dla logów
- AllowedIPs: adresy, z których można łączyć się z usługą ePUAP
-
AddressesConfiguration: konfiguracja synchronizacji książki adresowej; nie jest wymagana; przykładowa konfiguracja:
- RepeatInterval: interwał synchronizacji w milisekundach
- Url: adres pobierania pliku CSV z książką adresową
- TableSchema: schemat tabeli książki adresowej
- TableName: nazwa tabeli książki adresowej
- KeyColumn: klucz główny
- NameColumn: nazwa podmiotu
- RegonColumn: REGON
- StreetColumn: ulica
- PostalCodeColumn: kod pocztowy
- CityColumn: miejscowość
- MailboxAddressColumn: adres skrytki
- MailboxNameColumn: nazwa skrytki
-
IntegrationConfigurations: lista konfiguracji skrytek do integracji
- Active: flaga aktywności konfiguracji
- ValidateSignature: flaga walidacji podpisu pisma (status podpisu, podgląd podpisu)
- EpuapDnsIdentity: identyfikator DNS platformy ePUAP
- PZDnsIdentity: identyfikator DNS platformy Profil Zaufany
- ClientCertificateName: wartość Wystawiony dla z certyfikatu klienta (certyfikat z magazynu certyfikatów maszyny w kontenerze Osobisty)
- EpuapServerCertificateName: wartość Wystawiony dla z certyfikatu serwera ePUAP (certyfikat z magazynu certyfikatów maszyny w kontenerze Zaufane osoby)
- PZServerCertificateName: wartość Wystawiony dla z certyfikatu serwera PZ (certyfikat z magazynu certyfikatów maszyny w kontenerze Zaufane osoby)wartość wystawiony dla certyfikatu serwera PZ (certyfikat umieszczony w certyfikatach maszyny w kontenerze ‘Zaufane osoby’),
- EntityName: nazwa podmiotu publicznego klienta ePUAP
- MailboxName: nazwa skrytki podmiotu publicznego klienta ePUAP
- MailboxAddress: adres skrytki podmiotu publicznego klienta ePUAP
- EpuapPullServiceUrl: adres web serwisu PULL ePUAP do pobierania dokumentów
- EpuapPOBoxServiceUrl: adres web serwisu SKRYTKA ePUAP do wysyłki pism
- TpSigningServiceUrl: adres web serwisu TpSigning5 Profilu Zaufanego do podpisu pism
- FileRepoServiceUrl: adres web serwisu FileRepoService do wysyłania i pobierania załączników pism
-
UnrecognizedDocumentConfiguration: konfiguracja nierozpoznanego typu pisma (tj. pisma, które nie będzie odbierane lub dla którego nie zostanie skonfigurowany rozpoznany typ pisma)
- SaveXmlAttachment: flaga zapisu odebranego pisma jako załącznika w formacie XML
-
BusinessDocumentConfiguration: konfiguracja dokumentu biznesowego i kategorii załączników (opcjonalnie, w razie braku kategorii wszystkie załączniki zostaną zapisane w kategorii domyślnej dokumentu, o ile istnieje)
- DocumentDefinitionId: ID definicji dokumentu biznesowego
- FormDefinitionId: ID definicji formularza
- AttachmentsCategoryId: ID kategorii załączników pobranych z pisma ePUAP
- XmlAttachmentCategoryId: ID kategorii załącznika dla pisma w formacie XML
- XmlPreviewAttachmentCategoryId: ID kategorii załącznika dla podglądu pisma ePUAP w formacie PDF
- SignaturePreviewAttachmentCategoryId: ID kategorii załącznika dla podglądu podpisu pisma ePUAP
-
RequiredFieldsConfiguration: wymagane pola na dane, które muszą zostać zapisane po pobraniu pisma
- CaseId: pole ID sprawy ePUAP, pole wymagane dla ewentualnej odpowiedzi na pismo
- DocumentId: pole ID dokumentu ePUAP
- EntityName: pole nazwy podmiotu, do którego przyszło pismo
- MailboxAddress: pole adresu skrytki, do której przyszło pismo
- MailboxName: pole nazwy skrytki, do której przyszło pismo
-
SignatureValidationFieldsConfiguration: konfiguracja pól dotyczących informacji o podpisie
- DocumentSignatureStatus: pole na status podpisu pisma ePUAP
-
StaticFieldsConfiguration: konfiguracja pól statycznych dostępnych podczas pobierania pisma z ePUAP; te pola, w szczególności pole ResponseMailboxAddress, będą przydatne, jeśli planowane jest odpowiadanie na pisma ePUAP
- SubjectId: pole identyfikatora podmiotu nadawcy
- PersonType: pole typu osoby nadawcy
- FirstName: pole imienia nadawcy
- LastName: pole nazwiska/nazwy nadawcy
- Pesel: pole numeru PESEL nadawcy (osoba fizyczna)
- Nip: pole numeru NIP
- Regon: pole numeru REGON
- SenderUserName: pole loginu nadawcy
- SenderSystemName: pole identyfikatora systemu nadawcy
- DateOfPosting: pole daty nadania (strefa czasowa ZULU)
- ResponseMailboxAddress: pole adresu odpowiedzi
-
RecognizedDocumentsConfigurations: lista konfiguracji rozpoznawanych typów pism
-
RecognitionConfiguration: konfiguracja rozpoznawania pisma XML
- ValuePath: ścieżka do elementu XML, po którym będzie identyfikowane pismo
- Value: wartość jakiej szukamy, aby rozpoznać pismo
- StyleTransformationPath: ścieżka na dysku do pliku transformaty XSL do wygenerowania podglądu dokumentu, brak oznacza próbę pobrania pliku z crd.gov.pl
-
XmlToFormFieldConfiguration: lista konfiguracji mapowania wartości z XML na pola nAxiom
- FormField: pole w nAxiom, gdzie zostanie zapisana wartość
- XmlPath: ścieżka do elementu XML, z której pobrać wartość
-
RecognitionConfiguration: konfiguracja rozpoznawania pisma XML
Przykład XML przesłanego od osoby fizycznej do podmiotu publicznego, w którym używane są dane z sekcji StaticFieldsConfiguration.

Przykład XML w komunikacji pomiędzy podmiotami publicznymi.

Przykład pełnej konfiguracji
Przykład pełnej konfiguracji zawiera Dodatek B.
Nazwy certyfikatów podane w konfiguracji pochodzą z certyfikatów zainstalowanych na bieżącej maszynie (ClientCertificateName, EpuapServerCertificateName, PZServerCertificateName).


Informacje na temat nazwy własnego podmiotu, nazwy skrzynki oraz adresu skrytki można znaleźć na stronie ePUAP po przejściu do Elektronicznej Skrzynki Podawczej swojej instytucji.

Instalacja i deinstalacja usługi ePUAP
Aby zainstalować usługę, przejdź do katalogu serwisu (ścieżka_do_witryny_naxiom/podfolder_usługi_epuap), uruchom terminal PowerShell jako administrator i uruchom polecenia podane poniżej. Pamiętaj, aby dla modułu AUTH w pliku appsettings.json dodać nowego klienta dla usługi ePUAP, który będzie korzystał z PublicAPI.
{
"ClientId": "epuap.client",
"ClientName": "",
"AllowedGrantTypes": "ResourceOwnerPassword",
"SecretKeySha256": "secret",
"AllowedScopes": [ "public-api" ]
}
Polecenie instalacji:
.\NAX.Modules.ePUAP.Service.exe install -client "epuap.client" -secret "secret"
-user "admin" -password "hasło użytkownika"
Polecenie wystartowania usługi:
.\NAX.Modules.ePUAP.Service.exe start
Polecenie zatrzymania usługi:
.\NAX.Modules.ePUAP.Service.exe stop
Odinstalowanie:
.\NAX.Modules.ePUAP.Service.exe uninstall
Utworzenie pisma XML
W celu wygenerowania dokumentu w formacie XML na podstawie danych z formularza należy zdefiniować akcję Tworzenie pliku tekstowego
i zdefiniować w niej szablon dokumentu ePUAP, używając języka Razor.

Wymagane parametry są określone przez wzór pisma. W Dodatku C zamieszczono przykłady następujących pism ogólnych:
- od osoby fizycznej do podmiotu publicznego
- od podmiotu publicznego do osoby fizycznej
- od podmiotu publicznego do podmiotu publicznego
Pierwszy szablon utworzy pismo ogólne do podmiotu publicznego — nadawcą jest osoba fizyczna. Drugi szablon pozwala na utworzenie pisma ogólnego do osoby fizycznej — nadawcą jest podmiot publiczny. Trzeci szablon to pismo ogólne do podmiotu publicznego — nadawcą jest podmiot publiczny.
Te szablony różnią się w węzłach <str:Adresaci> i <str:Nadawcy>. W strukturze XML są to listy; węzeł <meta:Podmiot> może wewnątrz przyjmować definicję dla instytucji (<inst:Instytucja>) lub osoby fizycznej (<oso:Osoba>).
Aby umożliwić dodanie załączników do pisma należy w szablonie XML umieścić węzeł <str:Zalaczniki/> w sekcji <wnio:TrescDokumentu format=”text/xml” kodowanie=”XML”>.
Następnie należy zdefiniować akcję ePUAP utwórz dokument
. Aby móc dodawać załączniki do pisma, należy skonstruować zapytanie, które zwróci ID tych załączników. Zapytanie pomija pliki o tej samej nazwie co pismo, aby w wypadku ponownego generowania pisma do załączników nie został dodany już wygenerowany plik XML oraz podgląd w PDF. Brane pod uwagę są najnowsze wersje załączników.

Należy skonfigurować resztę parametrów akcji, czyli nazwę podmiotu, nazwę i adres skrytki oraz ID poprzednio utworzonej akcji generowania plików.

Przykładowy najprostszy formularz dla poczty wychodzącej może wyglądać jak poniżej; służy on tylko do wypełnienia wymaganych pól.

W ramach testu można utworzyć pismo, które zostanie wysłane na własną skrzynkę. Podaj własny adres jako adres odbiorcy oraz nazwę pliku XML. Można dodać plik załącznika, który zostanie wysłany wraz z pismem.

Uruchomienie akcji powoduje utworzenie dwóch załączników: pliku XML jako właściwego pisma wysyłanego do ePUAP oraz pliku PDF z podglądem tego pisma. Na podglądzie pisma jest informacja o dołączeniu do niego załącznika (plik Zaświadczenie.pdf).

Podpis pisma
Aby zautomatyzować proces obsługi podpisu, w pierwszym kroku należy zdefiniować akcję pobrania podpisanego pisma. Jest to akcja ePUAP — pobierz podpisany dokument
.
Należy zdefiniować zapytanie SQL, które pobierze ID załącznika do pisma. Jest to wymagane, ponieważ pobranie podpisanego pisma nie zwraca nazwy pliku, co mogłoby spowodować problem z aktualizacją odpowiedniego pliku załącznika.

Następnie należy ustawić pozostałe standardowe parametry oraz przekazać URL podpisu.

Następny krok to utworzenie obsługi callback, czyli przekierowania, wykonywanego przez usługę Profil Zaufany po podpisaniu pliku. W celu dodania odpowiedniej akcji, przejdź do menu ADMINISTRACJA
> Lista Callbacks
i dodaj akcję.

W akcjach poprawnej odpowiedzi dodaj akcje pobrania podpisanego dokumentu i otwarcia formularza, aby wrócić na formularz, z którego zainicjowano podpis.
Teraz utwórz akcję typu Inicjowanie przekierowania
, która utworzy URL dla procedury callback.

Pamiętaj, aby do standardowego URL dodać parametr FormId — &FormId={@FormId}. W przeciwnym razie zostanie zwrócony błąd podczas pobierania podpisanego dokumentu.
W SQL użyj instrukcji UPDATE, która zapisze na formularzu parametry OnSuccessUrl oraz OnErrorUrl w celu przekazania w akcji wysyłki dokumentu do podpisu.
Utwórz akcję ePUAP podpisz dokument
; użyj w niej zapytania SQL zwracającego ID dokumentu wysyłanego do podpisu.

Uzupełnij pozostałe parametry konfiguracji.

Parametry z adresami URL określają adresy przekierowania żądania przez usługę Profilu zaufanego w przypadku poprawnego podpisu, błędu lub anulowania żądania. Te parametry są ustawiane przez zapytania, ponieważ w ciągu akcji, które należy wykonać, nie można obecnie zastosować kilkukrotnie akcji Odśwież model
.
W polu Pole na URL podpisu
wskaż pole formularza do zapisu adresu URL, pod który użytkownik musi przejść, aby pismo podpisać.
Po wygenerowaniu takiego URL użytkownik musi przejść pod ten adres w ciągu krótkiego czasu, który obecnie wynosi około 1 minuty.
Po akcji wysyłki pisma w sekwencji akcji można dodać akcję Odśwież formularz
i akcję Otwórz link zewnętrzny
w celu przejścia pod wygenerowany adres URL.

Po podpisaniu pisma w usłudze Profil Zaufany następuje przekierowanie na podany adres callback, który powinien obsłużyć pobranie pisma oraz otworzyć ponownie formularz. Na formularzu jest widoczny adres URL, który służył do podpisu i pobrania pisma.

Po wykonaniu akcji w załącznikach pojawił się nowy plik XML oraz podgląd pisma.

Wysłanie pisma
Aby wysłać pismo należy skonfigurować akcję wysyłki z zapytaniem SQL, które zwróci ID dokumentu XML do wysłania.

Pozostałe parametry to między innymi adres odbiorcy oraz nazwa pola, w którym zostanie zapisany ID dokumentu nadany przez ePUAP.

Poczta przychodząca
Pobieraniem poczty przychodzącej zajmuje się usługa NAX.Modules.ePUAP.Service. Współpracuje ona ze skonfigurowaną skrytką w trybie PULL, co oznacza cykliczne pobieranie dokumentów w interwale nie częstszym niż 15 minut. Po odpytaniu kolejki o liczbę dokumentów w kolejce następuje ich indywidualne pobieranie i zapis w nAxiom z pakietem danych, według konfiguracji pobierania. Tylko w wypadku bezbłędnego dodania pisma w nAxiom następuje potwierdzenie odebrania pisma i pobranie następnego z kolejki. Błędy, które nie zatrzymają pobierania pisma to:
- Pobranie załączników z pisma — ePUAP potrafi zwrócić błąd podczas pobierania załączników (brak uprawnień do pliku), pobranie przez API się już nie powiedzie, jedyna możliwość pobrania to skorzystanie z URL do pliku, który znajduje się w XML lub na podglądzie pisma
- Generowanie podglądu pisma — w wypadku, gdy pismo nie zostało rozpoznane, podejmowana jest próba pobrania pliku XSL służącego do przekształcenia XML do HTML i później PDF, zdarzają się problemy z odpytaniem serwera crd.gov.pl.
Nierozpoznane rodzaje pism
Za obsługę nierozpoznanych pism odpowiada sekcja UnrecognizedDocumentConfiguration.
"UnrecognizedDocumentConfiguration": {
"SaveXmlAttachment": true,
"StaticFieldsConfiguration": {
},
"BusinessDocumentConfiguration": {
"DocumentDefinitionId": 3,
"FormDefinitionId": 3,
"AttachmentsCategoryId": 6,
"XmlAttachmentCategoryId": 1,
"XmlPreviewAttachmentCategoryId": 1,
"SignaturePreviewAttachmentCategoryId": 1
},
"RequiredFieldsConfiguration": {
"CaseId": "EpuapCaseId",
"DocumentId": "EpuapDocumentId",
"EntityName": "EntityName",
"MailboxAddress": "MailboxAddress",
"MailboxName": "MailboxName"
},
"SignatureValidationFieldsConfiguration": {
"DocumentSignatureStatus": "StatusPodpisu"
}
}
Wartości parametrów w powyższym przykładzie:
-
SaveXmlAttachment
: zapis pobranego dokumentu w formacie XML jak załącznik -
DocumentDefinitionId
: definicja dokumentu biznesowego z ID 3 -
FormDefinitionId
: definicja formularza z ID 3 -
AttachmentsCategoryId
: załączniki z pisma zapisane w kategorii z ID 6 -
XmlAttachmentCategoryId
: kategoria załączników dla pliku XML pisma to ID 1 -
XmlPreviewAttachmentCategoryId
: podgląd pisma zapisany w kategorii z ID 1 -
SignaturePreviewAttachmentCategoryId
: podgląd podpisu pisma zapisany w kategorii z ID 1 -
CaseId
: zapisanie ID sprawy w polu formularzaEpuapCaseId
-
DocumentId
: zapisanie ID dokumentu w polu formularzaEpuapDocumentId
-
EntityName
: zapisanie nazwy podmiotu w polu formularzaEntityName
-
MailboxAddress
: zapisanie adresu skrytki nadawcy w polu formularzaMailboxAddress
-
MailboxName
: zapisanie nazwy skrytki nadawcy w polu formularzaMailboxName
-
DocumentSignatureStatus
: zapisanie statusu podpisu w polu formularzaStatusPodpisu
Rozpoznane rodzaje pism
Aby skonfigurować rozpoznawane typy pism należy dodać odpowiednią konfigurację do listy RecognizedDocumentsConfigurations. Przykład:
"RecognizedDocumentsConfigurations": [
{
"RecognitionConfiguration": {
"ValuePath": "/Dokument/OpisDokumentu/Identyfikator/Wartosc",
"Value": "cpi/Pismo ogólne do podmiotu publicznego"
},
"StyleTransformationPath":
"C:\\TFS\\nAxiom\\core\\Modules\\ePUAP\\NAX.Modules.ePUAP.Service\\
bin\\Debug\\styl.xsl",
"SaveXmlAttachment": true,
"StaticFieldsConfiguration": {
},
"BusinessDocumentConfiguration": {
"DocumentDefinitionId": 3,
"FormDefinitionId": 3,
"AttachmentsCategoryId": 6,
"XmlAttachmentCategoryId": 1,
"XmlPreviewAttachmentCategoryId": 1,
"SignaturePreviewAttachmentCategoryId": 1
},
"RequiredFieldsConfiguration": {
"CaseId": "EpuapCaseId",
"DocumentId": "EpuapDocumentId",
"EntityName": "EntityName",
"MailboxAddress": "MailboxAddress",
"MailboxName": "MailboxName"
},
"SignatureValidationFieldsConfiguration": {
"DocumentSignatureStatus": "StatusPodpisu"
},
"XmlToFormFieldConfiguration": [
{
"FormField": "Tytul",
"XmlPath": "/Dokument/TrescDokumentu/Tytul"
},
{
"FormField": "Informacja",
"XmlPath": "/Dokument/TrescDokumentu/Informacje/Informacja"
},
{
"FormField": "RodzajPisma",
"XmlPath": "/Dokument/TrescDokumentu/RodzajWnioskuRozszerzony@rodzaj"
}
]
}
]
Wartości parametrów w powyższym przykładzie:
-
ValuePath
: ścieżka do wartości w pliku XML, która określa rodzaj pisma -
Value
: poszukiwana wartość -
StyleTransformationPath
: ścieżka do pliku XSL transformującego XML do HTML, jeśli plik nie zostanie odnaleziony to nastąpi próba wygenerowania podglądu na podstawie adresu z pliku XML i crd.gov.pl -
SaveXmlAttachment
: zapisz pismo XML do załączników -
DocumentDefinitionId
: definicja dokumentu biznesowego z ID 3 -
FormDefinitionId
: definicja formularza z ID 3 -
AttachmentsCategoryId
: załączniki z pisma zapisane w kategorii z ID 6 -
XmlAttachmentCategoryId
: kategoria załączników dla pliku XML pisma to ID 1 -
XmlPreviewAttachmentCategoryId
: podgląd pisma zapisany w kategorii z ID 1 -
SignaturePreviewAttachmentCategoryId
: podgląd podpisu pisma zapisany w kategorii z ID 1 -
CaseId
: zapisanie ID sprawy w polu formularzaEpuapCaseId
-
DocumentId
: zapisanie ID dokumentu w polu formularzaEpuapDocumentId
-
EntityName
: zapisanie nazwy podmiotu w polu formularzaEntityName
-
MailboxAddress
: zapisanie adresu skrytki nadawcy w polu formularzaMailboxAddress
-
MailboxName
: zapisanie nazwy skrytki nadawcy w polu formularzaMailboxName
-
DocumentSignatureStatus
: zapisane statusu podpisu w polu formularzaStatusPodpisu
-
XmlToFormFieldConfiguration
: mapowanie pól z pisma XML na pola w nAxiom; do polaTytul
trafi wartość z węzła/Dokument/TrescDokumentu/Tytul
, podobnieInformacja
,RodzajPisma
znajduje się w pliku XML w atrybucie węzła dlatego zastosowano zapis @rodzaj
Dane pobrane z pisma, tj. ID pisma, ID sprawy, tytuł, informacja, rodzaj pisma, dane skrytki nadawcy, status podpisu.

Podgląd pisma XML, na którym widać te dane:

Załączniki, w tym pismo XML, jego podgląd, UPP i podgląd podpisu.

Podgląd podpisu:

W przypadku załączników do pisma skonfigurowano zapis w innej kategorii.

Podgląd pliku:

Książka adresowa ePUAP
Usługa pozwala także na skonfigurowanie cyklicznego pobierania aktualnej książki adresowej. Dostępne są jedynie adresy podmiotów publicznych, które wystąpiły o umieszczenie ich w książce adresowej.
Najpierw utwórz tabelę zwykłą dla książki adresowej.

Przykładowa konfiguracja dla środowiska testowego dla powyższej tabeli:
"AddressesConfiguration": {
"RepeatInterval": 86400000,
"Url": "https://int.epuap.gov.pl/LESP/LESP.csv",
"TableSchema": "dbo",
"TableName": "EpuapAddressBook",
"KeyColumn": "Id",
"NameColumn": "Name",
"RegonColumn": "REGON",
"StreetColumn": "Street",
"PostalCodeColumn": "PostalCode",
"CityColumn": "City",
"MailboxAddressColumn": "MailboxAddress",
"MailboxNameColumn": "MailboxName"
}
Tabela jest czyszczona i uzupełniana nowymi danymi. Powodem czyszczenia jest brak parametru, który pozwala na porównywanie nowych i starych wartości w określonym czasie. Adresy skrytek powtarzają się, posiadają niejednokrotnie różnice jedynie w wielkości liter, co wymusza wyszukiwanie w bazie danych z uwzględnieniem tego faktu. Ze względu na duży wolumen danych wymagane jest wyszukiwanie tekstowe, co źle wpływa na wydajność.
Dodatek B. Przykład pełnej konfiguracji
{
"AuthConfiguration": {
"ClientId": "",
"ClientSecret": "",
"User": "",
"Password": ""
},
"AuthUrl": "",
"ServiceUrl": "",
"PublicApiUrl": "",
"LogResponseXml": true,
"LogsPath": "C:\\Logs\\ePUAP",
"AllowedIPs": "127.0.0.1;::1",
"AddressesConfiguration": {
"RepeatInterval": 86400000,
"Url": "https://int.epuap.gov.pl/LESP/LESP.csv",
"TableSchema": "",
"TableName": "",
"KeyColumn": "",
"NameColumn": "",
"RegonColumn": "",
"StreetColumn": "",
"PostalCodeColumn": "",
"CityColumn": "",
"MailboxAddressColumn": "",
"MailboxNameColumn": ""
},
"IntegrationConfigurations": [
{
"Active": true,
"ValidateSignature": true,
"RepeatInterval": 900000,
"EpuapDnsIdentity": "ePUAP-INT-WS-Sign",
"PZDnsIdentity": "PZintWS",
"ClientCertificateName": "",
"EpuapServerCertificateName": "ePUAP-INT-WS-Sign",
"PZServerCertificateName": "PZintWS",
"EntityName": "",
"MailboxName": "",
"MailboxAddress": "",
"EpuapPullServiceUrl":
"https://int.epuap.gov.pl/pk_external_ws/services/pull",
"EpuapPOBoxServiceUrl":
"https://int.epuap.gov.pl/pk_external_ws/services/skrytka",
"TpSigningServiceUrl":
"https://int.pz.gov.pl/ep-services/tpSigning5",
"FileRepoServiceUrl":
"https://int.epuap.gov.pl/repo-ws-ext/FileRepoService",
"RecognizedDocumentsConfigurations": [
{
"RecognitionConfiguration": {
"ValuePath": "/Dokument/OpisDokumentu/Identyfikator/Wartosc",
"Value": "cpi/Pismo ogólne do podmiotu publicznego"
},
"StyleTransformationPath": "",
"SaveXmlAttachment": true,
"StaticFieldsConfiguration": {
"SubjectId": "",
"PersonType": "",
"FirstName": "",
"LastName": "",
"Pesel": "",
"Nip": "",
"Regon": "",
"SenderUserName": "",
"SenderSystemName": "",
"DateOfPosting": "",
"ResponseMailboxAddress": ""
},
"BusinessDocumentConfiguration": {
"DocumentDefinitionId": 0,
"FormDefinitionId": 0,
"AttachmentsCategoryId": 0,
"XmlAttachmentCategoryId": 0,
"XmlPreviewAttachmentCategoryId": 0,
"SignaturePreviewAttachmentCategoryId": 0
},
"RequiredFieldsConfiguration": {
"CaseId": "EpuapCaseId",
"DocumentId": "EpuapDocumentId",
"EntityName": "EntityName",
"MailboxAddress": "MailboxAddress",
"MailboxName": "MailboxName"
},
"SignatureValidationFieldsConfiguration": {
"DocumentSignatureStatus": "StatusPodpisu"
},
"XmlToFormFieldConfiguration": [
{
"FormField": "Tytul",
"XmlPath": "/Dokument/TrescDokumentu/Tytul"
},
{
"FormField": "Informacja",
"XmlPath": "/Dokument/TrescDokumentu/Informacje/Informacja"
},
{
"FormField": "RodzajPisma",
"XmlPath": "/Dokument/TrescDokumentu/RodzajWnioskuRozszerzony@rodzaj"
}
]
}
],
"UnrecognizedDocumentConfiguration": {
"SaveXmlAttachment": true,
"StaticFieldsConfiguration": {
"SubjectId": "",
"PersonType": "",
"FirstName": "",
"LastName": "",
"Pesel": "",
"Nip": "",
"Regon": "",
"SenderUserName": "",
"SenderSystemName": "",
"DateOfPosting": "",
"ResponseMailboxAddress": ""
},
"BusinessDocumentConfiguration": {
"DocumentDefinitionId": 0,
"FormDefinitionId": 0,
"AttachmentsCategoryId": 0,
"XmlAttachmentCategoryId": 0,
"XmlPreviewAttachmentCategoryId": 0,
"SignaturePreviewAttachmentCategoryId": 0
},
"RequiredFieldsConfiguration": {
"CaseId": "EpuapCaseId",
"DocumentId": "EpuapDocumentId",
"EntityName": "EntityName",
"MailboxAddress": "MailboxAddress",
"MailboxName": "MailboxName"
},
"SignatureValidationFieldsConfiguration": {
"DocumentSignatureStatus": "StatusPodpisu"
}
}
}
]
}
Dodatek C. Przykładowe pisma ePUAP
{
"AuthConfiguration": {
"ClientId": "aqE2NV1PExhVqdpVnrQKPg==",
"ClientSecret": "veEzPBSsXgrmcRhztdbWUA==",
"User": "In+1M/aYqS89fEoaoM9Y3A==",
"Password": "2CBgr27KQE2Xbc7WDdcyig=="
},
"AuthUrl": "http://localhost:5000",
"ServiceUrl": "http://localhost:8080",
"PublicApiUrl": "https://localhost:5203",
"LogResponseXml": true,
"LogsPath": "C:\\Logs\\ePUAP",
"AllowedIPs": "127.0.0.1;::1",
"AddressesConfiguration": {
"RepeatInterval": 86400000,
"Url": "https://int.epuap.gov.pl/LESP/LESP.csv",
"TableSchema": "dbo",
"TableName": "EpuapAddressBook",
"KeyColumn": "Id",
"NameColumn": "Name",
"RegonColumn": "REGON",
"StreetColumn": "Street",
"PostalCodeColumn": "PostalCode",
"CityColumn": "City",
"MailboxAddressColumn": "MailboxAddress",
"MailboxNameColumn": "MailboxName"
},
"IntegrationConfigurations": [
{
"Active": true,
"ValidateSignature": true,
"RepeatInterval": 900000,
"EpuapDnsIdentity": "ePUAP-INT-WS-Sign",
"PZDnsIdentity": "PZintWS",
"ClientCertificateName": "195.8.106.78",
"EpuapServerCertificateName": "ePUAP-INT-WS-Sign",
"PZServerCertificateName": "PZintWS",
"EntityName": "ABCdefTestPodPub",
"MailboxName": "Skład_ESP",
"MailboxAddress": "/ABCdefTestPodPub/SkrytkaESP",
"EpuapPullServiceUrl": "https://int.epuap.gov.pl/pk_external_ws/services/pull",
"EpuapPOBoxServiceUrl": "https://int.epuap.gov.pl/pk_external_ws/services/skrytka",
"TpSigningServiceUrl": "https://int.pz.gov.pl/ep-services/tpSigning5",
"FileRepoServiceUrl": "https://int.epuap.gov.pl/repo-ws-ext/FileRepoService",
"RecognizedDocumentsConfigurations": [
{
"RecognitionConfiguration": {
"ValuePath": "/Dokument/OpisDokumentu/Identyfikator/Wartosc",
"Value": "cpi/Pismo ogólne do podmiotu publicznego"
},
"StyleTransformationPath":
"C:\\TFS\\nAxiom\\core\\Modules\\ePUAP\\NAX.Modules.ePUAP.Service\\
bin\\Debug\\styl.xsl",
"SaveXmlAttachment": true,
"StaticFieldsConfiguration": {
},
"BusinessDocumentConfiguration": {
"DocumentDefinitionId": 3,
"FormDefinitionId": 3,
"AttachmentsCategoryId": 6,
"XmlAttachmentCategoryId": 1,
"XmlPreviewAttachmentCategoryId": 1,
"SignaturePreviewAttachmentCategoryId": 1
},
"RequiredFieldsConfiguration": {
"CaseId": "EpuapCaseId",
"DocumentId": "EpuapDocumentId",
"EntityName": "EntityName",
"MailboxAddress": "MailboxAddress",
"MailboxName": "MailboxName"
},
"SignatureValidationFieldsConfiguration": {
"DocumentSignatureStatus": "StatusPodpisu"
},
"XmlToFormFieldConfiguration": [
{
"FormField": "Tytul",
"XmlPath": "/Dokument/TrescDokumentu/Tytul"
},
{
"FormField": "Informacja",
"XmlPath": "/Dokument/TrescDokumentu/Informacje/Informacja"
},
{
"FormField": "RodzajPisma",
"XmlPath": "/Dokument/TrescDokumentu/RodzajWnioskuRozszerzony@rodzaj"
}
]
}
],
"UnrecognizedDocumentConfiguration": {
"SaveXmlAttachment": true,
"StaticFieldsConfiguration": {
},
"BusinessDocumentConfiguration": {
"DocumentDefinitionId": 3,
"FormDefinitionId": 3,
"AttachmentsCategoryId": 6,
"XmlAttachmentCategoryId": 1,
"XmlPreviewAttachmentCategoryId": 1,
"SignaturePreviewAttachmentCategoryId": 1
},
"RequiredFieldsConfiguration": {
"CaseId": "EpuapCaseId",
"DocumentId": "EpuapDocumentId",
"EntityName": "EntityName",
"MailboxAddress": "MailboxAddress",
"MailboxName": "MailboxName"
},
"SignatureValidationFieldsConfiguration": {
"DocumentSignatureStatus": "StatusPodpisu"
}
}
}
]
}
Pismo ogólne od osoby fizycznej do podmiotu
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet type="text/xsl"
href="http://crd.gov.pl/wzor/2013/12/12/1410/styl.xsl"?>
<wnio:Dokument xmlns:wnio="http://crd.gov.pl/wzor/2013/12/12/1410/"
xmlns:adr="http://crd.gov.pl/xml/schematy/adres/2009/11/09/"
xmlns:ev="http://www.w3.org/2001/xml-events"
xmlns:inst="http://crd.gov.pl/xml/schematy/instytucja/2009/11/16/"
xmlns:meta="http://crd.gov.pl/xml/schematy/meta/2009/11/16/"
xmlns:oso="http://crd.gov.pl/xml/schematy/osoba/2009/11/16/"
xmlns:str="http://crd.gov.pl/xml/schematy/struktura/2009/11/16/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://crd.gov.pl/wzor/2013/12/12/1410/
http://crd.gov.pl/wzor/2013/12/12/1410/schemat.xsd">
<wnio:OpisDokumentu>
<str:CID>@Guid.NewGuid().ToString("N")@("@")epuap.gov.pl</str:CID>
<meta:Identyfikator typIdentyfikatora="idFormularza">
<meta:Wartosc>cpi/Pismo ogólne do podmiotu publicznego</meta:Wartosc>
</meta:Identyfikator>
<meta:RodzajDokumentu>
<meta:Kategoria>tekst</meta:Kategoria>
</meta:RodzajDokumentu>
</wnio:OpisDokumentu>
<wnio:DaneDokumentu>
<meta:Data typDaty="stworzony">
<meta:Czas>@DateTime.Now.ToString("yyyy-MM-dd")</meta:Czas>
</meta:Data>
<str:Adresaci>
<meta:Podmiot>
<inst:Instytucja>
<inst:IdInstytucji>
<inst:NIP></inst:NIP>
<inst:REGON></inst:REGON>
</inst:IdInstytucji>
<inst:NazwaInstytucji></inst:NazwaInstytucji>
<adr:Adres>
<adr:KodPocztowy></adr:KodPocztowy>
<adr:Poczta></adr:Poczta>
<adr:Miejscowosc></adr:Miejscowosc>
<adr:Ulica></adr:Ulica>
<adr:Budynek></adr:Budynek>
<adr:Lokal></adr:Lokal>
</adr:Adres>
</inst:Instytucja>
</meta:Podmiot>
</str:Adresaci>
<str:Nadawcy>
<meta:Podmiot>
<oso:Osoba>
<oso:IdOsoby>
<oso:PESEL></oso:PESEL>
<oso:NIP></oso:NIP>
</oso:IdOsoby>
<oso:Imie></oso:Imie>
<oso:Nazwisko></oso:Nazwisko>
<adr:Adres>
<adr:KodPocztowy></adr:KodPocztowy>
<adr:Poczta></adr:Poczta>
<adr:Miejscowosc></adr:Miejscowosc>
<adr:Ulica></adr:Ulica>
<adr:Budynek></adr:Budynek>
<adr:Lokal></adr:Lokal>
</adr:Adres>
<adr:Kontakt>
<adr:Telefon></adr:Telefon>
<adr:Email></adr:Email>
</adr:Kontakt>
</oso:Osoba>
</meta:Podmiot>
</str:Nadawcy>
</wnio:DaneDokumentu>
<wnio:TrescDokumentu format="text/xml" kodowanie="XML">
<wnio:MiejscowoscDokumentu/>
<wnio:Tytul>Podanie o dofinansowanie</wnio:Tytul>
<wnio:RodzajWnioskuRozszerzony jakiInny="inne pismo" rodzaj="podanie"/>
<wnio:Informacje>
<wnio:Informacja>Treść podania @Model.FormContext.EntityName</wnio:Informacja>
</wnio:Informacje>
<wnio:Oswiadczenia>
<wnio:Oswiadczenie/>
</wnio:Oswiadczenia>
<wnio:DoWiadomosci/>
<str:Zalaczniki/>
</wnio:TrescDokumentu>
</wnio:Dokument>
Pismo ogólne od podmiotu do osoby fizycznej
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="http://crd.gov.pl/wzor/2013/12/12/1410/styl.xsl"?>
<wnio:Dokument xmlns:wnio="http://crd.gov.pl/wzor/2013/12/12/1410/"
xmlns:adr="http://crd.gov.pl/xml/schematy/adres/2009/11/09/"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:ev="http://www.w3.org/2001/xml-events"
xmlns:inst="http://crd.gov.pl/xml/schematy/instytucja/2009/11/16/"
xmlns:meta="http://crd.gov.pl/xml/schematy/meta/2009/11/16/"
xmlns:oso="http://crd.gov.pl/xml/schematy/osoba/2009/11/16/"
xmlns:str="http://crd.gov.pl/xml/schematy/struktura/2009/11/16/"
xmlns:xades="http://uri.etsi.org/01903/v1.3.2#"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://crd.gov.pl/wzor/2013/12/12/1410/
http://crd.gov.pl/wzor/2013/12/12/1410/schemat.xsd">
<wnio:OpisDokumentu>
<str:CID>@Guid.NewGuid().ToString("N")@("@")epuap.gov.pl</str:CID>
<meta:Identyfikator typIdentyfikatora="idFormularza">
<meta:Wartosc>cpi/Pismo ogólne do podmiotu publicznego</meta:Wartosc>
</meta:Identyfikator>
</wnio:OpisDokumentu>
<wnio:DaneDokumentu>
<meta:Data typDaty="stworzony">
<meta:Czas>@DateTime.Now.ToString("yyyy-MM-dd")</meta:Czas>
</meta:Data>
<str:Adresaci>
<meta:Podmiot>
<oso:Osoba>
<oso:IdOsoby>
<oso:PESEL></oso:PESEL>
<oso:NIP></oso:NIP>
</oso:IdOsoby>
<oso:Imie></oso:Imie>
<oso:Nazwisko></oso:Nazwisko>
<adr:Adres>
<adr:KodPocztowy></adr:KodPocztowy>
<adr:Poczta></adr:Poczta>
<adr:Miejscowosc></adr:Miejscowosc>
<adr:Ulica></adr:Ulica>
<adr:Budynek></adr:Budynek>
<adr:Lokal></adr:Lokal>
</adr:Adres>
<adr:Kontakt>
<adr:Telefon></adr:Telefon>
<adr:Email></adr:Email>
</adr:Kontakt>
</oso:Osoba>
</meta:Podmiot>
</str:Adresaci>
<str:Nadawcy>
<meta:Podmiot>
<inst:Instytucja>
<inst:IdInstytucji>
<inst:NIP></inst:NIP>
<inst:REGON></inst:REGON>
</inst:IdInstytucji>
<inst:NazwaInstytucji></inst:NazwaInstytucji>
<adr:Adres>
<adr:KodPocztowy></adr:KodPocztowy>
<adr:Poczta></adr:Poczta>
<adr:Miejscowosc></adr:Miejscowosc>
<adr:Ulica></adr:Ulica>
<adr:Budynek></adr:Budynek>
<adr:Lokal></adr:Lokal>
</adr:Adres>
</inst:Instytucja>
</meta:Podmiot>
</str:Nadawcy>
</wnio:DaneDokumentu>
<wnio:TrescDokumentu format="text/xml" kodowanie="XML">
<wnio:MiejscowoscDokumentu></wnio:MiejscowoscDokumentu>
<wnio:Tytul></wnio:Tytul>
<wnio:RodzajWnioskuRozszerzony jakiInny="" rodzaj="wniosek"/>
<wnio:Informacje>
<wnio:Informacja></wnio:Informacja>
</wnio:Informacje>
<str:Zalaczniki/>
</wnio:TrescDokumentu>
</wnio:Dokument>
Pismo ogólne od podmiotu do podmiotu
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml-stylesheet type="text/xsl" href="http://crd.gov.pl/wzor/2013/12/12/1410/styl.xsl"?><wnio:Dokument xmlns:wnio="http://crd.gov.pl/wzor/2013/12/12/1410/" xmlns:adr="http://crd.gov.pl/xml/schematy/adres/2009/11/09/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:inst="http://crd.gov.pl/xml/schematy/instytucja/2009/11/16/" xmlns:meta="http://crd.gov.pl/xml/schematy/meta/2009/11/16/" xmlns:oso="http://crd.gov.pl/xml/schematy/osoba/2009/11/16/" xmlns:str="http://crd.gov.pl/xml/schematy/struktura/2009/11/16/" xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://crd.gov.pl/wzor/2013/12/12/1410/ http://crd.gov.pl/wzor/2013/12/12/1410/schemat.xsd">
<wnio:OpisDokumentu>
<str:CID>@Guid.NewGuid().ToString("N")@("@")epuap.gov.pl</str:CID>
<meta:Identyfikator typIdentyfikatora="idFormularza">
<meta:Wartosc>cpi/Pismo ogólne do podmiotu publicznego</meta:Wartosc>
</meta:Identyfikator>
</wnio:OpisDokumentu>
<wnio:DaneDokumentu>
<meta:Data typDaty="stworzony">
<meta:Czas>@DateTime.Now.ToString("yyyy-MM-dd")</meta:Czas>
</meta:Data>
<str:Adresaci>
<meta:Podmiot>
<inst:Instytucja>
<inst:IdInstytucji>
<inst:NIP></inst:NIP>
<inst:REGON></inst:REGON>
</inst:IdInstytucji>
<inst:NazwaInstytucji></inst:NazwaInstytucji>
<adr:Adres>
<adr:KodPocztowy></adr:KodPocztowy>
<adr:Poczta></adr:Poczta>
<adr:Miejscowosc></adr:Miejscowosc>
<adr:Ulica></adr:Ulica>
<adr:Budynek></adr:Budynek>
<adr:Lokal></adr:Lokal>
</adr:Adres>
</inst:Instytucja>
</meta:Podmiot>
</str:Adresaci>
<str:Nadawcy>
<meta:Podmiot>
<inst:Instytucja>
<inst:IdInstytucji>
<inst:NIP></inst:NIP>
<inst:REGON></inst:REGON>
</inst:IdInstytucji>
<inst:NazwaInstytucji></inst:NazwaInstytucji>
<adr:Adres>
<adr:KodPocztowy></adr:KodPocztowy>
<adr:Poczta></adr:Poczta>
<adr:Miejscowosc></adr:Miejscowosc>
<adr:Ulica></adr:Ulica>
<adr:Budynek></adr:Budynek>
<adr:Lokal></adr:Lokal>
</adr:Adres>
</inst:Instytucja>
</meta:Podmiot>
</str:Nadawcy>
</wnio:DaneDokumentu>
<wnio:TrescDokumentu format="text/xml" kodowanie="XML">
<wnio:MiejscowoscDokumentu></wnio:MiejscowoscDokumentu>
<wnio:Tytul></wnio:Tytul>
<wnio:RodzajWnioskuRozszerzony jakiInny="" rodzaj="wniosek"/>
<wnio:Informacje>
<wnio:Informacja></wnio:Informacja>
</wnio:Informacje>
<str:Zalaczniki/>
</wnio:TrescDokumentu>
</wnio:Dokument>