Przejdź do treści

Wątki wiadomości

GET /messaging/threads

Allegro + rozszerzeniaallegro:api:messaging:readlimit: read

Rozmowy z kupującymi (pytania o oferty, zamówienia, zwroty), najnowsza pierwsza. Reklamacje i dyskusje są w /sale/issues/{id}/chat.

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

Parametry zapytania

offset integer

Ile pozycji pominąć.

limit integer

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

Odpowiedzi

200 Wątki. · MessageThreadList
threads array<MessageThread> zawsze
Pola obiektu
id string zawsze
read boolean zawsze

Czy sprzedawca przeczytał.

lastMessageDateTime string · date-time · null zawsze
interlocutor object zawsze

Kupujący (login allee, bez e-maila).

Pola obiektu
login string · null zawsze
avatarUrl string · null zawsze
allee object zawsze
Pola obiektu
kind string zawsze
Wartości: QUESTION, ORDER, RETURN
subject string · null zawsze
unreadCount integer zawsze
order IdRef · null zawsze
Pola obiektu
id string zawsze
offer IdRef · null zawsze
Pola obiektu
id string zawsze
createdAt string · date-time zawsze
offset integer zawsze
limit 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}/messaging/threads?limit=20&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
{
  "threads": [
    {
      "id": "900000001",
      "read": false,
      "lastMessageDateTime": "2026-11-10T11:10:05.479Z",
      "interlocutor": {
        "login": "kupujacy_demo_4816f227",
        "avatarUrl": null
      },
      "allee": {
        "kind": "QUESTION",
        "subject": "Pytanie o ofertę",
        "unreadCount": 1,
        "order": null,
        "offer": {
          "id": "900000000000021"
        },
        "createdAt": "2026-11-10T11:10:05.478Z"
      }
    }
  ],
  "offset": 0,
  "limit": 20
}

Wątek

GET /messaging/threads/{threadId}

Allegro + rozszerzeniaallegro:api:messaging:readlimit: read

Jeden wątek. Cudzy i nieistniejący → ta sama odpowiedź 404.

Zgodność: zgodna z Allegro REST API, z rozszerzeniami allee (pola allee.*, alleeId) — GET /messaging/threads/{threadId}.
Uprawnienie: zakres allegro:api:messaging:read.
Grupa limitu: read.

Parametry ścieżki

threadId string wymagany

Identyfikator wątku.

Odpowiedzi

200 Wątek. · MessageThread
id string zawsze
read boolean zawsze

Czy sprzedawca przeczytał.

lastMessageDateTime string · date-time · null zawsze
interlocutor object zawsze

Kupujący (login allee, bez e-maila).

Pola obiektu
login string · null zawsze
avatarUrl string · null zawsze
allee object zawsze
Pola obiektu
kind string zawsze
Wartości: QUESTION, ORDER, RETURN
subject string · null zawsze
unreadCount integer zawsze
order IdRef · null zawsze
Pola obiektu
id string zawsze
offer IdRef · null zawsze
Pola obiektu
id string 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}/messaging/threads/900000001" \
  -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": "900000001",
  "read": false,
  "lastMessageDateTime": "2026-11-10T11:10:05.479Z",
  "interlocutor": {
    "login": "kupujacy_demo_4816f227",
    "avatarUrl": null
  },
  "allee": {
    "kind": "QUESTION",
    "subject": "Pytanie o ofertę",
    "unreadCount": 1,
    "order": null,
    "offer": {
      "id": "900000000000021"
    },
    "createdAt": "2026-11-10T11:10:05.478Z"
  }
}

Oznaczenie wątku jako przeczytany

PUT /messaging/threads/{threadId}/read

zgodna z Allegroallegro:api:messaging:writelimit: write

Tylko {"read": true}.

Zgodność: zgodna z Allegro REST API (ten sam kształt) — PUT /messaging/threads/{threadId}/read.
Uprawnienie: zakres allegro:api:messaging:write.
Grupa limitu: write.

Parametry ścieżki

threadId string wymagany

Identyfikator wątku.

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

read boolean wymagane
Wartości: true

Odpowiedzi

200 Wątek. · MessageThread
id string zawsze
read boolean zawsze

Czy sprzedawca przeczytał.

lastMessageDateTime string · date-time · null zawsze
interlocutor object zawsze

Kupujący (login allee, bez e-maila).

Pola obiektu
login string · null zawsze
avatarUrl string · null zawsze
allee object zawsze
Pola obiektu
kind string zawsze
Wartości: QUESTION, ORDER, RETURN
subject string · null zawsze
unreadCount integer zawsze
order IdRef · null zawsze
Pola obiektu
id string zawsze
offer IdRef · null zawsze
Pola obiektu
id string 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).
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 PUT "${ALLEE_API_URL:-https://api.allee.pl}/messaging/threads/900000001/read" \
  -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'
{
  "read": true
}
JSON
Odpowiedź (środowisko testowe)
HTTP 200 application/vnd.allegro.public.v1+json
{
  "id": "900000001",
  "read": true,
  "lastMessageDateTime": "2026-11-10T11:10:05.492Z",
  "interlocutor": {
    "login": "kupujacy_demo_4816f227",
    "avatarUrl": null
  },
  "allee": {
    "kind": "QUESTION",
    "subject": "Pytanie o ofertę",
    "unreadCount": 0,
    "order": null,
    "offer": {
      "id": "900000000000021"
    },
    "createdAt": "2026-11-10T11:10:05.478Z"
  }
}

Wiadomości wątku

GET /messaging/threads/{threadId}/messages

Allegro + rozszerzeniaallegro:api:messaging:readlimit: read

Najnowsza pierwsza.

Zgodność: zgodna z Allegro REST API, z rozszerzeniami allee (pola allee.*, alleeId) — GET /messaging/threads/{threadId}/messages.
Uprawnienie: zakres allegro:api:messaging:read.
Grupa limitu: read.

Parametry ścieżki

threadId string wymagany

Identyfikator wątku.

Parametry zapytania

offset integer

Ile pozycji pominąć.

limit integer

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

before string · date-time

Wysłane przed.

after string · date-time

Wysłane po.

Odpowiedzi

200 Wiadomości. · MessageList
messages array<Message> zawsze
Pola obiektu
id string zawsze
status string zawsze
Wartości: DELIVERED
type string zawsze
Wartości: ASK_QUESTION, MESSAGE_CENTER
createdAt string · date-time zawsze
thread IdRef zawsze

Odwołanie po identyfikatorze.

Pola obiektu
id string zawsze
author object zawsze
Pola obiektu
login string zawsze
isInterlocutor boolean zawsze

true = napisał kupujący.

text string zawsze
subject string · null zawsze
relatesTo object zawsze
Pola obiektu
offer IdRef · null zawsze
Pola obiektu
id string zawsze
order IdRef · null zawsze
Pola obiektu
id string zawsze
hasAdditionalAttachments boolean zawsze
attachments array<object> zawsze

Zawsze puste (allee bez załączników).

allee object zawsze
Pola obiektu
sender string zawsze
Wartości: BUYER, SELLER, SYSTEM
reported boolean zawsze

Zgłoszona do moderacji.

offset integer zawsze
limit 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ę).
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}/messaging/threads/900000001/messages?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
{
  "messages": [
    {
      "id": "900000001",
      "status": "DELIVERED",
      "type": "ASK_QUESTION",
      "createdAt": "2026-11-10T11:10:05.479Z",
      "thread": {
        "id": "900000001"
      },
      "author": {
        "login": "kupujacy_demo_4816f227",
        "isInterlocutor": true
      },
      "text": "Czy płyta ma polski lektor?",
      "subject": null,
      "relatesTo": {
        "offer": {
          "id": "900000000000021"
        },
        "order": null
      },
      "hasAdditionalAttachments": false,
      "attachments": [],
      "allee": {
        "sender": "BUYER",
        "reported": false
      }
    }
  ],
  "offset": 0,
  "limit": 20
}

Odpowiedź w wątku

POST /messaging/threads/{threadId}/messages

zgodna z Allegroallegro:api:messaging:writelimit: write

Wysłanie odpowiedzi oznacza wątek jako przeczytany.

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 /messaging/threads/{threadId}/messages.
Uprawnienie: zakres allegro:api:messaging:write.
Grupa limitu: write.

Parametry ścieżki

threadId string wymagany

Identyfikator wątku.

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

text string wymagane

Treść (bez linków zewnętrznych; limit 20 wiadomości na godzinę).

attachments array<object>

Tylko pusta lista.

Odpowiedzi

201 Wysłano. · Message
id string zawsze
status string zawsze
Wartości: DELIVERED
type string zawsze
Wartości: ASK_QUESTION, MESSAGE_CENTER
createdAt string · date-time zawsze
thread IdRef zawsze

Odwołanie po identyfikatorze.

Pola obiektu
id string zawsze
author object zawsze
Pola obiektu
login string zawsze
isInterlocutor boolean zawsze

true = napisał kupujący.

text string zawsze
subject string · null zawsze
relatesTo object zawsze
Pola obiektu
offer IdRef · null zawsze
Pola obiektu
id string zawsze
order IdRef · null zawsze
Pola obiektu
id string zawsze
hasAdditionalAttachments boolean zawsze
attachments array<object> zawsze

Zawsze puste (allee bez załączników).

allee object zawsze
Pola obiektu
sender string zawsze
Wartości: BUYER, SELLER, SYSTEM
reported boolean zawsze

Zgłoszona do moderacji.

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.
422ATTACHMENTS_NOT_SUPPORTEDallee nie przyjmuje załączników w wiadomościach.
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}/messaging/threads/900000001/messages" \
  -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'
{
  "text": "Dzień dobry, tak — wydanie ma polskiego lektora i napisy."
}
JSON
Odpowiedź (środowisko testowe)
HTTP 201 application/vnd.allegro.public.v1+json
{
  "id": "900000002",
  "status": "DELIVERED",
  "type": "ASK_QUESTION",
  "createdAt": "2026-11-10T11:10:05.492Z",
  "thread": {
    "id": "900000001"
  },
  "author": {
    "login": "sklep_przykladowy_0e60e9",
    "isInterlocutor": false
  },
  "text": "Dzień dobry, tak — wydanie ma polskiego lektora i napisy.",
  "subject": null,
  "relatesTo": {
    "offer": {
      "id": "900000000000021"
    },
    "order": null
  },
  "hasAdditionalAttachments": false,
  "attachments": [],
  "allee": {
    "sender": "SELLER",
    "reported": false
  }
}

Nowa rozmowa w sprawie zamówienia

POST /messaging/messages

Allegro + rozszerzeniaallegro:api:messaging:writelimit: write

Na allee.pl sprzedawca zaczyna rozmowę tylko w sprawie zamówienia allee.pl (order.id). Najwyżej 5 nowych rozmów na dobę (429 THREAD_LIMIT).

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, z rozszerzeniami allee (pola allee.*, alleeId) — POST /messaging/messages.
Uprawnienie: zakres allegro:api:messaging:write.
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

text string wymagane
order IdRef wymagane

Zamówienie allee.pl (checkoutForm.id) — nową rozmowę sprzedawca zaczyna tylko w sprawie zamówienia.

Pola obiektu
id string wymagane
recipient object
Pola obiektu
login string wymagane

Login kupującego (sprawdzany).

attachments array<object>

Odpowiedzi

201 Wysłano. · Message
id string zawsze
status string zawsze
Wartości: DELIVERED
type string zawsze
Wartości: ASK_QUESTION, MESSAGE_CENTER
createdAt string · date-time zawsze
thread IdRef zawsze

Odwołanie po identyfikatorze.

Pola obiektu
id string zawsze
author object zawsze
Pola obiektu
login string zawsze
isInterlocutor boolean zawsze

true = napisał kupujący.

text string zawsze
subject string · null zawsze
relatesTo object zawsze
Pola obiektu
offer IdRef · null zawsze
Pola obiektu
id string zawsze
order IdRef · null zawsze
Pola obiektu
id string zawsze
hasAdditionalAttachments boolean zawsze
attachments array<object> zawsze

Zawsze puste (allee bez załączników).

allee object zawsze
Pola obiektu
sender string zawsze
Wartości: BUYER, SELLER, SYSTEM
reported boolean zawsze

Zgłoszona do moderacji.

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.
422CARD_DATATreść wygląda na dane karty płatniczej.
422CHANNEL_MESSAGINGZamówienie z innego kanału sprzedaży.
422EXTERNAL_LINKTreść zawiera link spoza allee.pl.
422JsonMappingExceptionTreść nie jest poprawnym JSON albo ma zły kształt (np. images jako obiekty).
422ORDER_REQUIREDNową rozmowę sprzedawca zaczyna tylko w sprawie zamówienia.
422PROFANITYWulgaryzmy.
422RECIPIENT_MISMATCHrecipient.login nie jest kupującym zamówienia.
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).
429THREAD_LIMIT5 nowych rozmów na dobę.
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}/messaging/messages" \
  -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'
{
  "recipient": {
    "login": "kupujacy_demo_4816f227"
  },
  "text": "Dziękujemy za zamówienie — wyślemy je dziś.",
  "order": {
    "id": "432810d0-4d26-4f39-ba5f-b89def4d4f92"
  }
}
JSON
Odpowiedź (środowisko testowe)
HTTP 201 application/vnd.allegro.public.v1+json
{
  "id": "900000003",
  "status": "DELIVERED",
  "type": "MESSAGE_CENTER",
  "createdAt": "2026-11-10T11:10:05.504Z",
  "thread": {
    "id": "900000002"
  },
  "author": {
    "login": "sklep_przykladowy_0e60e9",
    "isInterlocutor": false
  },
  "text": "Dziękujemy za zamówienie — wyślemy je dziś.",
  "subject": null,
  "relatesTo": {
    "offer": null,
    "order": {
      "id": "432810d0-4d26-4f39-ba5f-b89def4d4f92"
    }
  },
  "hasAdditionalAttachments": false,
  "attachments": [],
  "allee": {
    "sender": "SELLER",
    "reported": false
  }
}

Wiadomość

GET /messaging/messages/{messageId}

zgodna z Allegroallegro:api:messaging:readlimit: read

Jedna wiadomość (np. po powiadomieniu MESSAGE_RECEIVED).

Zgodność: zgodna z Allegro REST API (ten sam kształt) — GET /messaging/messages/{messageId}.
Uprawnienie: zakres allegro:api:messaging:read.
Grupa limitu: read.

Parametry ścieżki

messageId string wymagany

Identyfikator wiadomości.

Odpowiedzi

200 Wiadomość. · Message
id string zawsze
status string zawsze
Wartości: DELIVERED
type string zawsze
Wartości: ASK_QUESTION, MESSAGE_CENTER
createdAt string · date-time zawsze
thread IdRef zawsze

Odwołanie po identyfikatorze.

Pola obiektu
id string zawsze
author object zawsze
Pola obiektu
login string zawsze
isInterlocutor boolean zawsze

true = napisał kupujący.

text string zawsze
subject string · null zawsze
relatesTo object zawsze
Pola obiektu
offer IdRef · null zawsze
Pola obiektu
id string zawsze
order IdRef · null zawsze
Pola obiektu
id string zawsze
hasAdditionalAttachments boolean zawsze
attachments array<object> zawsze

Zawsze puste (allee bez załączników).

allee object zawsze
Pola obiektu
sender string zawsze
Wartości: BUYER, SELLER, SYSTEM
reported boolean zawsze

Zgłoszona do moderacji.

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}/messaging/messages/900000002" \
  -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": "900000002",
  "status": "DELIVERED",
  "type": "ASK_QUESTION",
  "createdAt": "2026-11-10T11:10:05.492Z",
  "thread": {
    "id": "900000001"
  },
  "author": {
    "login": "sklep_przykladowy_0e60e9",
    "isInterlocutor": false
  },
  "text": "Dzień dobry, tak — wydanie ma polskiego lektora i napisy.",
  "subject": null,
  "relatesTo": {
    "offer": {
      "id": "900000000000021"
    },
    "order": null
  },
  "hasAdditionalAttachments": false,
  "attachments": [],
  "allee": {
    "sender": "SELLER",
    "reported": false
  }
}

Załącznik wiadomości (nieobsługiwany)

POST /messaging/message-attachments

zgodna z Allegroallegro:api:messaging:writelimit: write

allee nie przyjmuje załączników w wiadomościach — zawsze 422 ATTACHMENTS_NOT_SUPPORTED. Trasa istnieje, by klient Allegro dostał czytelny błąd zamiast 404.

Zgodność: zgodna z Allegro REST API (ten sam kształt) — POST /messaging/message-attachments.
Uprawnienie: zakres allegro:api:messaging:write.
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

Typ: object

Odpowiedzi

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.
422ATTACHMENTS_NOT_SUPPORTEDallee nie przyjmuje załączników w wiadomościach.
422JsonMappingExceptionTreść nie jest poprawnym JSON albo ma zły kształt (np. images jako obiekty).
429TOO_MANY_REQUESTSPrzekroczony limit (minutowy, grupy operacji albo IP).
500INTERNAL_ERRORBłąd serwera allee.
Załączniki nie są obsługiwane (422)
curl -sS -X POST "${ALLEE_API_URL:-https://api.allee.pl}/messaging/message-attachments" \
  -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'
{
  "filename": "zdjecie.jpg",
  "size": 102400
}
JSON
Odpowiedź (środowisko testowe)
HTTP 422 application/vnd.allegro.public.v1+json
{
  "errors": [
    {
      "code": "ATTACHMENTS_NOT_SUPPORTED",
      "message": "allee nie przyjmuje załączników w wiadomościach — wyślij sam tekst.",
      "details": null,
      "path": null,
      "userMessage": "Załączniki w wiadomościach nie są dostępne na allee.pl."
    }
  ]
}