Przejdź do treści

Przewoźnicy

GET /order/carriers

zgodna z Allegrolimit: read

Stała lista kodów przewoźników do POST …/shipments. ALLEGRO i OTHER wymagają carrierName.

Zgodność: zgodna z Allegro REST API (ten sam kształt) — GET /order/carriers.
Uprawnienie: dowolny ważny token lub klucz (działa też token aplikacji client_credentials).
Grupa limitu: read.

Odpowiedzi

200 Przewoźnicy. · CarrierList
carriers array<Carrier> zawsze
Pola obiektu
id string zawsze
name string 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.
Przykład
curl -sS -X GET "${ALLEE_API_URL:-https://api.allee.pl}/order/carriers" \
  -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
{
  "carriers": [
    {
      "id": "DPD",
      "name": "DPD"
    },
    {
      "id": "INPOST",
      "name": "InPost"
    },
    {
      "id": "ALLEGRO_PACZKOMATY",
      "name": "Allegro Paczkomaty InPost"
    },
    {
      "id": "DHL",
      "name": "DHL"
    },
    {
      "id": "GLS",
      "name": "GLS"
    },
    {
      "id": "UPS",
      "name": "UPS"
    },
    {
      "id": "FEDEX",
      "name": "FedEx"
    },
    {
      "id": "TNT",
      "name": "TNT"
    },
    {
      "id": "ORLEN_PACZKA",
      "name": "ORLEN Paczka"
    },
    {
      "id": "POCZTEX",
      "name": "Pocztex"
    },
    {
      "id": "POCZTA_POLSKA",
      "name": "Poczta Polska"
    },
    {
      "id": "RUCH",
      "name": "Ruch"
    },
    {
      "id": "ALLEGRO",
      "name": "Allegro (inny przewoźnik)"
    },
    {
      "id": "OTHER",
      "name": "Inny przewoźnik"
    }
  ]
}

Przesyłki zamówienia

GET /order/checkout-forms/{checkoutFormId}/shipments

Allegro + rozszerzeniaallegro:api:orders:readlimit: read

Numery przesyłek dodane do zamówienia.

Zamówieniami allee.pl sprzedawcy obsługuje jedna integracja naraz (wybór w panelu sprzedaży → Integracje); inna aplikacja dostaje 403 ORDERS_OWNED_BY_OTHER_INTEGRATION (details.owner: PANEL, OTHER_APP, BASELINKER).

Zgodność: zgodna z Allegro REST API, z rozszerzeniami allee (pola allee.*, alleeId) — GET /order/checkout-forms/{id}/shipments.
Uprawnienie: zakres allegro:api:orders:read.
Grupa limitu: read.

Parametry ścieżki

checkoutFormId string · uuid wymagany

Identyfikator zamówienia (UUID, checkoutForm.id).

Odpowiedzi

200 Przesyłki. · ShipmentList
shipments array<Shipment> zawsze
Pola obiektu
id string · uuid zawsze
waybill string zawsze
carrierId string zawsze
carrierName string · null zawsze
lineItems array<object> zawsze
Pola obiektu
id string zawsze
quantity integer zawsze
createdAt string · date-time zawsze
allee object zawsze

Rozszerzenia allee (10.11.2026).

Pola obiektu
trackingUrl string · uri · null zawsze

Link śledzenia, który widzi kupujący (null — przewoźnik bez publicznej strony śledzenia).

warnings array<object> zawsze

Ostrzeżenia (numer zapisany): nietypowy format dla DPD, InPost, Poczty Polskiej.

Pola obiektu
code string zawsze
Wartości: WAYBILL_FORMAT_UNUSUAL
path string zawsze
message string 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ę).
403ORDERS_OWNED_BY_OTHER_INTEGRATIONZamówienia sprzedawcy obsługuje inna integracja (details.owner).
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}/order/checkout-forms/432810d0-4d26-4f39-ba5f-b89def4d4f92/shipments" \
  -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
{
  "shipments": [
    {
      "id": "120b3099-c95e-4765-b44e-8f1e3f67ee8c",
      "waybill": "620111222333444555495937",
      "carrierId": "INPOST",
      "carrierName": "InPost",
      "lineItems": [
        {
          "id": "2d9680b4-9cb7-4096-9428-8c1ceb2790c2",
          "quantity": 2
        }
      ],
      "createdAt": "2026-11-10T11:10:05.446Z",
      "allee": {
        "trackingUrl": "https://inpost.pl/sledzenie-przesylek?number=620111222333444555495937",
        "warnings": []
      }
    }
  ]
}

Dodanie numeru przesyłki

POST /order/checkout-forms/{checkoutFormId}/shipments

Allegro + rozszerzeniaallegro:api:orders:writelimit: write

Numer przesyłki (bez zmiany statusu — SENT ustawiasz osobno). Brak lineItems = całe zamówienie; lineItems[].quantity (allee) = część sztuk pozycji.

Idempotentne: ta sama para (carrierId, waybill) w zamówieniu → 200 z istniejącą przesyłką. Paczki InPost allee śledzi samo i ustawia SENT/PICKED_UP.

Zamówieniami allee.pl sprzedawcy obsługuje jedna integracja naraz (wybór w panelu sprzedaży → Integracje); inna aplikacja dostaje 403 ORDERS_OWNED_BY_OTHER_INTEGRATION (details.owner: PANEL, OTHER_APP, BASELINKER).

Zgodność: zgodna z Allegro REST API, z rozszerzeniami allee (pola allee.*, alleeId) — POST /order/checkout-forms/{id}/shipments.
Uprawnienie: zakres allegro:api:orders:write.
Grupa limitu: write.

Parametry ścieżki

checkoutFormId string · uuid wymagany

Identyfikator zamówienia (UUID, checkoutForm.id).

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

carrierId string wymagane

Kod przewoźnika z GET /order/carriers (wielkość liter bez znaczenia).

waybill string wymagane

Numer przesyłki: [A-Za-z0-9._-/], 1–64 znaki.

carrierName string

Wymagane dla ALLEGRO i OTHER (do 60 znaków).

lineItems array<object>

Brak albo pusta lista = całe zamówienie.

Pola obiektu
id string
lineItem IdRef

Odwołanie po identyfikatorze.

Pola obiektu
id string wymagane
quantity integer

Rozszerzenie allee: część sztuk pozycji.

Odpowiedzi

200 Ta przesyłka już była. · Shipment
id string · uuid zawsze
waybill string zawsze
carrierId string zawsze
carrierName string · null zawsze
lineItems array<object> zawsze
Pola obiektu
id string zawsze
quantity integer zawsze
createdAt string · date-time zawsze
allee object zawsze

Rozszerzenia allee (10.11.2026).

Pola obiektu
trackingUrl string · uri · null zawsze

Link śledzenia, który widzi kupujący (null — przewoźnik bez publicznej strony śledzenia).

warnings array<object> zawsze

Ostrzeżenia (numer zapisany): nietypowy format dla DPD, InPost, Poczty Polskiej.

Pola obiektu
code string zawsze
Wartości: WAYBILL_FORMAT_UNUSUAL
path string zawsze
message string zawsze
201 Dodano. · Shipment
id string · uuid zawsze
waybill string zawsze
carrierId string zawsze
carrierName string · null zawsze
lineItems array<object> zawsze
Pola obiektu
id string zawsze
quantity integer zawsze
createdAt string · date-time zawsze
allee object zawsze

Rozszerzenia allee (10.11.2026).

Pola obiektu
trackingUrl string · uri · null zawsze

Link śledzenia, który widzi kupujący (null — przewoźnik bez publicznej strony śledzenia).

warnings array<object> zawsze

Ostrzeżenia (numer zapisany): nietypowy format dla DPD, InPost, Poczty Polskiej.

Pola obiektu
code string zawsze
Wartości: WAYBILL_FORMAT_UNUSUAL
path string zawsze
message string 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ę).
403ORDERS_OWNED_BY_OTHER_INTEGRATIONZamówienia sprzedawcy obsługuje inna integracja (details.owner).
404NOT_FOUNDNie ma takiego zasobu (albo należy do innego sprzedawcy — dla wątków, zwrotów i spraw odpowiedź jest ta sama).
409ORDER_CLOSEDZamówienie anulowane albo zakończone.
413PAYLOAD_TOO_LARGETreść żądania za duża (JSON 5 MB, faktura PDF 3 MB).
415UNSUPPORTED_MEDIA_TYPEZły Content-Type treści.
422CARRIER_NAME_REQUIREDALLEGRO/OTHER bez carrierName.
422CARRIER_NOT_FOUNDNieznany przewoźnik.
422ConstraintViolationException.MissingRequiredParametersBrak wymaganego parametru lub pola (details = id parametru).
422INVALID_QUANTITYLiczba sztuk poza zakresem.
422INVALID_WAYBILLZły numer przesyłki.
422JsonMappingExceptionTreść nie jest poprawnym JSON albo ma zły kształt (np. images jako obiekty).
422LINE_ITEM_NOT_FOUNDPozycja spoza zamówienia.
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}/order/checkout-forms/432810d0-4d26-4f39-ba5f-b89def4d4f92/shipments" \
  -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'
{
  "carrierId": "INPOST",
  "waybill": "620111222333444555495937",
  "lineItems": [
    {
      "id": "2d9680b4-9cb7-4096-9428-8c1ceb2790c2"
    }
  ]
}
JSON
Odpowiedź (środowisko testowe)
HTTP 201 application/vnd.allegro.public.v1+json
{
  "id": "120b3099-c95e-4765-b44e-8f1e3f67ee8c",
  "waybill": "620111222333444555495937",
  "carrierId": "INPOST",
  "carrierName": "InPost",
  "lineItems": [
    {
      "id": "2d9680b4-9cb7-4096-9428-8c1ceb2790c2",
      "quantity": 2
    }
  ],
  "createdAt": "2026-11-10T11:10:05.446Z",
  "allee": {
    "trackingUrl": "https://inpost.pl/sledzenie-przesylek?number=620111222333444555495937",
    "warnings": []
  }
}
Przykład: Przesyłka całego zamówienia (bez lineItems)
curl -sS -X POST "${ALLEE_API_URL:-https://api.allee.pl}/order/checkout-forms/718ce396-4940-431f-815e-7a51875c71df/shipments" \
  -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'
{
  "carrierId": "DPD",
  "waybill": "1000634495937U"
}
JSON
HTTP 201 application/vnd.allegro.public.v1+json
{
  "id": "d9006b14-2174-4806-b58d-1a8e46e91e23",
  "waybill": "1000634495937U",
  "carrierId": "DPD",
  "carrierName": "DPD",
  "lineItems": [],
  "createdAt": "2026-11-10T11:10:05.530Z",
  "allee": {
    "trackingUrl": "https://tracktrace.dpd.com.pl/parcelDetails?typ=1&p1=1000634495937U",
    "warnings": []
  }
}

Śledzenie przesyłek

GET /order/carriers/{carrierId}/tracking

Allegro + rozszerzeniaallegro:api:orders:readlimit: read

Historia statusów przesyłek Twoich zamówień (do 20 numerów naraz). Zakres orders:read albo shipments:read. Numer spoza Twoich zamówień → trackingDetails: null.

Zamówieniami allee.pl sprzedawcy obsługuje jedna integracja naraz (wybór w panelu sprzedaży → Integracje); inna aplikacja dostaje 403 ORDERS_OWNED_BY_OTHER_INTEGRATION (details.owner: PANEL, OTHER_APP, BASELINKER).

Zgodność: zgodna z Allegro REST API, z rozszerzeniami allee (pola allee.*, alleeId) — GET /order/carriers/{carrierId}/tracking.
Uprawnienie: zakres allegro:api:orders:read.
Grupa limitu: read.

Parametry ścieżki

carrierId string wymagany

Kod przewoźnika (GET /order/carriers).

Parametry zapytania

waybill array<string> wymagany

Numer przesyłki — powtórz parametr dla kilku (do 20).

Odpowiedzi

200 Śledzenie. · Tracking
carrierId string zawsze
waybills array<object> zawsze
Pola obiektu
waybill string zawsze
trackingDetails object · null zawsze
Pola obiektu
createdAt string · date-time · null zawsze
updatedAt string · date-time · null zawsze
statuses array<object> zawsze
Pola obiektu
occurredAt string · date-time zawsze
code string zawsze
description string · null
allee object zawsze
Pola obiektu
trackingUrl string · uri · null zawsze

Strona śledzenia u przewoźnika.

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ę).
403ORDERS_OWNED_BY_OTHER_INTEGRATIONZamówienia sprzedawcy obsługuje inna integracja (details.owner).
404CARRIER_NOT_FOUNDNieznany przewoźnik.
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}/order/carriers/INPOST/tracking?waybill=620111222333444555495937" \
  -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
{
  "carrierId": "INPOST",
  "waybills": [
    {
      "waybill": "620111222333444555495937",
      "trackingDetails": {
        "createdAt": "2026-11-10T11:10:05.446Z",
        "updatedAt": "2026-11-10T11:10:05.446Z",
        "statuses": []
      },
      "allee": {
        "trackingUrl": "https://inpost.pl/sledzenie-przesylek?number=620111222333444555495937"
      }
    }
  ]
}