Co połączysz przez API?
Jeden kontrakt opisuje dane i operacje aplikacji. Integracja korzysta z uprawnień organizacji oraz tych samych zasad walidacji co panel.
Katalog i zestawy
Pobieranie opakowań, identyfikatorów, parametrów i zestawów potrzebnych przy realizacji zamówień.
Dokumenty i dowody
Przesyłanie plików, obsługa wersji, statusów i powiązań z kartoteką opakowania.
Zużycie i raportowanie
Zapis przepływów materiałów i przygotowanie danych do zestawień organizacji.
Katalog dostępny dla sklepu, ERP i WMS
Integracja powinna wskazywać te same opakowania co użytkownik panelu. Publiczne identyfikatory oraz kody własne pomagają połączyć kartotekę z indeksem magazynowym. Materiał, masa, wymiary i jednostka zużycia nadają ilościom właściwy kontekst. Dzięki temu odczyt katalogu można wykorzystać w panelu sklepu, aplikacji pakowacza lub systemie zakupowym.
- Opakowania i ich składniki
- Zestawy, jednostki i przeliczenia
- Słowniki wspólne z aplikacją
Od pobrania katalogu do zapisu wykorzystania
Typowy proces obejmuje wybór organizacji, pobranie opakowań lub zestawu oraz zapis faktycznego zużycia z referencją zamówienia. Integrator powinien obsłużyć dzielenie przesyłek i rozróżniać rezerwację materiałów od ich wykorzystania. Po błędzie sieci nie należy tworzyć nowego rozchodu w ciemno: operacje opisane w kontrakcie korzystają z klucza idempotencji, aby bezpiecznie ponowić to samo żądanie.
- Stabilna referencja zamówienia i paczki
- Kontrola ilości oraz jednostek
- Obsługa ponowień i wyników operacji
OpenAPI i Swagger dla zespołu wdrożeniowego
Dokumentacja Swagger jest publiczna i dostępna poniżej, bez konta i bez logowania. Przeglądaj metody, schematy danych, wymagane uprawnienia oraz odpowiedzi błędów. Pobierz kontrakt OpenAPI 3.1 w języku polskim lub angielskim i wykorzystaj go do przygotowania klienta integracji. Gdy otrzymasz klucz API, możesz wykonywać autoryzowane żądania bez sesji w panelu.
- Publiczny Swagger i plik OpenAPI w PL i EN
- Schematy żądań, odpowiedzi, filtrów i paginacji
- Uwierzytelnianie Authorization: Bearer oraz kontrola rewizji
Dostęp do danych pozostaje pod kontrolą
Klucz API jest przypisany do użytkownika i organizacji. Określasz zakres, termin ważności lub dostęp bezterminowy, a także dopuszczone adresy IP. Cofnięcie klucza pozwala zatrzymać połączenie. Sekret powinien pozostawać po stronie serwera integracji, nie w kodzie strony sklepu dostępnej klientom.
- Oddzielny klucz dla konkretnego połączenia
- Zakres odczytu i zapisu dopasowany do procesu
- Reakcja na cofnięty dostęp, limit żądań i błędy walidacji
Dokumentacja Swagger
Publiczna dokumentacja dla integratorów — przeglądaj metody i schematy oraz pobierz kontrakt bez logowania. Wywołania API wymagają klucza Bearer; sesja w panelu nie jest potrzebna.
1. Utwórz klucz integracji
Uprawniona osoba tworzy klucz w Administracja → Organizacje → Klucze API. Wybiera organizację, zakresy dostępu, ważność i ewentualne ograniczenia IP. Przechowuj klucz po stronie serwera integracji.
2. Pobierz organizację
Wyślij GET /api/v1/organizations z nagłówkiem Authorization: Bearer. Otrzymany UUID organizacji podstaw jako organizationId w kolejnych wywołaniach katalogu, zestawów i pozostałych zasobów.
3. Połącz procesy
Wybierz operację poniżej i sprawdź wymagane zakresy, pola oraz odpowiedzi. Obsłuż paginację, błędy i limity. Przy ponowieniu zapisu wymagającego Idempotency-Key użyj tego samego klucza i tej samej treści.
Pierwsze wywołanie API
curl 'https://ppwrlink.pl/api/v1/organizations' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Accept: application/json' \
-H 'X-Locale: pl'
Przewodnik integratora — wybierz swój proces
Poniższe ścieżki są względne wobec /api/v1/organizations/{organizationId}, chyba że wskazano inaczej. Szczegółowe pola i uprawnienia znajdziesz przy każdej metodzie Swaggera.
Pobierz przewodnik integratora
Pakowanie zamówień i magazyn
Katalog + dostępny zapas → konfiguracja zestawu → rezerwacja → zużycie albo zwolnienie. Alternatywnie zapisz zużycie zestawu bez rezerwacji lub jawne linie packing-consumptions. Wybierz jedną ścieżkę dla paczki.
GET /catalog-itemsGET /catalog-items/{catalogItemId}/inventoryGET /packaging-systems/{recordId}/configurationPOST /packaging-systems/{recordId}/reservationsPOST /packing-reservations/{recordId}/consumeGET /packaging-systems/{systemId}/usages
Pliki, dowody i powiązania
Upload → status wersji → przegląd pliku → analiza/propozycje → decyzja faktu → powiązanie dowodu. Dokument, wersja i fakt mają różne UUID oraz niezależne statusy.
POST /documentsGET /document-versions/{recordId}POST /document-versions/{recordId}/decisionPOST /document-versions/{recordId}/analyzeGET /evidence-proposals?item={catalogItemId}POST /evidence-proposals/{proposalId}/decision
Importy i arkusze
Pobierz szablon tam, gdzie dostępny → prześlij plik → poczekaj na podgląd → sprawdź wiersze → apply → odczytaj status i raport błędów. Sam upload nie zatwierdza zmian.
POST /importsGET /imports/{recordId}GET /imports/{importId}/rowsPOST /imports/{recordId}/applyGET /imports/{recordId}/result.csv
Paszporty i dostęp odbiorców
Dane/dowody → szkic → publikacja → grant odbiorcy. Nowa wersja wymaga osobnego dostępu. Subskrypcje i aktualizacje dotyczą użytkownika klucza; obserwowanie nie oznacza adopcji danych.
POST /passportsPOST /passports/{recordId}/publishPOST /passports/{recordId}/sharesGET /sharing-grantsPOST /sharing-grants/{recordId}/revoke
Raporty, ROP, BDO i recyklat
Eksport katalogu/ocen/przepływów działa w kolejce. ROP i odpady: nagłówek → pozycje → przegląd → eksport. BDO: źródła → kwalifikacja → snapshot → eksport. Żadna z tych ścieżek nie składa automatycznie deklaracji do urzędu.
POST /reportsGET /reports/{recordId}GET /reports/{recordId}/download
Współczynniki i ślad materiałów
Odczytaj źródła → przygotuj współczynniki → wskaż opakowanie/zestaw i ewentualną historyczną podstawę → oblicz → odczytaj snapshot. Wynik nie obejmuje automatycznie całego cyklu życia.
GET /carbon-factors/referencePOST /carbon-factorsPOST /carbon-calculationsGET /carbon-calculations/{recordId}
Katalog i struktura opakowań
Kolejność: kontrahenci i opcjonalne foldery/rodziny → katalog → części i rynki. Historia danych służy później do odtwarzania podstaw operacji.
GET /dictionariesPOST /partiesPOST /catalog-itemsPOST /catalog-items/{catalogItemId}/componentsPUT /catalog-items/{catalogItemId}/marketsGET /catalog-items/{catalogItemId}/data-versions
Ruchy fizyczne i przepływy raportowe
supply-events prowadzi zdarzenia i bilans. flows służy danym raportowym. Ruch może już tworzyć powiązany przepływ: nie wysyłaj obu dla tego samego faktu gospodarczego.
POST /catalog-items/{catalogItemId}/supply-eventsGET /catalog-items/{catalogItemId}/supply-summaryGET /catalog-items/{catalogItemId}/inventoryGET /flows
Współpraca z dostawcami i braki
Utwórz prośbę → sprawdź pozycje → wyślij e-mail → odbierz pliki → oceń odpowiedzi. Dostawca korzysta z publicznego linku, integrator z klucza organizacji.
GET /issuesPOST /supplier-requestsGET /supplier-requests/{requestId}/linesPOST /supplier-requests/{recordId}/sendPOST /supplier-requests/{recordId}/lines/{lineId}/review
Oceny i dokumentacja techniczna PPWR
Ustal opakowanie, rynek i rolę; przygotuj zatwierdzone źródła. Twórz tylko rejestry dotyczące danego zastosowania. Wpis, przegląd i wynik reguł to różne etapy. Dossier poprzedza deklarację UE.
GET /catalog-items/{catalogItemId}/marketsPOST /assessmentsGET /assessments/{recordId}POST /assessments/{recordId}/reviewGET /catalog-items/{catalogItemId}/ppwr-summary
Ponowne użycie i egzemplarze zwrotne
System obiegu → dokumentacja i potwierdzenia rynku → jednostki → zdarzenia obrotu/przegląd → agregacje i okresowe cele. System obiegu nie jest zestawem pakowym.
POST /ppwr/reuse-systemsPOST /catalog-items/{catalogItemId}/ppwr/reuse-unitsGET /ppwr/reuse-statistics
Kaucje, gastronomia i informacje
Specjalistyczne rejestry dokumentacyjne. Kaucje opisują opakowanie i udział w systemie, bez obsługi pieniędzy; HoReCa i informacje odbiorców przechowują oceny i dowody.
POST /ppwr/deposit-schemesGET /ppwr/deposit-schemes/{recordId}POST /ppwr/deposit-schemes/{recordId}/review
Sprawy, złożenia i audyt
Zarejestruj żądanie/sprawę → dodaj odpowiedź lub zdarzenia i dowody doręczenia → przeprowadź przegląd tam, gdzie dostępny. Złożenia zewnętrzne dokumentują działania wykonane poza aplikacją.
POST /ppwr/authority-requestsGET /ppwr/authority-requests/{recordId}GET /audit-log
Dossier i deklaracja UE
Dossier porządkuje dokumentację techniczną opakowania. Jego zatwierdzony zapis może być podstawą deklaracji UE; plik PDF jest generowany osobną operacją. Rejestr deklaracji UE powiązanych z dossier konkretnego opakowania, treścią, podpisem i dowodem. Utworzenie rekordu nie podpisuje dokumentu za producenta.
POST /catalog-items/{catalogItemId}/ppwr/conformity-dossiersPOST /catalog-items/{catalogItemId}/ppwr/conformity-dossiers/{recordId}/reviewPOST /catalog-items/{catalogItemId}/ppwr/eu-declarationsPOST /catalog-items/{catalogItemId}/ppwr/eu-declarations/{recordId}/reviewPOST /catalog-items/{catalogItemId}/generated-documents
Sprawozdanie ROP
Roczne sprawozdania ROP z pozycjami i przeglądem. Eksport wykorzystuje zapisany wynik; nie oznacza złożenia w krajowym portalu.
POST /ppwr/epr-reportsPOST /ppwr/epr-reports/{parentId}/linesGET /ppwr/epr-reports/{parentId}/linesPOST /ppwr/epr-reports/{recordId}/reviewGET /ppwr/epr-reports/{recordId}/export
Dane i eksport BDO
Przygotowanie danych opakowaniowych do raportu BDO: źródła, klasyfikacja, snapshot i eksport. API nie składa automatycznie rocznego sprawozdania w BDO ani nie opłaca zobowiązania.
GET /bdo-reports/sources?year=2025POST /bdo-reports/classificationsPOST /bdo-reportsGET /bdo-reports/{recordId}GET /bdo-reports/{recordId}/download?format=xlsx
Odbieranie webhooków
Endpoint HTTPS, zdarzenia i sekret konfiguruje uprawniona osoba w Administracja → Integracje. Odbiorca sprawdza X-PPWR-Signature w formacie t=TIMESTAMP,v1=HEX: HMAC-SHA256 z tekstu timestamp + kropka + surowe body, kluczem jest cały sekret whsec_… (bez dekodowania). Porównuj podpis w stałym czasie i dopuszczaj odchylenie czasu do 300 sekund. Trwale deduplikuj po id zdarzenia z body, sprawdź schema_version i organization_id, a dopiero po zapisie do własnej kolejki odpowiedz 2xx. Kolejność nie jest gwarantowana. Ponowienia zachowują id zdarzenia i body, ale mają świeży podpis. Dla zmiany zasobu odczytaj aktualny stan z API; webhook nie zawiera pełnych danych dokumentu. Schemat body i katalog typów zdarzeń są w sekcji Webhooks kontraktu.
Aby wykonać żądanie, wybierz Authorize i podaj klucz API. „Try it out” pracuje na rzeczywistych danych organizacji — operacje zapisu wprowadzają zmiany. Klucz nie jest zapamiętywany po odświeżeniu strony.
Warto wiedzieć przed rozpoczęciem
Odpowiedzi na pytania o codzienną pracę z platformą.
Czy dokumentacja API jest publiczna?
Tak. Swagger i kontrakt OpenAPI 3.1 są dostępne bez logowania na tej stronie. Możesz też otworzyć ppwrlink.pl/api/documentation lub pobrać ppwrlink.pl/api/openapi.json. Przeglądanie nie wymaga klucza; odczyt i zapis danych organizacji wymagają ważnego klucza API i odpowiednich uprawnień.
Czy przez API można połączyć własny system?
Tak. Własna aplikacja może korzystać z udokumentowanych operacji REST, jeżeli ma dostęp sieciowy, ważny klucz i wymagane uprawnienia.
Czy API zatwierdza zgodność opakowania automatycznie?
API udostępnia dane i procesy ocen. Zapis informacji lub przesłanie dokumentu nie zastępuje wymaganych dowodów ani decyzji osoby uprawnionej.
Czy integracja wymaga zalogowania do panelu PPWR Link?
Nie. System zewnętrzny uwierzytelnia żądania nagłówkiem Authorization: Bearer z kluczem utworzonym przez uprawnioną osobę w administracji. Klucz ma określone zakresy dostępu, ważność i opcjonalne ograniczenia IP. Integracja nie korzysta z hasła użytkownika ani sesji przeglądarki.
Zaplanuj integrację z Twoim systemem
Opisz system źródłowy i dane, które mają przepływać. Ustalimy operacje API oraz sposób powiązania indeksów i zamówień.
- 1Poznamy sposób pracy Twojej firmy.
- 2Pokażemy odpowiednie funkcje na konkretnym przykładzie.
- 3Omówimy dane do importu i zakres wdrożenia.
Dziękujemy za wiadomość!
Zapytanie zostało zapisane. Odpowiedź otrzymasz na podany adres e-mail.