Przejdź do treści

Polecenie zmiany liczby sztuk

PUT /sale/offer-quantity-change-commands/{commandId}

Allegro + rozszerzeniaallegro:api:sale:offers:writelimit: bulk

Do 1000 ofert (offerCriteria typu CONTAINS_OFFERS). allee wykonuje polecenie od razu: odpowiedź 201 ma ostateczne taskCount, a zadania mają statusy SUCCESS/FAIL (bez NEW/RUNNING).

Ten sam commandId w poleceniu innego rodzaju → 409 COMMAND_ID_CONFLICT. Oferta cudza albo nieistniejąca → zadanie FAIL (reszta się wykonuje). Błąd całego polecenia → 422 i nic się nie wykonuje.

Zgodność: zgodna z Allegro REST API, z rozszerzeniami allee (pola allee.*, alleeId) — PUT /sale/offer-quantity-change-commands/{commandId}.
Uprawnienie: zakres allegro:api:sale:offers:write.
Grupa limitu: bulk.

Parametry ścieżki

commandId string · uuid wymagany

Twój identyfikator polecenia (UUID) — powtórzony PUT zwraca zapisany wynik i niczego nie wykonuje drugi raz.

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

modification object wymagane
Pola obiektu
changeType string wymagane

FIXED = ustaw, GAIN = dodaj (może być ujemne).

Wartości: FIXED, GAIN
value integer wymagane
offerCriteria OfferCriteria wymagane

Wybór ofert polecenia.

Pola obiektu
type string wymagane
Wartości: CONTAINS_OFFERS
offers array<IdRef> wymagane

Najwyżej 1000 różnych ofert.

Pola obiektu
id string wymagane

Odpowiedzi

201 Wykonano. · CommandResult
id string · uuid zawsze

commandId (UUID).

taskCount object zawsze
Pola obiektu
total integer zawsze
success integer zawsze
failed integer zawsze
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ę).
409COMMAND_ID_CONFLICTTen commandId użyto w poleceniu innego rodzaju albo u innego sprzedawcy.
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).
422VALIDATION_ERRORZła wartość parametru zapytania (400) albo pola treści (422); path wskazuje miejsce.
429TOO_MANY_CONCURRENTZa dużo ciężkich operacji naraz (wsady, raporty, duże polecenia).
429TOO_MANY_REQUESTSPrzekroczony limit (minutowy, grupy operacji albo IP).
500INTERNAL_ERRORBłąd serwera allee.
Przykład
curl -sS -X PUT "${ALLEE_API_URL:-https://api.allee.pl}/sale/offer-quantity-change-commands/ff689dde-05d2-451d-ad17-4673a2939891" \
  -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'
{
  "modification": {
    "changeType": "FIXED",
    "value": 12
  },
  "offerCriteria": [
    {
      "type": "CONTAINS_OFFERS",
      "offers": [
        {
          "id": "900000000000021"
        }
      ]
    }
  ]
}
JSON
Odpowiedź (środowisko testowe)
HTTP 201 application/vnd.allegro.public.v1+json
{
  "id": "ff689dde-05d2-451d-ad17-4673a2939891",
  "taskCount": {
    "total": 1,
    "success": 1,
    "failed": 0
  },
  "createdAt": "2026-11-10T11:10:04.415Z"
}

Wynik polecenia zmiany liczby sztuk

GET /sale/offer-quantity-change-commands/{commandId}

zgodna z Allegroallegro:api:sale:offers:readlimit: read

Podsumowanie polecenia (liczniki zadań).

Zgodność: zgodna z Allegro REST API (ten sam kształt) — GET /sale/offer-quantity-change-commands/{commandId}.
Uprawnienie: zakres allegro:api:sale:offers:read.
Grupa limitu: read.

Parametry ścieżki

commandId string · uuid wymagany

Twój identyfikator polecenia (UUID) — powtórzony PUT zwraca zapisany wynik i niczego nie wykonuje drugi raz.

Odpowiedzi

200 Wynik. · CommandResult
id string · uuid zawsze

commandId (UUID).

taskCount object zawsze
Pola obiektu
total integer zawsze
success integer zawsze
failed integer zawsze
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}/sale/offer-quantity-change-commands/ff689dde-05d2-451d-ad17-4673a2939891" \
  -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
{
  "id": "ff689dde-05d2-451d-ad17-4673a2939891",
  "taskCount": {
    "total": 1,
    "success": 1,
    "failed": 0
  },
  "createdAt": "2026-11-10T11:10:04.415Z"
}

Zadania polecenia zmiany liczby sztuk

GET /sale/offer-quantity-change-commands/{commandId}/tasks

zgodna z Allegroallegro:api:sale:offers:readlimit: read

Wynik dla każdej oferty: SUCCESS albo FAIL z błędami.

Zgodność: zgodna z Allegro REST API (ten sam kształt) — GET /sale/offer-quantity-change-commands/{commandId}/tasks.
Uprawnienie: zakres allegro:api:sale:offers:read.
Grupa limitu: read.

Parametry ścieżki

commandId string · uuid wymagany

Twój identyfikator polecenia (UUID) — powtórzony PUT zwraca zapisany wynik i niczego nie wykonuje drugi raz.

Parametry zapytania

offset integer

Ile pozycji pominąć.

limit integer

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

Odpowiedzi

200 Zadania. · CommandTaskList
tasks array<object> zawsze
Pola obiektu
offer IdRef zawsze

Odwołanie po identyfikatorze.

Pola obiektu
id string zawsze
status string zawsze
Wartości: SUCCESS, FAIL
message string zawsze
errors array<Error> zawsze
Pola obiektu
code string zawsze

Kod maszynowy błędu — na nim opieraj obsługę (lista: przewodnik „Błędy”).

message string zawsze

Opis dla programisty (po polsku).

details any zawsze

Dane dodatkowe albo null — np. id istniejącej oferty przy OfferDuplicate, {"current": "SENT"} przy błędzie statusu, {"retryAfterMs": 1200} przy limicie.

path string · null zawsze

Pole żądania, którego dotyczy błąd, np. productSet[0].product.parameters.

userMessage string zawsze

Komunikat, który można pokazać sprzedawcy.

finishedAt string · date-time 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ę).
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}/sale/offer-quantity-change-commands/ff689dde-05d2-451d-ad17-4673a2939891/tasks?limit=100&offset=0" \
  -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
{
  "tasks": [
    {
      "offer": {
        "id": "900000000000021"
      },
      "status": "SUCCESS",
      "message": "Zmieniono.",
      "errors": [],
      "finishedAt": "2026-11-10T11:10:04.415Z"
    }
  ]
}

Polecenie zmiany ceny

PUT /sale/offer-price-change-commands/{commandId}

Allegro + rozszerzeniaallegro:api:sale:offers:writelimit: bulk

Do 1000 ofert (offerCriteria typu CONTAINS_OFFERS). allee wykonuje polecenie od razu: odpowiedź 201 ma ostateczne taskCount, a zadania mają statusy SUCCESS/FAIL (bez NEW/RUNNING).

Ten sam commandId w poleceniu innego rodzaju → 409 COMMAND_ID_CONFLICT. Oferta cudza albo nieistniejąca → zadanie FAIL (reszta się wykonuje). Błąd całego polecenia → 422 i nic się nie wykonuje.

Zgodność: zgodna z Allegro REST API, z rozszerzeniami allee (pola allee.*, alleeId) — PUT /sale/offer-price-change-commands/{commandId}.
Uprawnienie: zakres allegro:api:sale:offers:write.
Grupa limitu: bulk.

Parametry ścieżki

commandId string · uuid wymagany

Twój identyfikator polecenia (UUID) — powtórzony PUT zwraca zapisany wynik i niczego nie wykonuje drugi raz.

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

modification object wymagane
Pola obiektu
type string wymagane
Wartości: FIXED_PRICE
price MoneyInput wymagane

Kwota w żądaniu.

Pola obiektu
amount string|number wymagane

Kwota jako tekst „123.45” (zalecane) albo liczba.

currency string

Waluta: tylko PLN (domyślnie PLN).

Wartości: PLN
offerCriteria OfferCriteria wymagane

Wybór ofert polecenia.

Pola obiektu
type string wymagane
Wartości: CONTAINS_OFFERS
offers array<IdRef> wymagane

Najwyżej 1000 różnych ofert.

Pola obiektu
id string wymagane

Odpowiedzi

201 Wykonano. · CommandResult
id string · uuid zawsze

commandId (UUID).

taskCount object zawsze
Pola obiektu
total integer zawsze
success integer zawsze
failed integer zawsze
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ę).
409COMMAND_ID_CONFLICTTen commandId użyto w poleceniu innego rodzaju albo u innego sprzedawcy.
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).
422VALIDATION_ERRORZła wartość parametru zapytania (400) albo pola treści (422); path wskazuje miejsce.
429TOO_MANY_CONCURRENTZa dużo ciężkich operacji naraz (wsady, raporty, duże polecenia).
429TOO_MANY_REQUESTSPrzekroczony limit (minutowy, grupy operacji albo IP).
500INTERNAL_ERRORBłąd serwera allee.
Przykład
curl -sS -X PUT "${ALLEE_API_URL:-https://api.allee.pl}/sale/offer-price-change-commands/12e4b766-0096-4404-9546-167845ebb846" \
  -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'
{
  "modification": {
    "type": "FIXED_PRICE",
    "price": {
      "amount": "42.90",
      "currency": "PLN"
    }
  },
  "offerCriteria": [
    {
      "type": "CONTAINS_OFFERS",
      "offers": [
        {
          "id": "900000000000021"
        }
      ]
    }
  ]
}
JSON
Odpowiedź (środowisko testowe)
HTTP 201 application/vnd.allegro.public.v1+json
{
  "id": "12e4b766-0096-4404-9546-167845ebb846",
  "taskCount": {
    "total": 1,
    "success": 1,
    "failed": 0
  },
  "createdAt": "2026-11-10T11:10:04.426Z"
}

Wynik polecenia zmiany ceny

GET /sale/offer-price-change-commands/{commandId}

zgodna z Allegroallegro:api:sale:offers:readlimit: read

Podsumowanie polecenia (liczniki zadań).

Zgodność: zgodna z Allegro REST API (ten sam kształt) — GET /sale/offer-price-change-commands/{commandId}.
Uprawnienie: zakres allegro:api:sale:offers:read.
Grupa limitu: read.

Parametry ścieżki

commandId string · uuid wymagany

Twój identyfikator polecenia (UUID) — powtórzony PUT zwraca zapisany wynik i niczego nie wykonuje drugi raz.

Odpowiedzi

200 Wynik. · CommandResult
id string · uuid zawsze

commandId (UUID).

taskCount object zawsze
Pola obiektu
total integer zawsze
success integer zawsze
failed integer zawsze
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}/sale/offer-price-change-commands/12e4b766-0096-4404-9546-167845ebb846" \
  -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
{
  "id": "12e4b766-0096-4404-9546-167845ebb846",
  "taskCount": {
    "total": 1,
    "success": 1,
    "failed": 0
  },
  "createdAt": "2026-11-10T11:10:04.426Z"
}

Zadania polecenia zmiany ceny

GET /sale/offer-price-change-commands/{commandId}/tasks

zgodna z Allegroallegro:api:sale:offers:readlimit: read

Wynik dla każdej oferty: SUCCESS albo FAIL z błędami.

Zgodność: zgodna z Allegro REST API (ten sam kształt) — GET /sale/offer-price-change-commands/{commandId}/tasks.
Uprawnienie: zakres allegro:api:sale:offers:read.
Grupa limitu: read.

Parametry ścieżki

commandId string · uuid wymagany

Twój identyfikator polecenia (UUID) — powtórzony PUT zwraca zapisany wynik i niczego nie wykonuje drugi raz.

Parametry zapytania

offset integer

Ile pozycji pominąć.

limit integer

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

Odpowiedzi

200 Zadania. · CommandTaskList
tasks array<object> zawsze
Pola obiektu
offer IdRef zawsze

Odwołanie po identyfikatorze.

Pola obiektu
id string zawsze
status string zawsze
Wartości: SUCCESS, FAIL
message string zawsze
errors array<Error> zawsze
Pola obiektu
code string zawsze

Kod maszynowy błędu — na nim opieraj obsługę (lista: przewodnik „Błędy”).

message string zawsze

Opis dla programisty (po polsku).

details any zawsze

Dane dodatkowe albo null — np. id istniejącej oferty przy OfferDuplicate, {"current": "SENT"} przy błędzie statusu, {"retryAfterMs": 1200} przy limicie.

path string · null zawsze

Pole żądania, którego dotyczy błąd, np. productSet[0].product.parameters.

userMessage string zawsze

Komunikat, który można pokazać sprzedawcy.

finishedAt string · date-time 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ę).
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}/sale/offer-price-change-commands/12e4b766-0096-4404-9546-167845ebb846/tasks" \
  -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
{
  "tasks": [
    {
      "offer": {
        "id": "900000000000021"
      },
      "status": "SUCCESS",
      "message": "Zmieniono.",
      "errors": [],
      "finishedAt": "2026-11-10T11:10:04.426Z"
    }
  ]
}

Polecenie zmiany ustawień ofert

PUT /sale/offer-modification-commands/{commandId}

Allegro + rozszerzeniaallegro:api:sale:offers:writelimit: bulk

Do 1000 ofert (offerCriteria typu CONTAINS_OFFERS). allee wykonuje polecenie od razu: odpowiedź 201 ma ostateczne taskCount, a zadania mają statusy SUCCESS/FAIL (bez NEW/RUNNING).

Ten sam commandId w poleceniu innego rodzaju → 409 COMMAND_ID_CONFLICT. Oferta cudza albo nieistniejąca → zadanie FAIL (reszta się wykonuje). Błąd całego polecenia → 422 i nic się nie wykonuje.

Zmieniane pola: tylko delivery (handlingTime, shippingRates) i afterSalesServices.

Zgodność: zgodna z Allegro REST API, z rozszerzeniami allee (pola allee.*, alleeId) — PUT /sale/offer-modification-commands/{commandId}.
Uprawnienie: zakres allegro:api:sale:offers:write.
Grupa limitu: bulk.

Parametry ścieżki

commandId string · uuid wymagany

Twój identyfikator polecenia (UUID) — powtórzony PUT zwraca zapisany wynik i niczego nie wykonuje drugi raz.

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

modification object wymagane

Tylko delivery i afterSalesServices (inne pole → zadanie FAIL UnknownJSONProperty).

Pola obiektu
delivery object
Pola obiektu
handlingTime string
shippingRates IdRef

Odwołanie po identyfikatorze.

Pola obiektu
id string wymagane
afterSalesServices object
Pola obiektu
returnPolicy IdRef · null
Pola obiektu
id string wymagane
warranty IdRef · null
Pola obiektu
id string wymagane
impliedWarranty IdRef · null
Pola obiektu
id string wymagane
offerCriteria OfferCriteria wymagane

Wybór ofert polecenia.

Pola obiektu
type string wymagane
Wartości: CONTAINS_OFFERS
offers array<IdRef> wymagane

Najwyżej 1000 różnych ofert.

Pola obiektu
id string wymagane

Odpowiedzi

201 Wykonano. · CommandResult
id string · uuid zawsze

commandId (UUID).

taskCount object zawsze
Pola obiektu
total integer zawsze
success integer zawsze
failed integer zawsze
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ę).
409COMMAND_ID_CONFLICTTen commandId użyto w poleceniu innego rodzaju albo u innego sprzedawcy.
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).
422VALIDATION_ERRORZła wartość parametru zapytania (400) albo pola treści (422); path wskazuje miejsce.
429TOO_MANY_CONCURRENTZa dużo ciężkich operacji naraz (wsady, raporty, duże polecenia).
429TOO_MANY_REQUESTSPrzekroczony limit (minutowy, grupy operacji albo IP).
500INTERNAL_ERRORBłąd serwera allee.
Przykład
curl -sS -X PUT "${ALLEE_API_URL:-https://api.allee.pl}/sale/offer-modification-commands/47e71c9d-d10c-4f7e-b9b8-14d98b923ced" \
  -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'
{
  "modification": {
    "delivery": {
      "handlingTime": "P2D"
    },
    "afterSalesServices": {
      "warranty": {
        "id": "5be961ca-7c55-4d2a-9332-93d58877d4a2"
      }
    }
  },
  "offerCriteria": [
    {
      "type": "CONTAINS_OFFERS",
      "offers": [
        {
          "id": "900000000000021"
        }
      ]
    }
  ]
}
JSON
Odpowiedź (środowisko testowe)
HTTP 201 application/vnd.allegro.public.v1+json
{
  "id": "47e71c9d-d10c-4f7e-b9b8-14d98b923ced",
  "taskCount": {
    "total": 1,
    "success": 1,
    "failed": 0
  },
  "createdAt": "2026-11-10T11:10:04.436Z"
}

Wynik polecenia zmiany ustawień ofert

GET /sale/offer-modification-commands/{commandId}

zgodna z Allegroallegro:api:sale:offers:readlimit: read

Podsumowanie polecenia (liczniki zadań).

Zgodność: zgodna z Allegro REST API (ten sam kształt) — GET /sale/offer-modification-commands/{commandId}.
Uprawnienie: zakres allegro:api:sale:offers:read.
Grupa limitu: read.

Parametry ścieżki

commandId string · uuid wymagany

Twój identyfikator polecenia (UUID) — powtórzony PUT zwraca zapisany wynik i niczego nie wykonuje drugi raz.

Odpowiedzi

200 Wynik. · CommandResult
id string · uuid zawsze

commandId (UUID).

taskCount object zawsze
Pola obiektu
total integer zawsze
success integer zawsze
failed integer zawsze
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}/sale/offer-modification-commands/47e71c9d-d10c-4f7e-b9b8-14d98b923ced" \
  -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
{
  "id": "47e71c9d-d10c-4f7e-b9b8-14d98b923ced",
  "taskCount": {
    "total": 1,
    "success": 1,
    "failed": 0
  },
  "createdAt": "2026-11-10T11:10:04.436Z"
}

Zadania polecenia zmiany ustawień ofert

GET /sale/offer-modification-commands/{commandId}/tasks

zgodna z Allegroallegro:api:sale:offers:readlimit: read

Wynik dla każdej oferty: SUCCESS albo FAIL z błędami.

Zgodność: zgodna z Allegro REST API (ten sam kształt) — GET /sale/offer-modification-commands/{commandId}/tasks.
Uprawnienie: zakres allegro:api:sale:offers:read.
Grupa limitu: read.

Parametry ścieżki

commandId string · uuid wymagany

Twój identyfikator polecenia (UUID) — powtórzony PUT zwraca zapisany wynik i niczego nie wykonuje drugi raz.

Parametry zapytania

offset integer

Ile pozycji pominąć.

limit integer

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

Odpowiedzi

200 Zadania. · CommandTaskList
tasks array<object> zawsze
Pola obiektu
offer IdRef zawsze

Odwołanie po identyfikatorze.

Pola obiektu
id string zawsze
status string zawsze
Wartości: SUCCESS, FAIL
message string zawsze
errors array<Error> zawsze
Pola obiektu
code string zawsze

Kod maszynowy błędu — na nim opieraj obsługę (lista: przewodnik „Błędy”).

message string zawsze

Opis dla programisty (po polsku).

details any zawsze

Dane dodatkowe albo null — np. id istniejącej oferty przy OfferDuplicate, {"current": "SENT"} przy błędzie statusu, {"retryAfterMs": 1200} przy limicie.

path string · null zawsze

Pole żądania, którego dotyczy błąd, np. productSet[0].product.parameters.

userMessage string zawsze

Komunikat, który można pokazać sprzedawcy.

finishedAt string · date-time 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ę).
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}/sale/offer-modification-commands/47e71c9d-d10c-4f7e-b9b8-14d98b923ced/tasks" \
  -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
{
  "tasks": [
    {
      "offer": {
        "id": "900000000000021"
      },
      "status": "SUCCESS",
      "message": "Zmieniono.",
      "errors": [],
      "finishedAt": "2026-11-10T11:10:04.436Z"
    }
  ]
}

Polecenie publikacji (ACTIVATE / END)

PUT /sale/offer-publication-commands/{commandId}

Allegro + rozszerzeniaallegro:api:sale:offers:writelimit: bulk

Do 1000 ofert (offerCriteria typu CONTAINS_OFFERS). allee wykonuje polecenie od razu: odpowiedź 201 ma ostateczne taskCount, a zadania mają statusy SUCCESS/FAIL (bez NEW/RUNNING).

Ten sam commandId w poleceniu innego rodzaju → 409 COMMAND_ID_CONFLICT. Oferta cudza albo nieistniejąca → zadanie FAIL (reszta się wykonuje). Błąd całego polecenia → 422 i nic się nie wykonuje.

END: aktywna → ENDED (szkicu nie kończymy — zadanie FAIL INVALID_STATUS_TRANSITION). ACTIVATE: wymaga GPSR, zdjęcia i sztuk.

Zgodność: zgodna z Allegro REST API, z rozszerzeniami allee (pola allee.*, alleeId) — PUT /sale/offer-publication-commands/{commandId}.
Uprawnienie: zakres allegro:api:sale:offers:write.
Grupa limitu: bulk.

Parametry ścieżki

commandId string · uuid wymagany

Twój identyfikator polecenia (UUID) — powtórzony PUT zwraca zapisany wynik i niczego nie wykonuje drugi raz.

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

publication object wymagane
Pola obiektu
action string wymagane
Wartości: ACTIVATE, END
offerCriteria OfferCriteria wymagane

Wybór ofert polecenia.

Pola obiektu
type string wymagane
Wartości: CONTAINS_OFFERS
offers array<IdRef> wymagane

Najwyżej 1000 różnych ofert.

Pola obiektu
id string wymagane

Odpowiedzi

201 Wykonano. · CommandResult
id string · uuid zawsze

commandId (UUID).

taskCount object zawsze
Pola obiektu
total integer zawsze
success integer zawsze
failed integer zawsze
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ę).
409COMMAND_ID_CONFLICTTen commandId użyto w poleceniu innego rodzaju albo u innego sprzedawcy.
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).
422VALIDATION_ERRORZła wartość parametru zapytania (400) albo pola treści (422); path wskazuje miejsce.
429TOO_MANY_CONCURRENTZa dużo ciężkich operacji naraz (wsady, raporty, duże polecenia).
429TOO_MANY_REQUESTSPrzekroczony limit (minutowy, grupy operacji albo IP).
500INTERNAL_ERRORBłąd serwera allee.
Zakończenie oferty (END)
curl -sS -X PUT "${ALLEE_API_URL:-https://api.allee.pl}/sale/offer-publication-commands/c4ef5910-5a7e-4eec-bc50-54280523053e" \
  -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'
{
  "publication": {
    "action": "END"
  },
  "offerCriteria": [
    {
      "type": "CONTAINS_OFFERS",
      "offers": [
        {
          "id": "900000000000021"
        }
      ]
    }
  ]
}
JSON
Odpowiedź (środowisko testowe)
HTTP 201 application/vnd.allegro.public.v1+json
{
  "id": "c4ef5910-5a7e-4eec-bc50-54280523053e",
  "taskCount": {
    "total": 1,
    "success": 1,
    "failed": 0
  },
  "createdAt": "2026-11-10T11:10:04.445Z"
}
Przykład: Wznowienie oferty (ACTIVATE)
curl -sS -X PUT "${ALLEE_API_URL:-https://api.allee.pl}/sale/offer-publication-commands/4a962451-036c-48e0-8f59-bca89121ab73" \
  -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'
{
  "publication": {
    "action": "ACTIVATE"
  },
  "offerCriteria": [
    {
      "type": "CONTAINS_OFFERS",
      "offers": [
        {
          "id": "900000000000021"
        }
      ]
    }
  ]
}
JSON
HTTP 201 application/vnd.allegro.public.v1+json
{
  "id": "4a962451-036c-48e0-8f59-bca89121ab73",
  "taskCount": {
    "total": 1,
    "success": 1,
    "failed": 0
  },
  "createdAt": "2026-11-10T11:10:04.454Z"
}

Wynik polecenia publikacji (ACTIVATE / END)

GET /sale/offer-publication-commands/{commandId}

zgodna z Allegroallegro:api:sale:offers:readlimit: read

Podsumowanie polecenia (liczniki zadań).

Zgodność: zgodna z Allegro REST API (ten sam kształt) — GET /sale/offer-publication-commands/{commandId}.
Uprawnienie: zakres allegro:api:sale:offers:read.
Grupa limitu: read.

Parametry ścieżki

commandId string · uuid wymagany

Twój identyfikator polecenia (UUID) — powtórzony PUT zwraca zapisany wynik i niczego nie wykonuje drugi raz.

Odpowiedzi

200 Wynik. · CommandResult
id string · uuid zawsze

commandId (UUID).

taskCount object zawsze
Pola obiektu
total integer zawsze
success integer zawsze
failed integer zawsze
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}/sale/offer-publication-commands/c4ef5910-5a7e-4eec-bc50-54280523053e" \
  -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
{
  "id": "c4ef5910-5a7e-4eec-bc50-54280523053e",
  "taskCount": {
    "total": 1,
    "success": 1,
    "failed": 0
  },
  "createdAt": "2026-11-10T11:10:04.445Z"
}

Zadania polecenia publikacji (ACTIVATE / END)

GET /sale/offer-publication-commands/{commandId}/tasks

zgodna z Allegroallegro:api:sale:offers:readlimit: read

Wynik dla każdej oferty: SUCCESS albo FAIL z błędami.

Zgodność: zgodna z Allegro REST API (ten sam kształt) — GET /sale/offer-publication-commands/{commandId}/tasks.
Uprawnienie: zakres allegro:api:sale:offers:read.
Grupa limitu: read.

Parametry ścieżki

commandId string · uuid wymagany

Twój identyfikator polecenia (UUID) — powtórzony PUT zwraca zapisany wynik i niczego nie wykonuje drugi raz.

Parametry zapytania

offset integer

Ile pozycji pominąć.

limit integer

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

Odpowiedzi

200 Zadania. · CommandTaskList
tasks array<object> zawsze
Pola obiektu
offer IdRef zawsze

Odwołanie po identyfikatorze.

Pola obiektu
id string zawsze
status string zawsze
Wartości: SUCCESS, FAIL
message string zawsze
errors array<Error> zawsze
Pola obiektu
code string zawsze

Kod maszynowy błędu — na nim opieraj obsługę (lista: przewodnik „Błędy”).

message string zawsze

Opis dla programisty (po polsku).

details any zawsze

Dane dodatkowe albo null — np. id istniejącej oferty przy OfferDuplicate, {"current": "SENT"} przy błędzie statusu, {"retryAfterMs": 1200} przy limicie.

path string · null zawsze

Pole żądania, którego dotyczy błąd, np. productSet[0].product.parameters.

userMessage string zawsze

Komunikat, który można pokazać sprzedawcy.

finishedAt string · date-time 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ę).
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}/sale/offer-publication-commands/c4ef5910-5a7e-4eec-bc50-54280523053e/tasks" \
  -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
{
  "tasks": [
    {
      "offer": {
        "id": "900000000000021"
      },
      "status": "SUCCESS",
      "message": "Oferta zakończona.",
      "errors": [],
      "finishedAt": "2026-11-10T11:10:04.445Z"
    }
  ]
}

Wsad cen i stanów (kształt Allegro)

POST /sale/offer-bulk-modification-commands

tylko alleeallegro:api:sale:offers:writelimit: bulk

Ceny i liczby sztuk wielu ofert (do 10 000) w kształcie zbliżonym do poleceń Allegro: ofertę wskazujesz przez id albo external.id (SKU). Pod spodem to wsad PARTIAL_UPDATE — odpowiedź jak POST /allee/feeds.

Zgodność: tylko allee — allee: alias wsadu JSON_LISTINGS_FEED.
Uprawnienie: zakres allegro:api:sale:offers:write.
Grupa limitu: bulk.

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

offers array<object> wymagane

Do 10 000 pozycji.

Pola obiektu
id string

Id oferty.

external object
Pola obiektu
id string wymagane

SKU.

sellingMode object
Pola obiektu
price MoneyInput wymagane

Kwota w żądaniu.

Pola obiektu
amount string|number wymagane

Kwota jako tekst „123.45” (zalecane) albo liczba.

currency string

Waluta: tylko PLN (domyślnie PLN).

Wartości: PLN
stock object
Pola obiektu
available integer wymagane

Odpowiedzi

202 Przyjęto. · Feed
feedId string · uuid zawsze
feedType string zawsze
Wartości: JSON_LISTINGS_FEED
marketplaceIds array<string> zawsze
createdTime string · date-time zawsze
processingStatus string zawsze
Wartości: IN_QUEUE, IN_PROGRESS, DONE, CANCELLED, FATAL
processingStartTime string · date-time · null zawsze
processingEndTime string · date-time · null zawsze
resultFeedDocumentId string · null zawsze

Gdy DONE: wynik pod GET /allee/feeds/{feedId}/result.

allee object zawsze
Pola obiektu
source string zawsze

Skąd wsad: treść żądania, dokument, polecenie wsadowe Allegro.

Wartości: INLINE, DOKUMENT, POLECENIE
messages object zawsze
Pola obiektu
total integer zawsze
processed integer zawsze
accepted integer zawsze
invalid integer zawsze
withWarnings integer zawsze
fatalError string · null zawsze

Powód przerwania całego wsadu (FATAL).

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ę).
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_CONCURRENTZa dużo ciężkich operacji naraz (wsady, raporty, duże polecenia).
429TOO_MANY_REQUESTSPrzekroczony limit (minutowy, grupy operacji albo IP).
500INTERNAL_ERRORBłąd serwera allee.
503NOT_DEPLOYEDFunkcja jeszcze nie uruchomiona (np. sandbox, wsady).
503QUEUE_UNAVAILABLEKolejka wsadów chwilowo nie działa.
Przykład
curl -sS -X POST "${ALLEE_API_URL:-https://api.allee.pl}/sale/offer-bulk-modification-commands" \
  -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'
{
  "offers": [
    {
      "external": {
        "id": "FILM-21ef85-5"
      },
      "sellingMode": {
        "price": {
          "amount": "39.90",
          "currency": "PLN"
        }
      },
      "stock": {
        "available": 20
      }
    },
    {
      "external": {
        "id": "FILM-21ef85-6"
      },
      "stock": {
        "available": 18
      }
    }
  ]
}
JSON
Odpowiedź (środowisko testowe)
HTTP 202 application/vnd.allegro.public.v1+json
{
  "feedId": "bc37f1f9-1e46-4824-a7e1-3e298893f79e",
  "feedType": "JSON_LISTINGS_FEED",
  "marketplaceIds": [
    "allee-pl"
  ],
  "createdTime": "2026-11-10T11:10:05.392Z",
  "processingStatus": "DONE",
  "processingStartTime": "2026-11-10T11:10:05.397Z",
  "processingEndTime": "2026-11-10T11:10:05.404Z",
  "resultFeedDocumentId": "bc37f1f9-1e46-4824-a7e1-3e298893f79e",
  "allee": {
    "source": "POLECENIE",
    "messages": {
      "total": 2,
      "processed": 2,
      "accepted": 2,
      "invalid": 0,
      "withWarnings": 0
    },
    "fatalError": null
  }
}