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
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