Przejdź do treści

Zamówienie raportu

POST /allee/reports

wzór Amazon SP-APIallee:api:reportslimit: bulk

Raport przygotowywany w tle (CSV albo JSON, gzip). Typy i potrzebne zakresy: OFFERS_ALL, OFFERS_ISSUES (sale:offers:read), ORDERS_BY_DATE, RETURNS (orders:read + obsługa zamówień), BILLING_ENTRIES (billing:read), API_USAGE (tylko reports).

Okres domyślnie 30 dni, najwyżej 92. Dane osobowe kupujących tylko z allee:api:orders:pii. Do 5 raportów w kolejce. Koniec: GET /allee/reports/{id} albo powiadomienie REPORT_PROCESSING_FINISHED.

Zgodność: wzorowana na Amazon Selling Partner API — Reports — createReport.
Uprawnienie: zakres allee:api:reports.
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

reportType string wymagane
Wartości: OFFERS_ALL, OFFERS_ISSUES, ORDERS_BY_DATE, BILLING_ENTRIES, RETURNS, API_USAGE
dataStartTime string · date-time

Początek okresu (domyślnie 30 dni wstecz; najwyżej 92 dni).

dataEndTime string · date-time

Koniec okresu (domyślnie teraz).

reportOptions object
Pola obiektu
format string
Wartości: CSV, JSON
marketplaceIds array<string>

Odpowiedzi

202 Przyjęto. · Report
reportId string · uuid zawsze
reportType string zawsze
marketplaceIds array<string> zawsze
dataStartTime string · date-time · null zawsze
dataEndTime string · date-time · null 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
reportDocumentId string · null zawsze
allee object zawsze
Pola obiektu
format string zawsze
Wartości: CSV, JSON
rows integer · null zawsze

Liczba wierszy (gdy DONE).

personalData boolean zawsze

Czy raport zawiera dane osobowe kupujących (zakres orders:pii).

documentExpiresAt string · date-time · null zawsze

Dokument jest usuwany po 7 dniach.

error string · null 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ę).
403ORDERS_OWNED_BY_OTHER_INTEGRATIONZamówienia sprzedawcy obsługuje inna integracja (details.owner).
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).
Przykład
curl -sS -X POST "${ALLEE_API_URL:-https://api.allee.pl}/allee/reports" \
  -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'
{
  "reportType": "OFFERS_ALL",
  "reportOptions": {
    "format": "CSV"
  }
}
JSON
Odpowiedź (środowisko testowe)
HTTP 202 application/vnd.allegro.public.v1+json
{
  "reportId": "75a25ea7-2e91-4f0b-9042-a3c733f9a492",
  "reportType": "OFFERS_ALL",
  "marketplaceIds": [
    "allee-pl"
  ],
  "dataStartTime": null,
  "dataEndTime": null,
  "createdTime": "2026-11-10T11:10:05.616Z",
  "processingStatus": "IN_QUEUE",
  "processingStartTime": null,
  "processingEndTime": null,
  "reportDocumentId": null,
  "allee": {
    "format": "CSV",
    "rows": null,
    "personalData": false,
    "documentExpiresAt": null,
    "error": null
  }
}
Przykład: Raport zamówień z ostatnich 7 dni (JSON)
curl -sS -X POST "${ALLEE_API_URL:-https://api.allee.pl}/allee/reports" \
  -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'
{
  "reportType": "ORDERS_BY_DATE",
  "dataStartTime": "2026-11-03T00:00:00Z",
  "reportOptions": {
    "format": "JSON"
  }
}
JSON
HTTP 202 application/vnd.allegro.public.v1+json
{
  "reportId": "ee5a5bf7-694e-44bc-9900-05135ea9cf0c",
  "reportType": "ORDERS_BY_DATE",
  "marketplaceIds": [
    "allee-pl"
  ],
  "dataStartTime": "2026-11-03T00:00:00.000Z",
  "dataEndTime": "2026-11-10T11:10:05.000Z",
  "createdTime": "2026-11-10T11:10:05.621Z",
  "processingStatus": "IN_QUEUE",
  "processingStartTime": null,
  "processingEndTime": null,
  "reportDocumentId": null,
  "allee": {
    "format": "JSON",
    "rows": null,
    "personalData": true,
    "documentExpiresAt": null,
    "error": null
  }
}

Lista raportów

GET /allee/reports

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

Raporty tej aplikacji (klucza) u sprzedawcy, najnowsze pierwsze.

Zgodność: wzorowana na Amazon Selling Partner API — Reports — getReports.
Uprawnienie: zakres allee:api:reports.
Grupa limitu: read.

Parametry zapytania

reportTypes string

Typy rozdzielone przecinkiem.

processingStatuses string

Statusy rozdzielone przecinkiem.

pageSize integer

1–100.

nextToken string

Token następnej strony.

Odpowiedzi

200 Raporty. · ReportList
reports array<Report> zawsze
Pola obiektu
reportId string · uuid zawsze
reportType string zawsze
marketplaceIds array<string> zawsze
dataStartTime string · date-time · null zawsze
dataEndTime string · date-time · null 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
reportDocumentId string · null zawsze
allee object zawsze
Pola obiektu
format string zawsze
Wartości: CSV, JSON
rows integer · null zawsze

Liczba wierszy (gdy DONE).

personalData boolean zawsze

Czy raport zawiera dane osobowe kupujących (zakres orders:pii).

documentExpiresAt string · date-time · null zawsze

Dokument jest usuwany po 7 dniach.

error string · null zawsze
nextToken string · null 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}/allee/reports?reportTypes=OFFERS_ALL&pageSize=10" \
  -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
{
  "reports": [
    {
      "reportId": "75a25ea7-2e91-4f0b-9042-a3c733f9a492",
      "reportType": "OFFERS_ALL",
      "marketplaceIds": [
        "allee-pl"
      ],
      "dataStartTime": null,
      "dataEndTime": null,
      "createdTime": "2026-11-10T11:10:05.616Z",
      "processingStatus": "DONE",
      "processingStartTime": "2026-11-10T11:10:05.664Z",
      "processingEndTime": "2026-11-10T11:10:05.669Z",
      "reportDocumentId": "a6c80abf-5393-43af-b634-b9ec56eae431",
      "allee": {
        "format": "CSV",
        "rows": 25,
        "personalData": false,
        "documentExpiresAt": "2026-11-17T11:10:05.000Z",
        "error": null
      }
    }
  ],
  "nextToken": null
}

Raport

GET /allee/reports/{reportId}

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

Stan raportu.

Zgodność: wzorowana na Amazon Selling Partner API — Reports — getReport.
Uprawnienie: zakres allee:api:reports.
Grupa limitu: read.

Parametry ścieżki

reportId string · uuid wymagany

Identyfikator raportu.

Odpowiedzi

200 Raport. · Report
reportId string · uuid zawsze
reportType string zawsze
marketplaceIds array<string> zawsze
dataStartTime string · date-time · null zawsze
dataEndTime string · date-time · null 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
reportDocumentId string · null zawsze
allee object zawsze
Pola obiektu
format string zawsze
Wartości: CSV, JSON
rows integer · null zawsze

Liczba wierszy (gdy DONE).

personalData boolean zawsze

Czy raport zawiera dane osobowe kupujących (zakres orders:pii).

documentExpiresAt string · date-time · null zawsze

Dokument jest usuwany po 7 dniach.

error string · null zawsze

Błędy

HTTPKodZnaczenie
401invalid_tokenBrak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate).
403ACCOUNT_INACTIVEKonto sprzedawcy jest nieaktywne.
403AccessDeniedBrak zakresu albo zasób innego sprzedawcy.
403KEY_QUARANTINEDKwarantanna: działa tylko odczyt (wykryto nietypowe użycie).
403KEY_SUSPENDEDKlucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę).
404NOT_FOUNDNie ma takiego zasobu (albo należy do innego sprzedawcy — dla wątków, zwrotów i spraw odpowiedź jest ta sama).
429TOO_MANY_REQUESTSPrzekroczony limit (minutowy, grupy operacji albo IP).
500INTERNAL_ERRORBłąd serwera allee.
503NOT_DEPLOYEDFunkcja jeszcze nie uruchomiona (np. sandbox, wsady).
Przykład
curl -sS -X GET "${ALLEE_API_URL:-https://api.allee.pl}/allee/reports/75a25ea7-2e91-4f0b-9042-a3c733f9a492" \
  -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
{
  "reportId": "75a25ea7-2e91-4f0b-9042-a3c733f9a492",
  "reportType": "OFFERS_ALL",
  "marketplaceIds": [
    "allee-pl"
  ],
  "dataStartTime": null,
  "dataEndTime": null,
  "createdTime": "2026-11-10T11:10:05.616Z",
  "processingStatus": "IN_QUEUE",
  "processingStartTime": null,
  "processingEndTime": null,
  "reportDocumentId": null,
  "allee": {
    "format": "CSV",
    "rows": null,
    "personalData": false,
    "documentExpiresAt": null,
    "error": null
  }
}

Anulowanie raportu

DELETE /allee/reports/{reportId}

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

Tylko raport w kolejce (IN_QUEUE), inaczej 409.

Zgodność: wzorowana na Amazon Selling Partner API — Reports — cancelReport.
Uprawnienie: zakres allee:api:reports.
Grupa limitu: write.

Parametry ścieżki

reportId string · uuid wymagany

Identyfikator raportu.

Odpowiedzi

200 Anulowano. · Report
reportId string · uuid zawsze
reportType string zawsze
marketplaceIds array<string> zawsze
dataStartTime string · date-time · null zawsze
dataEndTime string · date-time · null 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
reportDocumentId string · null zawsze
allee object zawsze
Pola obiektu
format string zawsze
Wartości: CSV, JSON
rows integer · null zawsze

Liczba wierszy (gdy DONE).

personalData boolean zawsze

Czy raport zawiera dane osobowe kupujących (zakres orders:pii).

documentExpiresAt string · date-time · null zawsze

Dokument jest usuwany po 7 dniach.

error string · null zawsze

Błędy

HTTPKodZnaczenie
401invalid_tokenBrak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate).
403ACCOUNT_INACTIVEKonto sprzedawcy jest nieaktywne.
403AccessDeniedBrak zakresu albo zasób innego sprzedawcy.
403KEY_QUARANTINEDKwarantanna: działa tylko odczyt (wykryto nietypowe użycie).
403KEY_SUSPENDEDKlucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę).
404NOT_FOUNDNie ma takiego zasobu (albo należy do innego sprzedawcy — dla wątków, zwrotów i spraw odpowiedź jest ta sama).
409REPORT_NOT_CANCELLABLERaport nie jest już w kolejce.
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 DELETE "${ALLEE_API_URL:-https://api.allee.pl}/allee/reports/ee5a5bf7-694e-44bc-9900-05135ea9cf0c" \
  -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
{
  "reportId": "ee5a5bf7-694e-44bc-9900-05135ea9cf0c",
  "reportType": "ORDERS_BY_DATE",
  "marketplaceIds": [
    "allee-pl"
  ],
  "dataStartTime": "2026-11-03T00:00:00.000Z",
  "dataEndTime": "2026-11-10T11:10:05.000Z",
  "createdTime": "2026-11-10T11:10:05.621Z",
  "processingStatus": "CANCELLED",
  "processingStartTime": null,
  "processingEndTime": "2026-11-10T11:10:05.624Z",
  "reportDocumentId": null,
  "allee": {
    "format": "JSON",
    "rows": null,
    "personalData": true,
    "documentExpiresAt": null,
    "error": null
  }
}

Adres pobrania raportu

GET /allee/reports/{reportId}/document

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

Podpisany adres pliku (ważny 5 min, bez tokenu), plik w gzip. Raport z danymi osobowymi pobierze tylko dostęp z allee:api:orders:pii. Dokument jest usuwany po 7 dniach (410).

Zgodność: wzorowana na Amazon Selling Partner API — Reports — getReportDocument.
Uprawnienie: zakres allee:api:reports.
Grupa limitu: read.

Parametry ścieżki

reportId string · uuid wymagany

Identyfikator raportu.

Odpowiedzi

200 Adres. · ReportDocument
reportDocumentId string zawsze
url string · uri zawsze

Podpisany adres pobrania (ważny 5 minut, bez tokenu).

compressionAlgorithm string zawsze
Wartości: GZIP
contentType string zawsze
Wartości: text/csv, application/json
expiresAt 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).
409REPORT_NOT_READYRaport jeszcze nie gotowy.
410DOCUMENT_EXPIREDDokument raportu usunięty po 7 dniach.
429TOO_MANY_REQUESTSPrzekroczony limit (minutowy, grupy operacji albo IP).
500INTERNAL_ERRORBłąd serwera allee.
503NOT_DEPLOYEDFunkcja jeszcze nie uruchomiona (np. sandbox, wsady).
Przykład
curl -sS -X GET "${ALLEE_API_URL:-https://api.allee.pl}/allee/reports/75a25ea7-2e91-4f0b-9042-a3c733f9a492/document" \
  -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
{
  "reportDocumentId": "a6c80abf-5393-43af-b634-b9ec56eae431",
  "url": "https://api.allee.pl/allee/report-documents/a6c80abf-5393-43af-b634-b9ec56eae431/file?expires=1794309305&mode=test&signature=…",
  "compressionAlgorithm": "GZIP",
  "contentType": "text/csv",
  "expiresAt": "2026-11-10T11:15:05Z"
}

Pobranie pliku raportu (podpisany link)

GET /allee/report-documents/{reportDocumentId}/file

wzór Amazon SP-APIlimit: read

Adres z GET /allee/reports/{id}/document — bez tokenu. Po terminie → 403 LINK_EXPIRED_OR_INVALID. Treść: gzip (CSV albo JSON). Link z sandboxu ma dodatkowo mode=test (objęte podpisem) — pobierasz go tak samo; nie zmieniaj parametrów adresu.

Zgodność: wzorowana na Amazon Selling Partner API — pobranie dokumentu raportu z url.
Uwierzytelnienie: podpis w adresie (link ważny 5 minut) — bez tokenu.

Parametry ścieżki

reportDocumentId string · uuid wymagany

Identyfikator dokumentu.

Parametry zapytania

expires string wymagany

Z podpisanego adresu.

mode string

Z podpisanego adresu — tylko linki z sandboxu (objęte podpisem).

Wartości: test
signature string wymagany

Z podpisanego adresu.

Odpowiedzi

200 Plik gzip (Content-Disposition: attachment). · string · binary

Błędy

HTTPKodZnaczenie
403LINK_EXPIRED_OR_INVALIDPodpisany link wygasł (5 min) albo jest zmieniony.
404NOT_FOUNDNie ma takiego zasobu (albo należy do innego sprzedawcy — dla wątków, zwrotów i spraw odpowiedź jest ta sama).
500INTERNAL_ERRORBłąd serwera allee.
503STORAGE_UNAVAILABLEMagazyn plików chwilowo niedostępny.
Przykład
curl -sS -X GET "${ALLEE_API_URL:-https://api.allee.pl}/allee/report-documents/a6c80abf-5393-43af-b634-b9ec56eae431/file?expires=1794309305&mode=test&signature=…" \
  -H "Accept: application/gzip" \
  -o raport.csv.gz -w 'HTTP %{http_code}\n'
Odpowiedź (środowisko testowe)
HTTP 200 application/gzip
(plik raport.csv.gz: 1318 B, application/gzip)