Przejdź do treści

Reklamacje i dyskusje

GET /sale/issues

Allegro + rozszerzeniaallegro:api:disputes:readlimit: readBETA (Allegro)

Sprawy posprzedażowe. allee.responseDeadline = termin ustawowy (14 dni, art. 7a ustawy o prawach konsumenta) — brak odpowiedzi w terminie oznacza uznanie reklamacji.

Kupujący: id i login (bez danych kontaktowych).

Zgodność: zgodna z Allegro REST API, z rozszerzeniami allee (pola allee.*, alleeId) — GET /sale/issues (BETA).
Uprawnienie: zakres allegro:api:disputes:read.
Grupa limitu: read.

Parametry zapytania

offset integer

Ile pozycji pominąć.

limit integer

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

type string

Rodzaj.

Wartości: CLAIM, DISPUTE
status string

Status.

Wartości: CLAIM_SUBMITTED, CLAIM_ACCEPTED, CLAIM_REJECTED, DISPUTE_ONGOING, DISPUTE_CLOSED
checkoutForm.id string · uuid

Zamówienie.

createdAt.gte string · date-time

Od.

createdAt.lte string · date-time

Do.

Odpowiedzi

200 Sprawy. · IssueList
issues array<Issue> zawsze
Pola obiektu
id string zawsze

RK-… (reklamacja) albo DS-… (dyskusja).

type string zawsze
Wartości: CLAIM, DISPUTE
referenceNumber string zawsze
status string zawsze
Wartości: CLAIM_SUBMITTED, CLAIM_ACCEPTED, CLAIM_REJECTED, DISPUTE_ONGOING, DISPUTE_CLOSED
subject string zawsze
description string · null zawsze
buyer object zawsze
Pola obiektu
id string zawsze
login string · null zawsze
checkoutForm object zawsze
Pola obiektu
id string · null zawsze
createdAt string · date-time · null zawsze
offer IdRef · null zawsze
Pola obiektu
id string zawsze
expectations array<string> zawsze
Wartości: REPAIR, EXCHANGE, DIFFERENCE_REFUND, REFUND, OTHER
openedDate string · date-time zawsze
createdAt string · date-time zawsze
decisionDueDate string · date-time · null zawsze

Termin odpowiedzi (sprawa otwarta).

chat object zawsze
Pola obiektu
messagesCount integer zawsze
lastMessageDateTime string · date-time · null zawsze
allee object zawsze
Pola obiektu
responseDeadline string · date-time · null zawsze

Termin ustawowy (14 dni, art. 7a upk).

deadlinePassed boolean zawsze
legalBasis string · null zawsze
demand string · null zawsze

Żądanie kupującego.

result string · null zawsze
Wartości: ACCEPTED, REJECTED, RESOLVED, null
resolution string · null zawsze
closedAt string · date-time · null zawsze
count integer zawsze
totalCount 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.
503NOT_DEPLOYEDFunkcja jeszcze nie uruchomiona (np. sandbox, wsady).
Przykład
curl -sS -X GET "${ALLEE_API_URL:-https://api.allee.pl}/sale/issues?type=CLAIM&limit=50" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.beta.v1+json" \
  -w '\nHTTP %{http_code}\n'
Odpowiedź (środowisko testowe)
HTTP 200 application/vnd.allegro.beta.v1+json
{
  "issues": [
    {
      "id": "RK-900000001",
      "type": "CLAIM",
      "referenceNumber": "RK-900000001",
      "status": "CLAIM_SUBMITTED",
      "subject": "Reklamacja (niezgodność towaru z umową)",
      "description": "Płyta nie odtwarza się od 40. minuty filmu.",
      "buyer": {
        "id": "4000000001",
        "login": "kupujacy_demo_4816f227"
      },
      "checkoutForm": {
        "id": "432810d0-4d26-4f39-ba5f-b89def4d4f92",
        "createdAt": "2026-11-10T11:10:05.411Z"
      },
      "offer": {
        "id": "900000000000021"
      },
      "expectations": [
        "EXCHANGE"
      ],
      "openedDate": "2026-11-10T11:10:05.548Z",
      "createdAt": "2026-11-10T11:10:05.548Z",
      "decisionDueDate": "2026-11-24T11:10:05.000Z",
      "chat": {
        "messagesCount": 2,
        "lastMessageDateTime": "2026-11-10T11:10:05.549Z"
      },
      "allee": {
        "responseDeadline": "2026-11-24T11:10:05.000Z",
        "deadlinePassed": false,
        "legalBasis": "art. 7a ustawy o prawach konsumenta (14 dni)",
        "demand": "Wymiana na nowy",
        "result": null,
        "resolution": null,
        "closedAt": null
      }
    }
  ],
  "count": 1,
  "totalCount": 1
}

Sprawa

GET /sale/issues/{issueId}

Allegro + rozszerzeniaallegro:api:disputes:readlimit: readBETA (Allegro)

Reklamacja albo dyskusja.

Zgodność: zgodna z Allegro REST API, z rozszerzeniami allee (pola allee.*, alleeId) — GET /sale/issues/{issueId} (BETA).
Uprawnienie: zakres allegro:api:disputes:read.
Grupa limitu: read.

Parametry ścieżki

issueId string wymagany

Numer sprawy: RK-… (reklamacja) albo DS-… (dyskusja).

Odpowiedzi

200 Sprawa. · Issue
id string zawsze

RK-… (reklamacja) albo DS-… (dyskusja).

type string zawsze
Wartości: CLAIM, DISPUTE
referenceNumber string zawsze
status string zawsze
Wartości: CLAIM_SUBMITTED, CLAIM_ACCEPTED, CLAIM_REJECTED, DISPUTE_ONGOING, DISPUTE_CLOSED
subject string zawsze
description string · null zawsze
buyer object zawsze
Pola obiektu
id string zawsze
login string · null zawsze
checkoutForm object zawsze
Pola obiektu
id string · null zawsze
createdAt string · date-time · null zawsze
offer IdRef · null zawsze
Pola obiektu
id string zawsze
expectations array<string> zawsze
Wartości: REPAIR, EXCHANGE, DIFFERENCE_REFUND, REFUND, OTHER
openedDate string · date-time zawsze
createdAt string · date-time zawsze
decisionDueDate string · date-time · null zawsze

Termin odpowiedzi (sprawa otwarta).

chat object zawsze
Pola obiektu
messagesCount integer zawsze
lastMessageDateTime string · date-time · null zawsze
allee object zawsze
Pola obiektu
responseDeadline string · date-time · null zawsze

Termin ustawowy (14 dni, art. 7a upk).

deadlinePassed boolean zawsze
legalBasis string · null zawsze
demand string · null zawsze

Żądanie kupującego.

result string · null zawsze
Wartości: ACCEPTED, REJECTED, RESOLVED, null
resolution string · null zawsze
closedAt string · date-time · 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).
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/issues/RK-900000001" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.beta.v1+json" \
  -w '\nHTTP %{http_code}\n'
Odpowiedź (środowisko testowe)
HTTP 200 application/vnd.allegro.beta.v1+json
{
  "id": "RK-900000001",
  "type": "CLAIM",
  "referenceNumber": "RK-900000001",
  "status": "CLAIM_SUBMITTED",
  "subject": "Reklamacja (niezgodność towaru z umową)",
  "description": "Płyta nie odtwarza się od 40. minuty filmu.",
  "buyer": {
    "id": "4000000001",
    "login": "kupujacy_demo_4816f227"
  },
  "checkoutForm": {
    "id": "432810d0-4d26-4f39-ba5f-b89def4d4f92",
    "createdAt": "2026-11-10T11:10:05.411Z"
  },
  "offer": {
    "id": "900000000000021"
  },
  "expectations": [
    "EXCHANGE"
  ],
  "openedDate": "2026-11-10T11:10:05.548Z",
  "createdAt": "2026-11-10T11:10:05.548Z",
  "decisionDueDate": "2026-11-24T11:10:05.000Z",
  "chat": {
    "messagesCount": 2,
    "lastMessageDateTime": "2026-11-10T11:10:05.549Z"
  },
  "allee": {
    "responseDeadline": "2026-11-24T11:10:05.000Z",
    "deadlinePassed": false,
    "legalBasis": "art. 7a ustawy o prawach konsumenta (14 dni)",
    "demand": "Wymiana na nowy",
    "result": null,
    "resolution": null,
    "closedAt": null
  }
}

Rozmowa w sprawie

GET /sale/issues/{issueId}/chat

zgodna z Allegroallegro:api:disputes:readlimit: readBETA (Allegro)

Wiadomości sprawy, najstarsza pierwsza (do 200 ostatnich).

Zgodność: zgodna z Allegro REST API (ten sam kształt) — GET /sale/issues/{issueId}/chat (BETA).
Uprawnienie: zakres allegro:api:disputes:read.
Grupa limitu: read.

Parametry ścieżki

issueId string wymagany

Numer sprawy: RK-… (reklamacja) albo DS-… (dyskusja).

Odpowiedzi

200 Rozmowa. · IssueChat
chat array<IssueChatMessage> zawsze

Najstarsza pierwsza (do 200 ostatnich).

Pola obiektu
id string zawsze
text string zawsze
type string zawsze
Wartości: REGULAR
createdAt string · date-time zawsze
author object zawsze
Pola obiektu
login string zawsze
role string zawsze
Wartości: BUYER, SELLER, ADMIN
attachments array<object> zawsze
allee object zawsze
Pola obiektu
sender string zawsze
Wartości: BUYER, SELLER, SYSTEM

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/issues/RK-900000001/chat" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.beta.v1+json" \
  -w '\nHTTP %{http_code}\n'
Odpowiedź (środowisko testowe)
HTTP 200 application/vnd.allegro.beta.v1+json
{
  "chat": [
    {
      "id": "900000011",
      "text": "Kupujący złożył reklamację RK-900000001 (niezgodność towaru z umową). Żądanie: Wymiana na nowy. Sprzedawca odpowiada do 24.11.2026 — brak odpowiedzi w 14 dni oznacza uznanie reklamacji (art. 7a ustawy o prawach konsumenta).",
      "type": "REGULAR",
      "createdAt": "2026-11-10T11:10:05.549Z",
      "author": {
        "login": "allee",
        "role": "ADMIN"
      },
      "attachments": [],
      "allee": {
        "sender": "SYSTEM"
      }
    },
    {
      "id": "900000012",
      "text": "Opis kupującego: Płyta nie odtwarza się od 40. minuty filmu.",
      "type": "REGULAR",
      "createdAt": "2026-11-10T11:10:05.549Z",
      "author": {
        "login": "allee",
        "role": "ADMIN"
      },
      "attachments": [],
      "allee": {
        "sender": "SYSTEM"
      }
    }
  ]
}

Wiadomość w sprawie

POST /sale/issues/{issueId}/message

zgodna z Allegroallegro:api:disputes:writelimit: writeBETA (Allegro)

Sprawa pozostaje otwarta (zamknięcie: POST …/status).

Treść: bez linków zewnętrznych (422 EXTERNAL_LINK), filtr jak w panelu, najwyżej 20 wiadomości na godzinę wspólnie z panelem (429 MESSAGE_LIMIT). Bez załączników.

Zgodność: zgodna z Allegro REST API (ten sam kształt) — POST /sale/issues/{issueId}/message (BETA).
Uprawnienie: zakres allegro:api:disputes:write.
Grupa limitu: write.

Parametry ścieżki

issueId string wymagany

Numer sprawy: RK-… (reklamacja) albo DS-… (dyskusja).

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.beta.v1+json

text string wymagane
type string
Wartości: REGULAR
attachments array<object>

Odpowiedzi

201 Wysłano. · IssueChatMessage
id string zawsze
text string zawsze
type string zawsze
Wartości: REGULAR
createdAt string · date-time zawsze
author object zawsze
Pola obiektu
login string zawsze
role string zawsze
Wartości: BUYER, SELLER, ADMIN
attachments array<object> zawsze
allee object zawsze
Pola obiektu
sender string zawsze
Wartości: BUYER, SELLER, SYSTEM

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).
409NO_THREADSprawa nie ma rozmowy.
413PAYLOAD_TOO_LARGETreść żądania za duża (JSON 5 MB, faktura PDF 3 MB).
415UNSUPPORTED_MEDIA_TYPEZły Content-Type treści.
422CARD_DATATreść wygląda na dane karty płatniczej.
422EXTERNAL_LINKTreść zawiera link spoza allee.pl.
422JsonMappingExceptionTreść nie jest poprawnym JSON albo ma zły kształt (np. images jako obiekty).
422PROFANITYWulgaryzmy.
422SENSITIVE_REQUESTProśba o dane wrażliwe (hasła, dane logowania).
422TEXT_EMPTYPusta treść.
422TEXT_INVALIDTreść niedozwolona przez filtr.
422TEXT_TOO_LONGTreść za długa.
422VALIDATION_ERRORZła wartość parametru zapytania (400) albo pola treści (422); path wskazuje miejsce.
429BUSYTa sama operacja trwa równolegle.
429MESSAGE_LIMIT20 wiadomości na godzinę (wspólnie z panelem).
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}/sale/issues/RK-900000001/message" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.beta.v1+json" \
  -H "Content-Type: application/vnd.allegro.public.v1+json" \
  --data-binary @- \
  -w '\nHTTP %{http_code}\n' <<'JSON'
{
  "text": "Przepraszamy za kłopot. Prosimy odesłać płytę — wyślemy nowy egzemplarz.",
  "type": "REGULAR"
}
JSON
Odpowiedź (środowisko testowe)
HTTP 201 application/vnd.allegro.beta.v1+json
{
  "id": "900000015",
  "text": "Przepraszamy za kłopot. Prosimy odesłać płytę — wyślemy nowy egzemplarz.",
  "type": "REGULAR",
  "createdAt": "2026-11-10T11:10:05.563Z",
  "author": {
    "login": "sklep_przykladowy_0e60e9",
    "role": "SELLER"
  },
  "attachments": [],
  "allee": {
    "sender": "SELLER"
  }
}

Decyzja w sprawie

POST /sale/issues/{issueId}/status

Allegro + rozszerzeniaallegro:api:disputes:writelimit: writeBETA (Allegro)

Reklamacja: ACCEPTED (uznana) albo REJECTED (nieuznana). Dyskusja: RESOLVED. message = odpowiedź do kupującego (wymagana), solution = krótko, jak rozwiązano.

Po terminie ustawowym reklamację można już tylko uznać (409 DEADLINE_PASSED).

Zgodność: zgodna z Allegro REST API, z rozszerzeniami allee (pola allee.*, alleeId) — POST /sale/issues/{issueId}/status (BETA).
Uprawnienie: zakres allegro:api:disputes:write.
Grupa limitu: write.

Parametry ścieżki

issueId string wymagany

Numer sprawy: RK-… (reklamacja) albo DS-… (dyskusja).

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.beta.v1+json

status string wymagane

Reklamacja: ACCEPTED/REJECTED; dyskusja: RESOLVED.

Wartości: ACCEPTED, REJECTED, RESOLVED, CLAIM_ACCEPTED, CLAIM_REJECTED, DISPUTE_CLOSED
message string wymagane

Odpowiedź do kupującego (wymagana).

solution string

Krótko, jak rozwiązano (do 80 znaków).

Odpowiedzi

200 Sprawa po decyzji. · Issue
id string zawsze

RK-… (reklamacja) albo DS-… (dyskusja).

type string zawsze
Wartości: CLAIM, DISPUTE
referenceNumber string zawsze
status string zawsze
Wartości: CLAIM_SUBMITTED, CLAIM_ACCEPTED, CLAIM_REJECTED, DISPUTE_ONGOING, DISPUTE_CLOSED
subject string zawsze
description string · null zawsze
buyer object zawsze
Pola obiektu
id string zawsze
login string · null zawsze
checkoutForm object zawsze
Pola obiektu
id string · null zawsze
createdAt string · date-time · null zawsze
offer IdRef · null zawsze
Pola obiektu
id string zawsze
expectations array<string> zawsze
Wartości: REPAIR, EXCHANGE, DIFFERENCE_REFUND, REFUND, OTHER
openedDate string · date-time zawsze
createdAt string · date-time zawsze
decisionDueDate string · date-time · null zawsze

Termin odpowiedzi (sprawa otwarta).

chat object zawsze
Pola obiektu
messagesCount integer zawsze
lastMessageDateTime string · date-time · null zawsze
allee object zawsze
Pola obiektu
responseDeadline string · date-time · null zawsze

Termin ustawowy (14 dni, art. 7a upk).

deadlinePassed boolean zawsze
legalBasis string · null zawsze
demand string · null zawsze

Żądanie kupującego.

result string · null zawsze
Wartości: ACCEPTED, REJECTED, RESOLVED, null
resolution string · null zawsze
closedAt string · date-time · 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).
409DEADLINE_PASSEDPo terminie ustawowym reklamację można tylko uznać.
409ISSUE_ALREADY_CLOSEDSprawa już zamknięta.
413PAYLOAD_TOO_LARGETreść żądania za duża (JSON 5 MB, faktura PDF 3 MB).
415UNSUPPORTED_MEDIA_TYPEZły Content-Type treści.
422CARD_DATATreść wygląda na dane karty płatniczej.
422EXTERNAL_LINKTreść zawiera link spoza allee.pl.
422INVALID_STATUS_FOR_TYPEStatus nie pasuje do rodzaju sprawy.
422JsonMappingExceptionTreść nie jest poprawnym JSON albo ma zły kształt (np. images jako obiekty).
422PROFANITYWulgaryzmy.
422SENSITIVE_REQUESTProśba o dane wrażliwe (hasła, dane logowania).
422TEXT_EMPTYPusta treść.
422TEXT_INVALIDTreść niedozwolona przez filtr.
422TEXT_TOO_LONGTreść za długa.
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}/sale/issues/RK-900000001/status" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.beta.v1+json" \
  -H "Content-Type: application/vnd.allegro.public.v1+json" \
  --data-binary @- \
  -w '\nHTTP %{http_code}\n' <<'JSON'
{
  "status": "ACCEPTED",
  "message": "Reklamację uznajemy — nowy egzemplarz wyślemy po otrzymaniu płyty.",
  "solution": "Wymiana na nowy egzemplarz"
}
JSON
Odpowiedź (środowisko testowe)
HTTP 200 application/vnd.allegro.beta.v1+json
{
  "id": "RK-900000001",
  "type": "CLAIM",
  "referenceNumber": "RK-900000001",
  "status": "CLAIM_ACCEPTED",
  "subject": "Reklamacja (niezgodność towaru z umową)",
  "description": "Płyta nie odtwarza się od 40. minuty filmu.",
  "buyer": {
    "id": "4000000001",
    "login": "kupujacy_demo_4816f227"
  },
  "checkoutForm": {
    "id": "432810d0-4d26-4f39-ba5f-b89def4d4f92",
    "createdAt": "2026-11-10T11:10:05.411Z"
  },
  "offer": {
    "id": "900000000000021"
  },
  "expectations": [
    "EXCHANGE"
  ],
  "openedDate": "2026-11-10T11:10:05.548Z",
  "createdAt": "2026-11-10T11:10:05.548Z",
  "decisionDueDate": null,
  "chat": {
    "messagesCount": 5,
    "lastMessageDateTime": "2026-11-10T11:10:05.567Z"
  },
  "allee": {
    "responseDeadline": "2026-11-24T11:10:05.000Z",
    "deadlinePassed": false,
    "legalBasis": "art. 7a ustawy o prawach konsumenta (14 dni)",
    "demand": "Wymiana na nowy",
    "result": "ACCEPTED",
    "resolution": "Rozwiązanie: Wymiana na nowy egzemplarz.\nReklamację uznajemy — nowy egzemplarz wyślemy po otrzymaniu płyty.",
    "closedAt": "2026-11-10T11:10:05.566Z"
  }
}
Przykład: Zamknięcie dyskusji (RESOLVED)
curl -sS -X POST "${ALLEE_API_URL:-https://api.allee.pl}/sale/issues/DS-900000002/status" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.beta.v1+json" \
  -H "Content-Type: application/vnd.allegro.public.v1+json" \
  --data-binary @- \
  -w '\nHTTP %{http_code}\n' <<'JSON'
{
  "status": "RESOLVED",
  "message": "Wysłaliśmy nową płytę w wzmocnionym opakowaniu."
}
JSON
HTTP 200 application/vnd.allegro.beta.v1+json
{
  "id": "DS-900000002",
  "type": "DISPUTE",
  "referenceNumber": "DS-900000002",
  "status": "DISPUTE_CLOSED",
  "subject": "Problem z zamówieniem",
  "description": "Paczka dotarła uszkodzona, pudełko pęknięte.",
  "buyer": {
    "id": "4000000001",
    "login": "kupujacy_demo_4816f227"
  },
  "checkoutForm": {
    "id": "432810d0-4d26-4f39-ba5f-b89def4d4f92",
    "createdAt": "2026-11-10T11:10:05.411Z"
  },
  "offer": {
    "id": "900000000000021"
  },
  "expectations": [],
  "openedDate": "2026-11-10T11:10:05.550Z",
  "createdAt": "2026-11-10T11:10:05.550Z",
  "decisionDueDate": null,
  "chat": {
    "messagesCount": 4,
    "lastMessageDateTime": "2026-11-10T11:10:05.571Z"
  },
  "allee": {
    "responseDeadline": null,
    "deadlinePassed": false,
    "legalBasis": null,
    "demand": null,
    "result": "RESOLVED",
    "resolution": "Wysłaliśmy nową płytę w wzmocnionym opakowaniu.",
    "closedAt": "2026-11-10T11:10:05.570Z"
  }
}