Przejdź do treści

Typy powiadomień

GET /allee/notifications/types

wzór Amazon SP-APIallee:api:notificationslimit: read

Typy, opisy, wymagane zakresy i format podpisu.

Zgodność: wzorowana na Amazon Selling Partner API — Notifications — typy.
Uprawnienie: zakres allee:api:notifications.
Grupa limitu: read.

Odpowiedzi

200 Typy. · NotificationTypeList
notificationTypes array<object> zawsze
Pola obiektu
notificationType string zawsze
description string zawsze
requiredScopes array<string> zawsze
signature object zawsze
Pola obiektu
header string zawsze
Wartości: Allee-Signature
format string zawsze
toleranceSeconds integer zawsze

Błędy

HTTPKodZnaczenie
401invalid_tokenBrak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate).
403ACCOUNT_INACTIVEKonto sprzedawcy jest nieaktywne.
403AccessDeniedBrak zakresu albo zasób innego sprzedawcy.
403KEY_QUARANTINEDKwarantanna: działa tylko odczyt (wykryto nietypowe użycie).
403KEY_SUSPENDEDKlucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę).
429TOO_MANY_REQUESTSPrzekroczony limit (minutowy, grupy operacji albo IP).
500INTERNAL_ERRORBłąd serwera allee.
503NOT_DEPLOYEDFunkcja jeszcze nie uruchomiona (np. sandbox, wsady).
Przykład
curl -sS -X GET "${ALLEE_API_URL:-https://api.allee.pl}/allee/notifications/types" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.public.v1+json" \
  -w '\nHTTP %{http_code}\n'
Odpowiedź (środowisko testowe)
HTTP 200 application/vnd.allegro.public.v1+json
{
  "notificationTypes": [
    {
      "notificationType": "ORDER_CHANGE",
      "description": "Zmiana zamówienia: nowe zamówienie, realizacja, płatność, przesyłka",
      "requiredScopes": [
        "allee:api:notifications",
        "allegro:api:orders:read"
      ]
    },
    {
      "notificationType": "OFFER_STATUS_CHANGE",
      "description": "Zmiana statusu oferty: aktywacja, zakończenie",
      "requiredScopes": [
        "allee:api:notifications",
        "allegro:api:sale:offers:read"
      ]
    },
    {
      "notificationType": "OFFER_ISSUES_CHANGE",
      "description": "Nowe problemy oferty: nieudane zdjęcia, zakończenie przez moderację",
      "requiredScopes": [
        "allee:api:notifications",
        "allegro:api:sale:offers:read"
      ]
    },
    {
      "notificationType": "MESSAGE_RECEIVED",
      "description": "Nowa wiadomość od kupującego",
      "requiredScopes": [
        "allee:api:notifications",
        "allegro:api:messaging:read"
      ]
    },
    {
      "notificationType": "RETURN_CHANGE",
      "description": "Zwrot: zgłoszenie i każda zmiana statusu",
      "requiredScopes": [
        "allee:api:notifications",
        "allegro:api:orders:read"
      ]
    },
    {
      "notificationType": "ISSUE_CHANGE",
      "description": "Reklamacja lub dyskusja: otwarcie, termin, zamknięcie",
      "requiredScopes": [
        "allee:api:notifications",
        "allegro:api:disputes:read"
      ]
    },
    {
      "notificationType": "FEED_PROCESSING_FINISHED",
      "description": "Wsad ofert przetworzony",
      "requiredScopes": [
        "allee:api:notifications",
        "allegro:api:sale:offers:write"
      ]
    },
    {
      "notificationType": "REPORT_PROCESSING_FINISHED",
      "description": "Raport gotowy do pobrania",
      "requiredScopes": [
        "allee:api:notifications",
        "allee:api:reports"
      ]
    },
    {
      "notificationType": "API_KEY_SECURITY_EVENT",
      "description": "Zdarzenie bezpieczeństwa klucza lub aplikacji (np. kwarantanna, nowa sieć)",
      "requiredScopes": [
        "allee:api:notifications"
      ]
    },
    {
      "notificationType": "OFFER_NOTICE_RECEIVED",
      "description": "Zgłoszenie nielegalnej treści dotyczące oferty lub sklepu (DSA art. 16) — Z3, includes/dsa.php",
      "requiredScopes": [
        "allee:api:notifications",
        "allegro:api:sale:offers:read"
      ]
    },
    {
      "notificationType": "OFFER_RESTRICTED",
      "description": "Decyzja allee wobec oferty lub konta z uzasadnieniem (DSA art. 17) — Z3, includes/dsa.php",
      "requiredScopes": [
        "allee:api:notifications",
        "allegro:api:sale:offers:read"
      ]
    },
    {
      "notificationType": "SELLER_COMPLIANCE_CHANGED",
      "description": "Zmiana zgodności sprzedawcy: status, braki danych, oświadczenia, blokady (Z1, includes/sp/zgodnosc.php)",
      "requiredScopes": [
        "allee:api:notifications",
        "allegro:api:profile:read"
      ]
    }
  ],
  "signature": {
    "header": "Allee-Signature",
    "format": "t=<unix>,v1=<hex HMAC-SHA256(secret, t + \".\" + body)>",
    "toleranceSeconds": 300
  }
}

Nowa destynacja (adres webhooka)

POST /allee/notifications/destinations

wzór Amazon SP-APIallee:api:notificationslimit: write

Adres https Twojego serwera. Przy zakładaniu wysyłamy DESTINATION_VERIFICATION z payload.challenge — odpowiedz 2xx i {"challenge": "…"}. Adres: port 443, publiczny IP, bez przekierowań (ochrona SSRF).

Odpowiedź zawiera secret (allee_whsec_…) tylko raz — zapisz go; służy do sprawdzania podpisu Allee-Signature.

Zgodność: wzorowana na Amazon Selling Partner API — Notifications — createDestination.
Uprawnienie: zakres allee:api:notifications.
Grupa limitu: write.

Nagłówki

Idempotency-Key string

Ochrona przed podwójnym wykonaniem (jak Stripe/Amazon): powtórzony POST z tym samym kluczem i tą samą treścią w ciągu 24 h zwraca zapisaną odpowiedź z nagłówkiem Idempotent-Replayed: true i niczego nie wykonuje drugi raz. Inna treść → 422 IDEMPOTENCY_KEY_REUSED; żądanie jeszcze trwa → 409 IDEMPOTENCY_KEY_IN_USE. 1–100 znaków ASCII (np. UUID).

Treść żądania application/vnd.allegro.public.v1+json

url string · uri wymagane

Adres https Twojego serwera (port 443, publiczny IP, bez przekierowań).

name string

Nazwa (do 100 znaków).

resourceSpecification object

Alternatywnie kształt Amazona.

Pola obiektu
url string wymagane

Odpowiedzi

201 Utworzono. · DestinationCreated
destinationId string · uuid zawsze
name string zawsze
url string zawsze
status string zawsze
Wartości: ACTIVE, DISABLED
disabledReason string · null zawsze
secretLast4 string zawsze

Ostatnie 4 znaki sekretu podpisu.

previousSecretExpiresAt string · date-time · null zawsze

Do kiedy podpisujemy też starym sekretem (po rotacji).

verifiedAt string · date-time · null zawsze
createdAt string · date-time zawsze
lastSuccessAt string · date-time · null zawsze
lastFailureAt string · date-time · null zawsze
consecutiveFailures integer zawsze
subscriptions array<string> zawsze

Typy subskrybowane na tę destynację.

application string zawsze

API albo PANEL.

applicationName string · null
secret string · null zawsze

Sekret podpisu allee_whsec_… — pokazany TYLKO RAZ (w powtórce z Idempotency-Key: null).

allee object
Pola obiektu
secretRedacted boolean zawsze

Błędy

HTTPKodZnaczenie
401invalid_tokenBrak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate).
403ACCOUNT_INACTIVEKonto sprzedawcy jest nieaktywne.
403AccessDeniedBrak zakresu albo zasób innego sprzedawcy.
403KEY_QUARANTINEDKwarantanna: działa tylko odczyt (wykryto nietypowe użycie).
403KEY_SUSPENDEDKlucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę).
409DESTINATION_LIMITLimit destynacji osiągnięty.
413PAYLOAD_TOO_LARGETreść żądania za duża (JSON 5 MB, faktura PDF 3 MB).
415UNSUPPORTED_MEDIA_TYPEZły Content-Type treści.
422DESTINATION_REDIRECTAdres przekierowuje.
422DESTINATION_URL_INVALIDAdres destynacji niedozwolony (https, port 443, publiczny IP).
422DESTINATION_VERIFICATION_FAILEDSerwer nie odesłał challenge w 5 s.
422JsonMappingExceptionTreść nie jest poprawnym JSON albo ma zły kształt (np. images jako obiekty).
422UnknownJSONPropertyPole nieznane w tym miejscu (path wskazuje które).
422VALIDATION_ERRORZła wartość parametru zapytania (400) albo pola treści (422); path wskazuje miejsce.
429TOO_MANY_REQUESTSPrzekroczony limit (minutowy, grupy operacji albo IP).
500INTERNAL_ERRORBłąd serwera allee.
503NOT_DEPLOYEDFunkcja jeszcze nie uruchomiona (np. sandbox, wsady).
Przykład
curl -sS -X POST "${ALLEE_API_URL:-https://api.allee.pl}/allee/notifications/destinations" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.public.v1+json" \
  -H "Content-Type: application/vnd.allegro.public.v1+json" \
  --data-binary @- \
  -w '\nHTTP %{http_code}\n' <<'JSON'
{
  "name": "Serwer sklepu",
  "url": "https://sklep.example.com/allee/webhook"
}
JSON
Odpowiedź (środowisko testowe)
HTTP 201 application/vnd.allegro.public.v1+json
{
  "destinationId": "b24ba1c2-f3d2-4872-8c7a-9df3c560f76d",
  "name": "Serwer sklepu",
  "url": "https://sklep.example.com/allee/webhook",
  "status": "ACTIVE",
  "disabledReason": null,
  "secretLast4": "M5KD",
  "previousSecretExpiresAt": null,
  "verifiedAt": "2026-11-10T11:10:05.000Z",
  "createdAt": "2026-11-10T11:10:05.000Z",
  "lastSuccessAt": null,
  "lastFailureAt": null,
  "consecutiveFailures": 0,
  "subscriptions": [],
  "application": "API",
  "secret": "{secret}"
}

Destynacje

GET /allee/notifications/destinations

wzór Amazon SP-APIallee:api:notificationslimit: read

Destynacje tej aplikacji (klucza) u sprzedawcy. Bez sekretów.

Zgodność: wzorowana na Amazon Selling Partner API — Notifications — getDestinations.
Uprawnienie: zakres allee:api:notifications.
Grupa limitu: read.

Odpowiedzi

200 Destynacje. · DestinationList
destinations array<Destination> zawsze
Pola obiektu
destinationId string · uuid zawsze
name string zawsze
url string zawsze
status string zawsze
Wartości: ACTIVE, DISABLED
disabledReason string · null zawsze
secretLast4 string zawsze

Ostatnie 4 znaki sekretu podpisu.

previousSecretExpiresAt string · date-time · null zawsze

Do kiedy podpisujemy też starym sekretem (po rotacji).

verifiedAt string · date-time · null zawsze
createdAt string · date-time zawsze
lastSuccessAt string · date-time · null zawsze
lastFailureAt string · date-time · null zawsze
consecutiveFailures integer zawsze
subscriptions array<string> zawsze

Typy subskrybowane na tę destynację.

application string zawsze

API albo PANEL.

applicationName string · null

Błędy

HTTPKodZnaczenie
401invalid_tokenBrak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate).
403ACCOUNT_INACTIVEKonto sprzedawcy jest nieaktywne.
403AccessDeniedBrak zakresu albo zasób innego sprzedawcy.
403KEY_QUARANTINEDKwarantanna: działa tylko odczyt (wykryto nietypowe użycie).
403KEY_SUSPENDEDKlucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę).
429TOO_MANY_REQUESTSPrzekroczony limit (minutowy, grupy operacji albo IP).
500INTERNAL_ERRORBłąd serwera allee.
503NOT_DEPLOYEDFunkcja jeszcze nie uruchomiona (np. sandbox, wsady).
Przykład
curl -sS -X GET "${ALLEE_API_URL:-https://api.allee.pl}/allee/notifications/destinations" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.public.v1+json" \
  -w '\nHTTP %{http_code}\n'
Odpowiedź (środowisko testowe)
HTTP 200 application/vnd.allegro.public.v1+json
{
  "destinations": [
    {
      "destinationId": "b24ba1c2-f3d2-4872-8c7a-9df3c560f76d",
      "name": "Serwer sklepu",
      "url": "https://sklep.example.com/allee/webhook",
      "status": "ACTIVE",
      "disabledReason": null,
      "secretLast4": "M5KD",
      "previousSecretExpiresAt": null,
      "verifiedAt": "2026-11-10T11:10:05.000Z",
      "createdAt": "2026-11-10T11:10:05.000Z",
      "lastSuccessAt": null,
      "lastFailureAt": null,
      "consecutiveFailures": 0,
      "subscriptions": [],
      "application": "API",
      "applicationName": "Klucze osobiste — sklep_przykladowy_0e60e9"
    }
  ]
}

Destynacja

GET /allee/notifications/destinations/{destinationId}

wzór Amazon SP-APIallee:api:notificationslimit: read

Destynacja z listą subskrypcji.

Zgodność: wzorowana na Amazon Selling Partner API — Notifications — getDestination.
Uprawnienie: zakres allee:api:notifications.
Grupa limitu: read.

Parametry ścieżki

destinationId string · uuid wymagany

Identyfikator destynacji.

Odpowiedzi

200 Destynacja. · Destination
destinationId string · uuid zawsze
name string zawsze
url string zawsze
status string zawsze
Wartości: ACTIVE, DISABLED
disabledReason string · null zawsze
secretLast4 string zawsze

Ostatnie 4 znaki sekretu podpisu.

previousSecretExpiresAt string · date-time · null zawsze

Do kiedy podpisujemy też starym sekretem (po rotacji).

verifiedAt string · date-time · null zawsze
createdAt string · date-time zawsze
lastSuccessAt string · date-time · null zawsze
lastFailureAt string · date-time · null zawsze
consecutiveFailures integer zawsze
subscriptions array<string> zawsze

Typy subskrybowane na tę destynację.

application string zawsze

API albo PANEL.

applicationName string · null

Błędy

HTTPKodZnaczenie
401invalid_tokenBrak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate).
403ACCOUNT_INACTIVEKonto sprzedawcy jest nieaktywne.
403AccessDeniedBrak zakresu albo zasób innego sprzedawcy.
403KEY_QUARANTINEDKwarantanna: działa tylko odczyt (wykryto nietypowe użycie).
403KEY_SUSPENDEDKlucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę).
404NOT_FOUNDNie ma takiego zasobu (albo należy do innego sprzedawcy — dla wątków, zwrotów i spraw odpowiedź jest ta sama).
429TOO_MANY_REQUESTSPrzekroczony limit (minutowy, grupy operacji albo IP).
500INTERNAL_ERRORBłąd serwera allee.
Przykład
curl -sS -X GET "${ALLEE_API_URL:-https://api.allee.pl}/allee/notifications/destinations/b24ba1c2-f3d2-4872-8c7a-9df3c560f76d" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.public.v1+json" \
  -w '\nHTTP %{http_code}\n'
Odpowiedź (środowisko testowe)
HTTP 200 application/vnd.allegro.public.v1+json
{
  "destinationId": "b24ba1c2-f3d2-4872-8c7a-9df3c560f76d",
  "name": "Serwer sklepu",
  "url": "https://sklep.example.com/allee/webhook",
  "status": "ACTIVE",
  "disabledReason": null,
  "secretLast4": "M5KD",
  "previousSecretExpiresAt": null,
  "verifiedAt": "2026-11-10T11:10:05.000Z",
  "createdAt": "2026-11-10T11:10:05.000Z",
  "lastSuccessAt": null,
  "lastFailureAt": null,
  "consecutiveFailures": 0,
  "subscriptions": [],
  "application": "API"
}

Usunięcie destynacji

DELETE /allee/notifications/destinations/{destinationId}

wzór Amazon SP-APIallee:api:notificationslimit: write

Razem z jej subskrypcjami; oczekujące dostawy są anulowane.

Zgodność: wzorowana na Amazon Selling Partner API — Notifications — deleteDestination.
Uprawnienie: zakres allee:api:notifications.
Grupa limitu: write.

Parametry ścieżki

destinationId string · uuid wymagany

Identyfikator destynacji.

Odpowiedzi

204 Usunięto.

Błędy

HTTPKodZnaczenie
401invalid_tokenBrak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate).
403ACCOUNT_INACTIVEKonto sprzedawcy jest nieaktywne.
403AccessDeniedBrak zakresu albo zasób innego sprzedawcy.
403KEY_QUARANTINEDKwarantanna: działa tylko odczyt (wykryto nietypowe użycie).
403KEY_SUSPENDEDKlucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę).
404NOT_FOUNDNie ma takiego zasobu (albo należy do innego sprzedawcy — dla wątków, zwrotów i spraw odpowiedź jest ta sama).
429TOO_MANY_REQUESTSPrzekroczony limit (minutowy, grupy operacji albo IP).
500INTERNAL_ERRORBłąd serwera allee.
Przykład
curl -sS -X DELETE "${ALLEE_API_URL:-https://api.allee.pl}/allee/notifications/destinations/b24ba1c2-f3d2-4872-8c7a-9df3c560f76d" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.public.v1+json" \
  -w '\nHTTP %{http_code}\n'
Odpowiedź (środowisko testowe)
HTTP 204 text/html; charset=UTF-8
(0 B: text/html; charset=UTF-8)

Powiadomienie testowe

POST /allee/notifications/destinations/{destinationId}/test

tylko alleeallee:api:notificationslimit: write

Wysyła od razu TEST_NOTIFICATION (podpisane) i zwraca wynik dostarczenia (kod HTTP Twojego serwera, czas).

Zgodność: tylko allee — Stripe: „Send test webhook”.
Uprawnienie: zakres allee:api:notifications.
Grupa limitu: write.

Parametry ścieżki

destinationId string · uuid wymagany

Identyfikator destynacji.

Odpowiedzi

200 Wynik. · DestinationTestResult
notificationId string zawsze
delivered boolean zawsze
httpStatus integer · null zawsze
durationMs integer zawsze
error string · null zawsze

Błędy

HTTPKodZnaczenie
401invalid_tokenBrak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate).
403ACCOUNT_INACTIVEKonto sprzedawcy jest nieaktywne.
403AccessDeniedBrak zakresu albo zasób innego sprzedawcy.
403KEY_QUARANTINEDKwarantanna: działa tylko odczyt (wykryto nietypowe użycie).
403KEY_SUSPENDEDKlucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę).
404NOT_FOUNDNie ma takiego zasobu (albo należy do innego sprzedawcy — dla wątków, zwrotów i spraw odpowiedź jest ta sama).
409DESTINATION_DISABLEDDestynacja wyłączona.
429TOO_MANY_REQUESTSPrzekroczony limit (minutowy, grupy operacji albo IP).
500INTERNAL_ERRORBłąd serwera allee.
Przykład
curl -sS -X POST "${ALLEE_API_URL:-https://api.allee.pl}/allee/notifications/destinations/b24ba1c2-f3d2-4872-8c7a-9df3c560f76d/test" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.public.v1+json" \
  -w '\nHTTP %{http_code}\n'
Odpowiedź (środowisko testowe)
HTTP 200 application/vnd.allegro.public.v1+json
{
  "notificationId": "6faf3bfa-1b81-426b-a722-5054b196920e",
  "delivered": true,
  "httpStatus": 200,
  "durationMs": 0,
  "error": null
}

Nowy sekret podpisu

POST /allee/notifications/destinations/{destinationId}/rotate-secret

tylko alleeallee:api:notificationslimit: write

Nowy sekret (pokazany raz). Przez okno previousSecretExpiresIn (0, 1h, 24h, 7d) podpisujemy oboma sekretami — nagłówek ma wtedy dwa v1=, więc możesz wymienić sekret bez przerwy.

Zgodność: tylko allee — Stripe: rotacja sekretu webhooka.
Uprawnienie: zakres allee:api:notifications.
Grupa limitu: write.

Parametry ścieżki

destinationId string · uuid wymagany

Identyfikator destynacji.

Nagłówki

Idempotency-Key string

Ochrona przed podwójnym wykonaniem (jak Stripe/Amazon): powtórzony POST z tym samym kluczem i tą samą treścią w ciągu 24 h zwraca zapisaną odpowiedź z nagłówkiem Idempotent-Replayed: true i niczego nie wykonuje drugi raz. Inna treść → 422 IDEMPOTENCY_KEY_REUSED; żądanie jeszcze trwa → 409 IDEMPOTENCY_KEY_IN_USE. 1–100 znaków ASCII (np. UUID).

Treść żądania application/vnd.allegro.public.v1+json

previousSecretExpiresIn string
Wartości: 0, 1h, 24h, 7d

Odpowiedzi

200 Nowy sekret. · SecretRotation
destinationId string zawsze
previousSecretExpiresAt string · date-time · null zawsze
secret string · null zawsze

Nowy sekret — pokazany raz.

allee object
Pola obiektu
secretRedacted boolean zawsze

Błędy

HTTPKodZnaczenie
401invalid_tokenBrak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate).
403ACCOUNT_INACTIVEKonto sprzedawcy jest nieaktywne.
403AccessDeniedBrak zakresu albo zasób innego sprzedawcy.
403KEY_QUARANTINEDKwarantanna: działa tylko odczyt (wykryto nietypowe użycie).
403KEY_SUSPENDEDKlucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę).
404NOT_FOUNDNie ma takiego zasobu (albo należy do innego sprzedawcy — dla wątków, zwrotów i spraw odpowiedź jest ta sama).
413PAYLOAD_TOO_LARGETreść żądania za duża (JSON 5 MB, faktura PDF 3 MB).
415UNSUPPORTED_MEDIA_TYPEZły Content-Type treści.
422JsonMappingExceptionTreść nie jest poprawnym JSON albo ma zły kształt (np. images jako obiekty).
422UnknownJSONPropertyPole nieznane w tym miejscu (path wskazuje które).
422VALIDATION_ERRORZła wartość parametru zapytania (400) albo pola treści (422); path wskazuje miejsce.
429TOO_MANY_REQUESTSPrzekroczony limit (minutowy, grupy operacji albo IP).
500INTERNAL_ERRORBłąd serwera allee.
Przykład
curl -sS -X POST "${ALLEE_API_URL:-https://api.allee.pl}/allee/notifications/destinations/b24ba1c2-f3d2-4872-8c7a-9df3c560f76d/rotate-secret" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.public.v1+json" \
  -H "Content-Type: application/vnd.allegro.public.v1+json" \
  --data-binary @- \
  -w '\nHTTP %{http_code}\n' <<'JSON'
{
  "previousSecretExpiresIn": "24h"
}
JSON
Odpowiedź (środowisko testowe)
HTTP 200 application/vnd.allegro.public.v1+json
{
  "destinationId": "b24ba1c2-f3d2-4872-8c7a-9df3c560f76d",
  "previousSecretExpiresAt": "2026-11-11T11:10:05.000Z",
  "secret": "{secret}"
}

Włączenie destynacji

POST /allee/notifications/destinations/{destinationId}/enable

tylko alleeallee:api:notificationslimit: write

Wznawia wysyłkę (np. po automatycznym wyłączeniu po 24 h nieudanych ponowień).

Zgodność: tylko allee.
Uprawnienie: zakres allee:api:notifications.
Grupa limitu: write.

Parametry ścieżki

destinationId string · uuid wymagany

Identyfikator destynacji.

Odpowiedzi

200 Destynacja. · Destination
destinationId string · uuid zawsze
name string zawsze
url string zawsze
status string zawsze
Wartości: ACTIVE, DISABLED
disabledReason string · null zawsze
secretLast4 string zawsze

Ostatnie 4 znaki sekretu podpisu.

previousSecretExpiresAt string · date-time · null zawsze

Do kiedy podpisujemy też starym sekretem (po rotacji).

verifiedAt string · date-time · null zawsze
createdAt string · date-time zawsze
lastSuccessAt string · date-time · null zawsze
lastFailureAt string · date-time · null zawsze
consecutiveFailures integer zawsze
subscriptions array<string> zawsze

Typy subskrybowane na tę destynację.

application string zawsze

API albo PANEL.

applicationName string · null

Błędy

HTTPKodZnaczenie
401invalid_tokenBrak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate).
403ACCOUNT_INACTIVEKonto sprzedawcy jest nieaktywne.
403AccessDeniedBrak zakresu albo zasób innego sprzedawcy.
403KEY_QUARANTINEDKwarantanna: działa tylko odczyt (wykryto nietypowe użycie).
403KEY_SUSPENDEDKlucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę).
404NOT_FOUNDNie ma takiego zasobu (albo należy do innego sprzedawcy — dla wątków, zwrotów i spraw odpowiedź jest ta sama).
429TOO_MANY_REQUESTSPrzekroczony limit (minutowy, grupy operacji albo IP).
500INTERNAL_ERRORBłąd serwera allee.
Przykład
curl -sS -X POST "${ALLEE_API_URL:-https://api.allee.pl}/allee/notifications/destinations/b24ba1c2-f3d2-4872-8c7a-9df3c560f76d/enable" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.public.v1+json" \
  -w '\nHTTP %{http_code}\n'
Odpowiedź (środowisko testowe)
HTTP 200 application/vnd.allegro.public.v1+json
{
  "destinationId": "b24ba1c2-f3d2-4872-8c7a-9df3c560f76d",
  "name": "Serwer sklepu",
  "url": "https://sklep.example.com/allee/webhook",
  "status": "ACTIVE",
  "disabledReason": null,
  "secretLast4": "vP35",
  "previousSecretExpiresAt": "2026-11-11T11:10:05.000Z",
  "verifiedAt": "2026-11-10T11:10:05.000Z",
  "createdAt": "2026-11-10T11:10:05.000Z",
  "lastSuccessAt": null,
  "lastFailureAt": null,
  "consecutiveFailures": 0,
  "subscriptions": [],
  "application": "API"
}

Wyłączenie destynacji

POST /allee/notifications/destinations/{destinationId}/disable

tylko alleeallee:api:notificationslimit: write

Wstrzymuje wysyłkę (subskrypcje zostają).

Zgodność: tylko allee.
Uprawnienie: zakres allee:api:notifications.
Grupa limitu: write.

Parametry ścieżki

destinationId string · uuid wymagany

Identyfikator destynacji.

Odpowiedzi

200 Destynacja. · Destination
destinationId string · uuid zawsze
name string zawsze
url string zawsze
status string zawsze
Wartości: ACTIVE, DISABLED
disabledReason string · null zawsze
secretLast4 string zawsze

Ostatnie 4 znaki sekretu podpisu.

previousSecretExpiresAt string · date-time · null zawsze

Do kiedy podpisujemy też starym sekretem (po rotacji).

verifiedAt string · date-time · null zawsze
createdAt string · date-time zawsze
lastSuccessAt string · date-time · null zawsze
lastFailureAt string · date-time · null zawsze
consecutiveFailures integer zawsze
subscriptions array<string> zawsze

Typy subskrybowane na tę destynację.

application string zawsze

API albo PANEL.

applicationName string · null

Błędy

HTTPKodZnaczenie
401invalid_tokenBrak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate).
403ACCOUNT_INACTIVEKonto sprzedawcy jest nieaktywne.
403AccessDeniedBrak zakresu albo zasób innego sprzedawcy.
403KEY_QUARANTINEDKwarantanna: działa tylko odczyt (wykryto nietypowe użycie).
403KEY_SUSPENDEDKlucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę).
404NOT_FOUNDNie ma takiego zasobu (albo należy do innego sprzedawcy — dla wątków, zwrotów i spraw odpowiedź jest ta sama).
429TOO_MANY_REQUESTSPrzekroczony limit (minutowy, grupy operacji albo IP).
500INTERNAL_ERRORBłąd serwera allee.
Przykład
curl -sS -X POST "${ALLEE_API_URL:-https://api.allee.pl}/allee/notifications/destinations/b24ba1c2-f3d2-4872-8c7a-9df3c560f76d/disable" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.public.v1+json" \
  -w '\nHTTP %{http_code}\n'
Odpowiedź (środowisko testowe)
HTTP 200 application/vnd.allegro.public.v1+json
{
  "destinationId": "b24ba1c2-f3d2-4872-8c7a-9df3c560f76d",
  "name": "Serwer sklepu",
  "url": "https://sklep.example.com/allee/webhook",
  "status": "DISABLED",
  "disabledReason": "Wyłączona przez aplikację",
  "secretLast4": "vP35",
  "previousSecretExpiresAt": "2026-11-11T11:10:05.000Z",
  "verifiedAt": "2026-11-10T11:10:05.000Z",
  "createdAt": "2026-11-10T11:10:05.000Z",
  "lastSuccessAt": null,
  "lastFailureAt": null,
  "consecutiveFailures": 0,
  "subscriptions": [],
  "application": "API"
}

Subskrypcje

GET /allee/notifications/subscriptions

wzór Amazon SP-APIallee:api:notificationslimit: read

Subskrypcje tej aplikacji (klucza) u sprzedawcy.

Zgodność: wzorowana na Amazon Selling Partner API — Notifications — getSubscription (wszystkie).
Uprawnienie: zakres allee:api:notifications.
Grupa limitu: read.

Odpowiedzi

200 Subskrypcje. · SubscriptionList
subscriptions array<Subscription> zawsze
Pola obiektu
subscriptionId string · uuid zawsze
notificationType string zawsze
destinationId string zawsze
status string zawsze
Wartości: ACTIVE, PAUSED
createdAt string · date-time zawsze

Błędy

HTTPKodZnaczenie
401invalid_tokenBrak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate).
403ACCOUNT_INACTIVEKonto sprzedawcy jest nieaktywne.
403AccessDeniedBrak zakresu albo zasób innego sprzedawcy.
403KEY_QUARANTINEDKwarantanna: działa tylko odczyt (wykryto nietypowe użycie).
403KEY_SUSPENDEDKlucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę).
429TOO_MANY_REQUESTSPrzekroczony limit (minutowy, grupy operacji albo IP).
500INTERNAL_ERRORBłąd serwera allee.
503NOT_DEPLOYEDFunkcja jeszcze nie uruchomiona (np. sandbox, wsady).
Przykład
curl -sS -X GET "${ALLEE_API_URL:-https://api.allee.pl}/allee/notifications/subscriptions" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.public.v1+json" \
  -w '\nHTTP %{http_code}\n'
Odpowiedź (środowisko testowe)
HTTP 200 application/vnd.allegro.public.v1+json
{
  "subscriptions": [
    {
      "subscriptionId": "3c260023-6f73-4036-97cb-49b45a7ad683",
      "notificationType": "ORDER_CHANGE",
      "destinationId": "b24ba1c2-f3d2-4872-8c7a-9df3c560f76d",
      "status": "ACTIVE",
      "createdAt": "2026-11-10T11:10:05.000Z"
    }
  ]
}

Subskrypcja typu powiadomień

POST /allee/notifications/subscriptions/{notificationType}

wzór Amazon SP-APIallee:api:notificationslimit: write

Jedna subskrypcja na typ (druga → 409). Wymaga zakresu notifications i zakresu danych typu (np. ORDER_CHANGE → orders:read).

Dostarczanie: POST JSON z nagłówkami Allee-Signature, Allee-Notification-Id, Allee-Notification-Type, Allee-Delivery-Attempt; Twój serwer odpowiada 2xx w 5 s. Ponowienia wykładnicze do 24 h, potem destynacja jest wyłączana.

Zgodność: wzorowana na Amazon Selling Partner API — Notifications — createSubscription.
Uprawnienie: zakres allee:api:notifications.
Grupa limitu: write.

Parametry ścieżki

notificationType string wymagany

Typ powiadomienia (GET /allee/notifications/types).

Wartości: ORDER_CHANGE, OFFER_STATUS_CHANGE, OFFER_ISSUES_CHANGE, MESSAGE_RECEIVED, RETURN_CHANGE, ISSUE_CHANGE, FEED_PROCESSING_FINISHED, REPORT_PROCESSING_FINISHED, API_KEY_SECURITY_EVENT, SELLER_COMPLIANCE_CHANGED, OFFER_NOTICE_RECEIVED, OFFER_RESTRICTED

Nagłówki

Idempotency-Key string

Ochrona przed podwójnym wykonaniem (jak Stripe/Amazon): powtórzony POST z tym samym kluczem i tą samą treścią w ciągu 24 h zwraca zapisaną odpowiedź z nagłówkiem Idempotent-Replayed: true i niczego nie wykonuje drugi raz. Inna treść → 422 IDEMPOTENCY_KEY_REUSED; żądanie jeszcze trwa → 409 IDEMPOTENCY_KEY_IN_USE. 1–100 znaków ASCII (np. UUID).

Treść żądania application/vnd.allegro.public.v1+json

destinationId string · uuid wymagane
payloadVersion string

Bez skutku (1.0).

Odpowiedzi

201 Utworzono. · Subscription
subscriptionId string · uuid zawsze
notificationType string zawsze
destinationId string zawsze
status string zawsze
Wartości: ACTIVE, PAUSED
createdAt string · date-time zawsze

Błędy

HTTPKodZnaczenie
401invalid_tokenBrak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate).
403ACCOUNT_INACTIVEKonto sprzedawcy jest nieaktywne.
403AccessDeniedBrak zakresu albo zasób innego sprzedawcy.
403KEY_QUARANTINEDKwarantanna: działa tylko odczyt (wykryto nietypowe użycie).
403KEY_SUSPENDEDKlucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę).
404NOT_FOUNDNie ma takiego zasobu (albo należy do innego sprzedawcy — dla wątków, zwrotów i spraw odpowiedź jest ta sama).
409SUBSCRIPTION_EXISTSSubskrypcja tego typu już jest.
413PAYLOAD_TOO_LARGETreść żądania za duża (JSON 5 MB, faktura PDF 3 MB).
415UNSUPPORTED_MEDIA_TYPEZły Content-Type treści.
422DESTINATION_NOT_FOUNDNie ma takiej destynacji tej aplikacji.
422JsonMappingExceptionTreść nie jest poprawnym JSON albo ma zły kształt (np. images jako obiekty).
422UnknownJSONPropertyPole nieznane w tym miejscu (path wskazuje które).
429TOO_MANY_REQUESTSPrzekroczony limit (minutowy, grupy operacji albo IP).
500INTERNAL_ERRORBłąd serwera allee.
Przykład
curl -sS -X POST "${ALLEE_API_URL:-https://api.allee.pl}/allee/notifications/subscriptions/ORDER_CHANGE" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.public.v1+json" \
  -H "Content-Type: application/vnd.allegro.public.v1+json" \
  --data-binary @- \
  -w '\nHTTP %{http_code}\n' <<'JSON'
{
  "destinationId": "b24ba1c2-f3d2-4872-8c7a-9df3c560f76d"
}
JSON
Odpowiedź (środowisko testowe)
HTTP 201 application/vnd.allegro.public.v1+json
{
  "subscriptionId": "3c260023-6f73-4036-97cb-49b45a7ad683",
  "notificationType": "ORDER_CHANGE",
  "destinationId": "b24ba1c2-f3d2-4872-8c7a-9df3c560f76d",
  "status": "ACTIVE",
  "createdAt": "2026-11-10T11:10:05.000Z"
}

Subskrypcja

GET /allee/notifications/subscriptions/{notificationType}

wzór Amazon SP-APIallee:api:notificationslimit: read

Subskrypcja wskazanego typu.

Zgodność: wzorowana na Amazon Selling Partner API — Notifications — getSubscription.
Uprawnienie: zakres allee:api:notifications.
Grupa limitu: read.

Parametry ścieżki

notificationType string wymagany

Typ powiadomienia (GET /allee/notifications/types).

Wartości: ORDER_CHANGE, OFFER_STATUS_CHANGE, OFFER_ISSUES_CHANGE, MESSAGE_RECEIVED, RETURN_CHANGE, ISSUE_CHANGE, FEED_PROCESSING_FINISHED, REPORT_PROCESSING_FINISHED, API_KEY_SECURITY_EVENT, SELLER_COMPLIANCE_CHANGED, OFFER_NOTICE_RECEIVED, OFFER_RESTRICTED

Odpowiedzi

200 Subskrypcja. · Subscription
subscriptionId string · uuid zawsze
notificationType string zawsze
destinationId string zawsze
status string zawsze
Wartości: ACTIVE, PAUSED
createdAt string · date-time zawsze

Błędy

HTTPKodZnaczenie
401invalid_tokenBrak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate).
403ACCOUNT_INACTIVEKonto sprzedawcy jest nieaktywne.
403AccessDeniedBrak zakresu albo zasób innego sprzedawcy.
403KEY_QUARANTINEDKwarantanna: działa tylko odczyt (wykryto nietypowe użycie).
403KEY_SUSPENDEDKlucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę).
404NOT_FOUNDNie ma takiego zasobu (albo należy do innego sprzedawcy — dla wątków, zwrotów i spraw odpowiedź jest ta sama).
429TOO_MANY_REQUESTSPrzekroczony limit (minutowy, grupy operacji albo IP).
500INTERNAL_ERRORBłąd serwera allee.
Przykład
curl -sS -X GET "${ALLEE_API_URL:-https://api.allee.pl}/allee/notifications/subscriptions/ORDER_CHANGE" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.public.v1+json" \
  -w '\nHTTP %{http_code}\n'
Odpowiedź (środowisko testowe)
HTTP 200 application/vnd.allegro.public.v1+json
{
  "subscriptionId": "3c260023-6f73-4036-97cb-49b45a7ad683",
  "notificationType": "ORDER_CHANGE",
  "destinationId": "b24ba1c2-f3d2-4872-8c7a-9df3c560f76d",
  "status": "ACTIVE",
  "createdAt": "2026-11-10T11:10:05.000Z"
}

Usunięcie subskrypcji

DELETE /allee/notifications/subscriptions/{notificationType}

wzór Amazon SP-APIallee:api:notificationslimit: write

Koniec powiadomień tego typu.

Zgodność: wzorowana na Amazon Selling Partner API — Notifications — deleteSubscriptionById.
Uprawnienie: zakres allee:api:notifications.
Grupa limitu: write.

Parametry ścieżki

notificationType string wymagany

Typ powiadomienia (GET /allee/notifications/types).

Wartości: ORDER_CHANGE, OFFER_STATUS_CHANGE, OFFER_ISSUES_CHANGE, MESSAGE_RECEIVED, RETURN_CHANGE, ISSUE_CHANGE, FEED_PROCESSING_FINISHED, REPORT_PROCESSING_FINISHED, API_KEY_SECURITY_EVENT, SELLER_COMPLIANCE_CHANGED, OFFER_NOTICE_RECEIVED, OFFER_RESTRICTED

Odpowiedzi

204 Usunięto.

Błędy

HTTPKodZnaczenie
401invalid_tokenBrak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate).
403ACCOUNT_INACTIVEKonto sprzedawcy jest nieaktywne.
403AccessDeniedBrak zakresu albo zasób innego sprzedawcy.
403KEY_QUARANTINEDKwarantanna: działa tylko odczyt (wykryto nietypowe użycie).
403KEY_SUSPENDEDKlucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę).
404NOT_FOUNDNie ma takiego zasobu (albo należy do innego sprzedawcy — dla wątków, zwrotów i spraw odpowiedź jest ta sama).
429TOO_MANY_REQUESTSPrzekroczony limit (minutowy, grupy operacji albo IP).
500INTERNAL_ERRORBłąd serwera allee.
Przykład
curl -sS -X DELETE "${ALLEE_API_URL:-https://api.allee.pl}/allee/notifications/subscriptions/ORDER_CHANGE" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.public.v1+json" \
  -w '\nHTTP %{http_code}\n'
Odpowiedź (środowisko testowe)
HTTP 204 text/html; charset=UTF-8
(0 B: text/html; charset=UTF-8)

Dziennik dostaw powiadomień

GET /allee/notifications/deliveries

tylko alleeallee:api:notificationslimit: read

Dostawy z 30 dni: status, liczba prób, ostatni kod HTTP i błąd, następna próba.

Zgodność: tylko allee — Stripe: dziennik zdarzeń webhooków.
Uprawnienie: zakres allee:api:notifications.
Grupa limitu: read.

Parametry zapytania

offset integer

Ile pozycji pominąć.

limit integer

Ile pozycji zwrócić (1–100, domyślnie 50).

status string

Status.

Wartości: PENDING, RETRYING, DELIVERED, FAILED, CANCELLED
destinationId string · uuid

Destynacja.

Odpowiedzi

200 Dostawy. · DeliveryList
deliveries array<object> zawsze
Pola obiektu
deliveryId string zawsze
notificationId string zawsze
notificationType string zawsze
destinationId string zawsze
status string zawsze
Wartości: PENDING, RETRYING, DELIVERED, FAILED, CANCELLED
attempts integer zawsze
lastHttpStatus integer · null zawsze
lastDurationMs integer · null zawsze
lastError string · null zawsze
createdAt string · date-time zawsze
nextAttemptAt string · date-time · null zawsze
deliveredAt string · date-time · null zawsze
totalCount integer zawsze
count integer zawsze

Błędy

HTTPKodZnaczenie
400VALIDATION_ERRORZła wartość parametru zapytania (400) albo pola treści (422); path wskazuje miejsce.
401invalid_tokenBrak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate).
403ACCOUNT_INACTIVEKonto sprzedawcy jest nieaktywne.
403AccessDeniedBrak zakresu albo zasób innego sprzedawcy.
403KEY_QUARANTINEDKwarantanna: działa tylko odczyt (wykryto nietypowe użycie).
403KEY_SUSPENDEDKlucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę).
429TOO_MANY_REQUESTSPrzekroczony limit (minutowy, grupy operacji albo IP).
500INTERNAL_ERRORBłąd serwera allee.
Przykład
curl -sS -X GET "${ALLEE_API_URL:-https://api.allee.pl}/allee/notifications/deliveries?destinationId=b24ba1c2-f3d2-4872-8c7a-9df3c560f76d&limit=20" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.public.v1+json" \
  -w '\nHTTP %{http_code}\n'
Odpowiedź (środowisko testowe)
HTTP 200 application/vnd.allegro.public.v1+json
{
  "deliveries": [
    {
      "deliveryId": "1",
      "notificationId": "6faf3bfa-1b81-426b-a722-5054b196920e",
      "notificationType": "TEST_NOTIFICATION",
      "destinationId": "b24ba1c2-f3d2-4872-8c7a-9df3c560f76d",
      "status": "DELIVERED",
      "attempts": 1,
      "lastHttpStatus": 200,
      "lastDurationMs": 0,
      "lastError": null,
      "createdAt": "2026-11-10T11:10:05.588Z",
      "nextAttemptAt": null,
      "deliveredAt": "2026-11-10T11:10:05.588Z"
    }
  ],
  "totalCount": 1,
  "count": 1
}