Przejdź do treści
Dokumentacja w fazie alpha

Endpointy API

Lista dostępnych endpointów i przykładowe zapytania.

Ostatnia aktualizacja: 2026-07-03

Bazowy URL i dokumentacja interaktywna

Wszystkie endpointy są dostępne pod adresem https://app.bakepilot.pl/api/v1/. Odpowiedzi w formacie JSON (UTF-8), daty w formacie ISO 8601. Pełną, zawsze aktualną specyfikację z możliwością przetestowania na żywo znajdziesz pod adresem /api/v1/docs (Swagger), a maszynowy opis OpenAPI pod /api/v1/openapi.

  • Bazowy URL: https://app.bakepilot.pl/api/v1/
  • Dokumentacja interaktywna (Swagger): https://app.bakepilot.pl/api/v1/docs
  • Specyfikacja OpenAPI: https://app.bakepilot.pl/api/v1/openapi
  • Format: JSON, UTF-8, daty ISO 8601
Otwórz interaktywną dokumentację API (Swagger)

Zamówienia

GET /orders zwraca listę zamówień organizacji (parametr limit, domyślnie 50). POST /orders tworzy nowe zamówienie ze statusem 'roboczy'. Klient jest dopasowywany po numerze telefonu (lub tworzony automatycznie), więc nie musisz wcześniej zakładać klienta. Pozycje przekazujesz w polu items[] z nazwą produktu, ilością, ceną jednostkową i wartością pozycji.

  • GET /orders - lista zamówień (parametr limit)
  • POST /orders - utworzenie zamówienia (status: roboczy)
  • Wymagane: customer_name, pickup_date, items[] (min. 1)
  • Pozycja items[]: product_name, quantity, unit_price, total_price
  • Klient dopasowywany/tworzony automatycznie po telefonie

Pole product_id w pozycji jest opcjonalne - możesz wysłać samą nazwę produktu (product_name), gdy nie masz go w katalogu.

Klienci

GET /customers zwraca listę klientów organizacji. POST /customers dodaje klienta. Tworzenie jest idempotentne: jeśli istnieje już klient o tym samym telefonie, e-mailu lub NIP, zwracane jest jego id (pole deduplicated: true) zamiast tworzenia duplikatu - chyba że dodasz parametr ?force=true.

  • GET /customers - lista klientów (parametr limit)
  • POST /customers - dodanie klienta
  • Wymagane: first_name, last_name
  • Dedup po telefonie, e-mailu lub NIP (bez duplikatów)

Produkty

GET /products zwraca katalog produktów organizacji (domyślnie tylko aktywne; parametr active=false pokazuje wszystkie). Przydatne do mapowania nazw na product_id, jeśli chcesz powiązać pozycje zamówienia z katalogiem. Endpointy faktur na razie nie są częścią publicznego API - faktury obsługujesz w panelu.

  • GET /products - katalog produktów (parametr limit, active)
  • Zwraca m.in. id, name, unit_price, category
  • Tworzenie/edycja produktów i faktur: w panelu aplikacji

Obsługa błędów

API zwraca standardowe kody HTTP: 200 (sukces), 201 (utworzono), 400 (błędny JSON), 401 (brak/błędny klucz), 403 (brak uprawnienia klucza), 422 (błędne dane wejściowe), 429 (limit zapytań). Błąd ma format JSON { error: { code, message } }, a komunikat (message) jest po polsku.

  • 200 / 201 - sukces / utworzono
  • 401 - brak lub błędny klucz API
  • 403 - klucz nie ma wymaganego uprawnienia
  • 422 - błędne dane wejściowe (np. brak pozycji)
  • 429 - przekroczono limit zapytań
  • Format błędu: { error: { code, message } } po polsku