Przejdź do treści

Konto demo (sandbox)

GET /allee/sandbox

tylko alleelimit: read

Przy pierwszym żądaniu klucza testowego powstaje konto demo: 20 aktywnych ofert, cennik, warunki, GPSR i kupujący demo. Tu dostajesz ich identyfikatory — gotowe do przykładów.

Działa wyłącznie kluczem testowym (allee_sk_test_…) — klucz produkcyjny dostaje 403 SANDBOX_ONLY. Dane są fikcyjne i oddzielone od produkcji (osobna baza); odpowiedzi mają nagłówek X-Allee-Mode: test.

Zgodność: tylko allee — static sandbox (wariant prosty).
Uprawnienie: dowolny ważny token lub klucz.
Grupa limitu: read.

Odpowiedzi

200 Konto demo. · SandboxSummary
mode string zawsze
Wartości: test
seller IdRef zawsze

Odwołanie po identyfikatorze.

Pola obiektu
id string zawsze
buyer IdRef · null zawsze

Kupujący demo (fikcyjny).

Pola obiektu
id string zawsze
createdAt string · date-time · null zawsze
dataVersion integer zawsze

Wersja danych demo.

offers object zawsze
Pola obiektu
active integer zawsze
total integer zawsze
sampleOfferId string · null zawsze

Przykładowa aktywna oferta demo — do symulatora zamówień.

shippingRates object zawsze

Cennik demo.

Pola obiektu
id string · null zawsze
returnPolicy object zawsze
Pola obiektu
id string · null zawsze
impliedWarranty object zawsze
Pola obiektu
id string · null zawsze
warranty object zawsze
Pola obiektu
id string · null zawsze
responsibleProducer object zawsze
Pola obiektu
id string · null zawsze
responsiblePerson object zawsze
Pola obiektu
id string · null zawsze
simulator object zawsze

Trasy symulatora.

Pola obiektu
orders string zawsze
returns string zawsze
messages string zawsze

Błędy

HTTPKodZnaczenie
401invalid_tokenBrak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate).
403ACCOUNT_INACTIVEKonto sprzedawcy jest nieaktywne.
403AccessDeniedBrak zakresu albo zasób innego sprzedawcy.
403KEY_QUARANTINEDKwarantanna: działa tylko odczyt (wykryto nietypowe użycie).
403KEY_SUSPENDEDKlucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę).
403SANDBOX_ONLYSymulator sandboxu wywołany kluczem produkcyjnym.
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/sandbox" \
  -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
{
  "mode": "test",
  "seller": {
    "id": "980000001"
  },
  "buyer": {
    "id": "4000000001"
  },
  "createdAt": "2026-11-10T11:10:02.000Z",
  "dataVersion": 1,
  "offers": {
    "active": 20,
    "total": 20,
    "sampleOfferId": "900000000000001"
  },
  "shippingRates": {
    "id": "154985df-0580-4e6e-91a3-7b23608beb41"
  },
  "returnPolicy": {
    "id": "42133d83-0ba2-472e-9f21-25f2c35b69e4"
  },
  "impliedWarranty": {
    "id": "eab748ba-c9ec-444f-8f18-eb3b4174ebca"
  },
  "warranty": {
    "id": "e0b5c0de-c9d1-4be5-a5be-595e95db67ad"
  },
  "responsibleProducer": {
    "id": "e157086a-a704-46a9-8922-770c82c9a7d6"
  },
  "responsiblePerson": {
    "id": "30c5cc4a-ff63-4507-8c9c-e9410008b8f0"
  },
  "simulator": {
    "orders": "POST /allee/sandbox/orders",
    "returns": "POST /allee/sandbox/returns",
    "messages": "POST /allee/sandbox/messages"
  }
}

Symulacja zamówienia kupującego

POST /allee/sandbox/orders

tylko alleeallegro:api:orders:writelimit: write

Kupujący demo kupuje Twoją ofertę z sandboxu. Zamówienie pojawia się w /order/checkout-forms, /order/events i w powiadomieniach ORDER_CHANGE. Zakres orders:write.

Działa wyłącznie kluczem testowym (allee_sk_test_…) — klucz produkcyjny dostaje 403 SANDBOX_ONLY. Dane są fikcyjne i oddzielone od produkcji (osobna baza); odpowiedzi mają nagłówek X-Allee-Mode: test.

Zgodność: tylko allee — Allegro sandbox: zamówienie testowe.
Uprawnienie: zakres allegro:api:orders: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

offerId string wymagane

Oferta konta demo (np. offers.sampleOfferId z GET /allee/sandbox).

quantity integer

1–100.

paymentType string
Wartości: ONLINE, CASH_ON_DELIVERY
status string

Do którego etapu doprowadzić zakup.

Wartości: BOUGHT, FILLED_IN, READY_FOR_PROCESSING
deliveryMethodId string

Metoda dostawy ze słownika.

invoice boolean

Kupujący chce faktury (NIP).

messageToSeller string

Odpowiedzi

201 Zamówienie (jak GET /order/checkout-forms/{id}). · CheckoutForm
id string · uuid zawsze

Identyfikator zamówienia (checkoutForm.id).

status string zawsze

Status zakupu. API pokazuje zamówienia od READY_FOR_PROCESSING.

Wartości: BOUGHT, FILLED_IN, READY_FOR_PROCESSING, CANCELLED
updatedAt string · date-time zawsze
revision string zawsze

Rewizja (tekst) — rośnie przy każdej zmianie statusu; podaj w PUT …/fulfillment?checkoutForm.revision.

marketplace object zawsze
Pola obiektu
id string zawsze
Wartości: allee-pl
messageToSeller string · null zawsze

Wiadomość kupującego do sprzedawcy.

buyer object zawsze
Pola obiektu
id string zawsze
email string · null zawsze

E-mail kupującego (null bez zakresu allee:api:orders:pii dla nowych aplikacji).

login string zawsze
firstName string · null zawsze

Zawsze null — imię i nazwisko odbiorcy są w delivery.address.

lastName string · null zawsze
companyName string · null zawsze
phoneNumber string · null zawsze
guest boolean zawsze
payment object zawsze
Pola obiektu
id string · null zawsze
type string zawsze
Wartości: ONLINE, CASH_ON_DELIVERY
provider string · null zawsze
finishedAt string · date-time · null zawsze
paidAmount Money · null zawsze

Zapłacono (płatność online); null przy pobraniu.

Pola obiektu
amount string zawsze

Kwota z dwoma miejscami po przecinku, kropka dziesiętna.

currency string zawsze

Waluta (allee.pl: tylko PLN).

Wartości: PLN
fulfillment object zawsze
Pola obiektu
status FulfillmentStatus zawsze

Status realizacji (tylko do przodu).

Wartości: NEW, PROCESSING, READY_FOR_SHIPMENT, READY_FOR_PICKUP, SENT, PICKED_UP, CANCELLED, SUSPENDED, RETURNED
shipmentSummary object zawsze
Pola obiektu
lineItemsSent string zawsze
Wartości: NONE, SOME, ALL
delivery object zawsze
Pola obiektu
method object zawsze
Pola obiektu
id string · null zawsze
name string zawsze
address object · null zawsze

Adres dostawy (dane osobowe — patrz zakres orders:pii).

Pola obiektu
firstName string · null zawsze
lastName string · null zawsze
street string · null zawsze
city string · null zawsze
zipCode string · null zawsze
countryCode string · null zawsze
companyName string · null zawsze
phoneNumber string · null zawsze
pickupPoint object · null zawsze

Punkt odbioru (dziś zawsze null).

cost Money zawsze

Koszt dostawy zapłacony przez kupującego.

Pola obiektu
amount string zawsze

Kwota z dwoma miejscami po przecinku, kropka dziesiętna.

currency string zawsze

Waluta (allee.pl: tylko PLN).

Wartości: PLN
time object · null zawsze
smart boolean zawsze
calculatedNumberOfPackages integer zawsze
invoice object zawsze
Pola obiektu
required boolean zawsze

Czy kupujący chce faktury (podał NIP).

address object · null zawsze

Dane do faktury (od 10.11 z adresem siedziby).

Pola obiektu
street string · null

Ulica i numer (zerowane bez dostępu do danych kupujących).

city string · null
zipCode string · null
countryCode string · null
company object zawsze
Pola obiektu
name string · null zawsze
taxId string · null zawsze
lineItems array<CheckoutFormLineItem> zawsze
Pola obiektu
id string · uuid zawsze
offer object zawsze
Pola obiektu
id string zawsze
name string zawsze
external object · null zawsze
Pola obiektu
id string zawsze
quantity integer zawsze
originalPrice Money zawsze

Cena sprzed obniżki (Omnibus) albo równa price.

Pola obiektu
amount string zawsze

Kwota z dwoma miejscami po przecinku, kropka dziesiętna.

currency string zawsze

Waluta (allee.pl: tylko PLN).

Wartości: PLN
price Money zawsze

Cena jednostkowa zapłacona.

Pola obiektu
amount string zawsze

Kwota z dwoma miejscami po przecinku, kropka dziesiętna.

currency string zawsze

Waluta (allee.pl: tylko PLN).

Wartości: PLN
tax object · null zawsze

Stawka VAT z oferty.

Pola obiektu
rate string · null zawsze
boughtAt string · date-time zawsze
summary object zawsze
Pola obiektu
totalToPay Money zawsze

Do zapłaty: produkty + dostawa.

Pola obiektu
amount string zawsze

Kwota z dwoma miejscami po przecinku, kropka dziesiętna.

currency string zawsze

Waluta (allee.pl: tylko PLN).

Wartości: PLN
allee object zawsze

Rozszerzenia allee (10.11.2026).

Pola obiektu
test boolean zawsze

Płatność testowa (payment.provider TEST_BLIK) — nie księgować.

commission object zawsze
Pola obiektu
amount string zawsze

Prowizja allee za zamówienie (dziś 0.00 — allee nie pobiera prowizji).

currency string zawsze
rate string zawsze

Stawka w procentach, np. „0.00”.

base string zawsze

Podstawa: cena × sztuki pozycji, bez kosztu dostawy.

Wartości: PRODUCTS
final boolean zawsze

true = kwota już się nie zmieni.

priceListVersion string zawsze

Wersja cennika allee użyta do wyliczenia.

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ę).
403SANDBOX_ONLYSymulator sandboxu wywołany kluczem produkcyjnym.
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.
422DELIVERY_METHOD_NOT_FOUNDMetoda dostawy spoza słownika allee (path = pozycja).
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_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/sandbox/orders" \
  -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'
{
  "offerId": "900000000000021",
  "quantity": 2,
  "paymentType": "ONLINE",
  "invoice": true,
  "messageToSeller": "Proszę o staranne zapakowanie."
}
JSON
Odpowiedź (środowisko testowe)
HTTP 201 application/vnd.allegro.public.v1+json
{
  "id": "432810d0-4d26-4f39-ba5f-b89def4d4f92",
  "status": "READY_FOR_PROCESSING",
  "updatedAt": "2026-11-10T11:10:05.412Z",
  "revision": "3",
  "marketplace": {
    "id": "allee-pl"
  },
  "messageToSeller": "Proszę o staranne zapakowanie.",
  "buyer": {
    "id": "4000000001",
    "email": "[email protected]",
    "login": "kupujacy_demo_4816f227",
    "firstName": null,
    "lastName": null,
    "companyName": "Firma Przykładowa",
    "phoneNumber": "+48 500 000 000",
    "guest": false
  },
  "payment": {
    "id": "sandbox-9ba7f15b-69a9-43f0-96dd-6fa7cfffc7cc",
    "type": "ONLINE",
    "provider": "SANDBOX",
    "finishedAt": "2026-11-10T11:10:05.000Z",
    "paidAmount": {
      "amount": "98.79",
      "currency": "PLN"
    }
  },
  "fulfillment": {
    "status": "NEW",
    "shipmentSummary": {
      "lineItemsSent": "NONE"
    }
  },
  "delivery": {
    "method": {
      "id": "bd0e0bcb-10d1-4584-bf5b-ebd07a86e70f",
      "name": "InPost Paczkomat 24/7"
    },
    "address": {
      "firstName": "Jan",
      "lastName": "Przykładowy",
      "street": "ul. Przykładowa 1",
      "city": "Warszawa",
      "zipCode": "00-001",
      "countryCode": "PL",
      "companyName": "Firma Przykładowa",
      "phoneNumber": "+48 500 000 000"
    },
    "pickupPoint": null,
    "cost": {
      "amount": "12.99",
      "currency": "PLN"
    },
    "time": null,
    "smart": false,
    "calculatedNumberOfPackages": 1
  },
  "invoice": {
    "required": true,
    "address": {
      "street": null,
      "city": null,
      "zipCode": null,
      "countryCode": null,
      "company": {
        "name": "Firma Przykładowa",
        "taxId": "1234563218"
      }
    }
  },
  "lineItems": [
    {
      "id": "2d9680b4-9cb7-4096-9428-8c1ceb2790c2",
      "offer": {
        "id": "900000000000021",
        "name": "Podróż na Księżyc DVD wydanie kolekcjonerskie",
        "external": {
          "id": "FILM-21ef85-1"
        }
      },
      "quantity": 2,
      "originalPrice": {
        "amount": "44.90",
        "currency": "PLN"
      },
      "price": {
        "amount": "42.90",
        "currency": "PLN"
      },
      "tax": {
        "rate": "23.00"
      },
      "boughtAt": "2026-11-10T11:10:05.411Z"
    }
  ],
  "summary": {
    "totalToPay": {
      "amount": "98.79",
      "currency": "PLN"
    }
  },
  "allee": {
    "test": false,
    "commission": {
      "amount": "0.00",
      "currency": "PLN",
      "rate": "0.00",
      "base": "PRODUCTS",
      "final": true,
      "priceListVersion": "2026-11-09"
    }
  }
}
Przykład: Drugie zamówienie (pobranie)
curl -sS -X POST "${ALLEE_API_URL:-https://api.allee.pl}/allee/sandbox/orders" \
  -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'
{
  "offerId": "900000000000001",
  "quantity": 1,
  "paymentType": "CASH_ON_DELIVERY"
}
JSON
HTTP 201 application/vnd.allegro.public.v1+json
{
  "id": "718ce396-4940-431f-815e-7a51875c71df",
  "status": "READY_FOR_PROCESSING",
  "updatedAt": "2026-11-10T11:10:05.419Z",
  "revision": "3",
  "marketplace": {
    "id": "allee-pl"
  },
  "messageToSeller": null,
  "buyer": {
    "id": "4000000001",
    "email": "[email protected]",
    "login": "kupujacy_demo_4816f227",
    "firstName": null,
    "lastName": null,
    "companyName": null,
    "phoneNumber": "+48 500 000 000",
    "guest": false
  },
  "payment": {
    "id": null,
    "type": "CASH_ON_DELIVERY",
    "provider": null,
    "finishedAt": null,
    "paidAmount": null
  },
  "fulfillment": {
    "status": "NEW",
    "shipmentSummary": {
      "lineItemsSent": "NONE"
    }
  },
  "delivery": {
    "method": {
      "id": "b79ba3f7-7782-4521-b863-eae15c6f58a4",
      "name": "DHL POP (punkt odbioru)"
    },
    "address": {
      "firstName": "Jan",
      "lastName": "Przykładowy",
      "street": "ul. Przykładowa 1",
      "city": "Warszawa",
      "zipCode": "00-001",
      "countryCode": "PL",
      "companyName": null,
      "phoneNumber": "+48 500 000 000"
    },
    "pickupPoint": null,
    "cost": {
      "amount": "12.99",
      "currency": "PLN"
    },
    "time": null,
    "smart": false,
    "calculatedNumberOfPackages": 1
  },
  "invoice": {
    "required": false,
    "address": null
  },
  "lineItems": [
    {
      "id": "3ce60978-f8b3-45de-9a31-6bf12fdc1417",
      "offer": {
        "id": "900000000000001",
        "name": "Produkt demo 01 – Projekty wnętrz",
        "external": {
          "id": "DEMO-01"
        }
      },
      "quantity": 1,
      "originalPrice": {
        "amount": "19.99",
        "currency": "PLN"
      },
      "price": {
        "amount": "19.99",
        "currency": "PLN"
      },
      "tax": {
        "rate": "23.00"
      },
      "boughtAt": "2026-11-10T11:10:05.418Z"
    }
  ],
  "summary": {
    "totalToPay": {
      "amount": "32.98",
      "currency": "PLN"
    }
  },
  "allee": {
    "test": false,
    "commission": {
      "amount": "0.00",
      "currency": "PLN",
      "rate": "0.00",
      "base": "PRODUCTS",
      "final": true,
      "priceListVersion": "2026-11-09"
    }
  }
}

Symulacja zwrotu kupującego

POST /allee/sandbox/returns

tylko alleeallegro:api:orders:writelimit: write

Kupujący demo zgłasza zwrot zamówienia — wcześniej oznacz je jako wysłane (POST …/shipments + PUT …/fulfillment SENT), inaczej 422 ORDER_NOT_SENT.

Działa wyłącznie kluczem testowym (allee_sk_test_…) — klucz produkcyjny dostaje 403 SANDBOX_ONLY. Dane są fikcyjne i oddzielone od produkcji (osobna baza); odpowiedzi mają nagłówek X-Allee-Mode: test.

Zgodność: tylko allee — Allegro sandbox: zwrot testowy.
Uprawnienie: zakres allegro:api:orders: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

checkoutFormId string wymagane

Zamówienie wysłane (po SENT).

lineItems array<object>
Pola obiektu
id string wymagane
quantity integer
reason string

Powód z listy formularza zwrotu allee.pl (inna wartość = „Bez podania przyczyny”).

Wartości: Bez podania przyczyny, Nie spełnia oczekiwań, Zamówiłem przez pomyłkę, Znalazłem taniej, Inny wariant niż zamówiony, Inny powód

Odpowiedzi

201 Zwrot. · SandboxReturnCreated
id string zawsze
referenceNumber string zawsze
orderId string zawsze
status string zawsze
Wartości: CREATED

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ę).
403SANDBOX_ONLYSymulator sandboxu wywołany kluczem produkcyjnym.
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).
422ORDER_NOT_SENTSandbox: zwrot zamówienia, które nie było wysłane.
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.
503NOT_DEPLOYEDFunkcja jeszcze nie uruchomiona (np. sandbox, wsady).
Przykład
curl -sS -X POST "${ALLEE_API_URL:-https://api.allee.pl}/allee/sandbox/returns" \
  -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'
{
  "checkoutFormId": "432810d0-4d26-4f39-ba5f-b89def4d4f92",
  "reason": "Nie spełnia oczekiwań"
}
JSON
Odpowiedź (środowisko testowe)
HTTP 201 application/vnd.allegro.public.v1+json
{
  "id": "ZW-900000001",
  "referenceNumber": "ZW-900000001",
  "orderId": "432810d0-4d26-4f39-ba5f-b89def4d4f92",
  "status": "CREATED"
}
Przykład: wariant
curl -sS -X POST "${ALLEE_API_URL:-https://api.allee.pl}/allee/sandbox/returns" \
  -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'
{
  "checkoutFormId": "718ce396-4940-431f-815e-7a51875c71df",
  "reason": "Inny wariant niż zamówiony"
}
JSON
HTTP 201 application/vnd.allegro.public.v1+json
{
  "id": "ZW-900000002",
  "referenceNumber": "ZW-900000002",
  "orderId": "718ce396-4940-431f-815e-7a51875c71df",
  "status": "CREATED"
}

Symulacja wiadomości kupującego

POST /allee/sandbox/messages

tylko alleeallegro:api:messaginglimit: write

Pytanie kupującego demo o ofertę (offerId) albo wiadomość w sprawie zamówienia (checkoutFormId). Zakres messaging.

Działa wyłącznie kluczem testowym (allee_sk_test_…) — klucz produkcyjny dostaje 403 SANDBOX_ONLY. Dane są fikcyjne i oddzielone od produkcji (osobna baza); odpowiedzi mają nagłówek X-Allee-Mode: test.

Zgodność: tylko allee — Allegro sandbox: wiadomość testowa.
Uprawnienie: zakres allegro:api:messaging.
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
checkoutFormId string

Wiadomość w sprawie zamówienia…

offerId string

…albo pytanie o ofertę.

Odpowiedzi

201 Wiadomość. · SandboxMessageCreated
thread IdRef zawsze

Odwołanie po identyfikatorze.

Pola obiektu
id string zawsze
message IdRef zawsze

Odwołanie po identyfikatorze.

Pola obiektu
id string zawsze

Błędy

HTTPKodZnaczenie
401invalid_tokenBrak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate).
403ACCOUNT_INACTIVEKonto sprzedawcy jest nieaktywne.
403AccessDeniedBrak zakresu albo zasób innego sprzedawcy.
403KEY_QUARANTINEDKwarantanna: działa tylko odczyt (wykryto nietypowe użycie).
403KEY_SUSPENDEDKlucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę).
403SANDBOX_ONLYSymulator sandboxu wywołany kluczem produkcyjnym.
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).
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.
503NOT_DEPLOYEDFunkcja jeszcze nie uruchomiona (np. sandbox, wsady).
Przykład
curl -sS -X POST "${ALLEE_API_URL:-https://api.allee.pl}/allee/sandbox/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'
{
  "offerId": "900000000000021",
  "text": "Czy płyta ma polski lektor?"
}
JSON
Odpowiedź (środowisko testowe)
HTTP 201 application/vnd.allegro.public.v1+json
{
  "thread": {
    "id": "900000001"
  },
  "message": {
    "id": "900000001"
  }
}