
Loading Optiviera...
JSON · Auth JWT · Multi-tenant
Integra qualsiasi sistema con Optiviera tramite una API REST completamente documentata. Tutti gli endpoint richiedono un token JWT Bearer e sono automaticamente limitati al tuo tenant.
Da zero alla tua prima chiamata API in tre passaggi
Invia le tue credenziali a POST /api/auth/login. La risposta contiene un token JWT valido per 24 ore.
Allega il token ad ogni richiesta: Authorization: Bearer [token]
Tutti gli endpoint si trovano sotto https://optiviera.com/api e rispondono in JSON. Il contesto tenant è derivato automaticamente dal tuo token.
Ogni richiesta deve portare un token JWT Bearer valido ottenuto dall'endpoint di login
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...Tutto ciò che devi sapere prima della tua prima chiamata
URL base: https://optiviera.com/api — Tutti gli endpoint sono relativi a questo URL base. Usa sempre HTTPS.
Tutte le richieste e risposte usano application/json. Imposta Content-Type: application/json nelle operazioni di scrittura.
I dati sono automaticamente filtrati alla tua organizzazione tramite il TenantId incorporato nel tuo JWT.
Gli endpoint lista supportano ?page=1&pageSize=20. La risposta include totalCount, page e pageSize.
La maggior parte degli endpoint lista accetta parametri come ?status=Open&sortBy=createdAt&sortDir=desc.
12 gruppi di risorse che coprono tutti i moduli della piattaforma
/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-configsLa semantica HTTP standard è usata in modo coerente in tutta l'API
Richiesta riuscita. Il corpo contiene il risultato.
Risorsa creata. Il corpo contiene il nuovo oggetto con ID.
Richiesta riuscita. Nessun corpo (usato per DELETE).
Richiesta malformata o campi obbligatori mancanti.
Token JWT mancante, scaduto o non valido.
Token valido ma permessi insufficienti per questa azione.
La risorsa non esiste o appartiene a un altro tenant.
La validazione dell'input è fallita. Vedi l'array details nel corpo della risposta.
Errore imprevisto del server. Contatta il supporto con l'ID della richiesta.
Tutte le risposte di errore seguono una struttura JSON coerente
Quando una richiesta fallisce, l'API restituisce un corpo JSON strutturato. Usa l'array details per il feedback di validazione a livello di campo.
{
"status": 422,
"error": "ValidationError",
"message": "Request validation failed",
"details": [
{ "field": "email", "message": "Email is required" },
{ "field": "password", "message": "Minimum 8 characters" }
]
}Esplora la documentazione Swagger interattiva completa o contatta il nostro team per l'accesso API.