
Loading Optiviera...
JSON · Uwierzytelnianie JWT · Multi-tenant
Zintegruj dowolny system z Optivierą przez w pełni udokumentowane REST API. Wszystkie punkty końcowe wymagają tokena JWT Bearer i są automatycznie ograniczone do Twojego tenanta.
Od zera do pierwszego wywołania API w trzech krokach
Wyślij dane logowania do POST /api/auth/login. Odpowiedź zawiera token JWT ważny przez 24 godziny.
Dołącz token do każdego żądania: Authorization: Bearer [token]
Wszystkie punkty końcowe działają pod https://optiviera.com/api i odpowiadają JSON. Kontekst tenanta jest automatycznie pobierany z tokena.
Każde żądanie musi zawierać prawidłowy token JWT Bearer uzyskany z punktu końcowego logowania
curl -X POST https://optiviera.com/api/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"[email protected]","password":"••••"}'{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"expiresIn": 86400,
"tokenType": "Bearer"
}Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...Wszystko, co musisz wiedzieć przed pierwszym wywołaniem
Bazowy URL: https://optiviera.com/api — Wszystkie punkty końcowe są względne do tego bazowego URL. Zawsze używaj HTTPS.
Wszystkie żądania i odpowiedzi używają application/json. Ustaw Content-Type: application/json dla operacji zapisu.
Dane są automatycznie filtrowane do Twojej organizacji za pomocą TenantId osadzonego w JWT.
Punkty końcowe listy obsługują ?page=1&pageSize=20. Odpowiedź zawiera totalCount, page i pageSize.
Większość punktów końcowych listy akceptuje parametry zapytania jak ?status=Open&sortBy=createdAt&sortDir=desc.
12 grup zasobów obejmujących wszystkie moduły platformy
/api/auth/login/api/auth/refresh/api/auth/logout/api/tickets/api/tickets/api/tickets/{id}/api/tickets/{id}/api/tickets/{id}/api/tickets/{id}/comments/api/invoices/api/invoices/api/journal-entries/api/journal-entries/api/balance-sheet/api/trial-balance/api/employees/api/employees/api/employees/{id}/api/employees/{id}/api/positions/api/departments/api/payroll/api/payroll/run/api/payroll/{id}/api/payroll/{id}/approve/api/orders/api/orders/api/quotations/api/quotations/api/customers/api/customers/api/purchase-orders/api/purchase-orders/api/suppliers/api/suppliers/api/purchase-orders/{id}/api/products/api/products/api/stock-movements/api/stock-movements/api/warehouses/api/leads/api/leads/api/contacts/api/contacts/api/pipeline-stages/api/work-orders/api/work-orders/api/work-orders/{id}/api/work-orders/{id}/api/work-orders/{id}/api/reports/tickets/api/reports/finance/api/reports/hr/api/reports/sales/api/reports/inventory/api/settings/tenant/api/settings/tenant/api/settings/users/api/sla-configs/api/sla-configsStandardowa semantyka HTTP jest konsekwentnie stosowana w całym API
Żądanie pomyślne. Treść zawiera wynik.
Zasób utworzony. Treść zawiera nowy obiekt z ID.
Żądanie pomyślne. Brak treści odpowiedzi (używane dla DELETE).
Nieprawidłowo sformułowane żądanie lub brakujące wymagane pola.
Brakujący, wygasły lub nieprawidłowy token JWT.
Prawidłowy token, ale niewystarczające uprawnienia dla tej akcji.
Zasób nie istnieje lub należy do innego tenanta.
Walidacja danych wejściowych nie powiodła się. Zobacz tablicę details w treści odpowiedzi.
Nieoczekiwany błąd serwera. Skontaktuj się z pomocą techniczną podając ID żądania.
Wszystkie odpowiedzi błędów mają spójną strukturę JSON
Gdy żądanie nie powiedzie się, API zwraca ustrukturyzowaną treść JSON. Użyj tablicy details do informacji zwrotnej walidacji na poziomie pól.
{
"status": 422,
"error": "ValidationError",
"message": "Request validation failed",
"details": [
{ "field": "email", "message": "Email is required" },
{ "field": "password", "message": "Minimum 8 characters" }
]
}Zapoznaj się z pełną interaktywną dokumentacją Swagger lub skontaktuj się z naszym zespołem.