Loading Optiviera...

REST API

Optiviera REST API Referentie

JSON · JWT Auth · Multi-tenant

Integreer elk systeem met Optiviera via een volledig gedocumenteerde REST API. Alle endpoints vereisen een JWT Bearer-token en zijn automatisch beperkt tot uw tenant.

Snel aan de slag

Van nul naar uw eerste API-aanroep in drie stappen

1

Authenticeren

Stuur uw inloggegevens naar POST /api/auth/login. Het antwoord bevat een JWT-token dat 24 uur geldig is.

2

Auth-header toevoegen

Voeg het token toe aan elk verzoek: Authorization: Bearer [token]

3

De API aanroepen

Alle endpoints bevinden zich onder https://optiviera.com/api en reageren met JSON. De tenantcontext wordt automatisch afgeleid van uw token.

Authenticatie

Elk verzoek moet een geldig JWT Bearer-token bevatten dat verkregen is via het login-endpoint

Hoe het werkt

  • POST naar /api/auth/login met uw e-mail en wachtwoord
  • Bewaar het token veilig (httpOnly cookie of in geheugen)
  • Voeg Authorization: Bearer [token] toe aan elk volgend verzoek
  • Tokens verlopen na 24 uur — vernieuwen met POST /api/auth/refresh
Inlogverzoekbash
curl -X POST https://optiviera.com/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email":"[email protected]","password":"••••"}'
Geslaagd antwoordjson
{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "expiresIn": 86400,
  "tokenType": "Bearer"
}
Het token gebruikenhttp
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Basis-URL en Formaat

Alles wat u moet weten voor uw eerste aanroep

Basis-URL: https://optiviera.com/api — Alle endpoints zijn relatief aan deze basis-URL. Gebruik altijd HTTPS.

JSON-formaat

Alle verzoeken en antwoorden gebruiken application/json. Stel Content-Type: application/json in voor schrijfoperaties.

Tenantbereik

Gegevens worden automatisch gefilterd op uw organisatie via de TenantId in uw JWT.

Paginering

Lijstendpoints ondersteunen ?page=1&pageSize=20. Het antwoord bevat totalCount, page en pageSize.

Filteren en Sorteren

De meeste lijstendpoints accepteren queryparameters zoals ?status=Open&sortBy=createdAt&sortDir=desc.

API-endpointgroepen

12 resourcegroepen die alle modules van het platform dekken

Authenticatie

  • POST/api/auth/login
  • POST/api/auth/refresh
  • POST/api/auth/logout

Tickets en HelpDesk

  • GET/api/tickets
  • POST/api/tickets
  • GET/api/tickets/{id}
  • PUT/api/tickets/{id}
  • DELETE/api/tickets/{id}
  • POST/api/tickets/{id}/comments

Financiën en Boekhouding

  • GET/api/invoices
  • POST/api/invoices
  • GET/api/journal-entries
  • POST/api/journal-entries
  • GET/api/balance-sheet
  • GET/api/trial-balance

HR en Medewerkers

  • GET/api/employees
  • POST/api/employees
  • GET/api/employees/{id}
  • PUT/api/employees/{id}
  • GET/api/positions
  • GET/api/departments

Salarisadministratie

  • GET/api/payroll
  • POST/api/payroll/run
  • GET/api/payroll/{id}
  • PUT/api/payroll/{id}/approve

Verkoop en Bestellingen

  • GET/api/orders
  • POST/api/orders
  • GET/api/quotations
  • POST/api/quotations
  • GET/api/customers
  • POST/api/customers

Inkoop

  • GET/api/purchase-orders
  • POST/api/purchase-orders
  • GET/api/suppliers
  • POST/api/suppliers
  • GET/api/purchase-orders/{id}

Voorraad

  • GET/api/products
  • POST/api/products
  • GET/api/stock-movements
  • POST/api/stock-movements
  • GET/api/warehouses

CRM en Leads

  • GET/api/leads
  • POST/api/leads
  • GET/api/contacts
  • POST/api/contacts
  • GET/api/pipeline-stages

Werkorders

  • GET/api/work-orders
  • POST/api/work-orders
  • GET/api/work-orders/{id}
  • PUT/api/work-orders/{id}
  • DELETE/api/work-orders/{id}

Rapporten en Analyses

  • GET/api/reports/tickets
  • GET/api/reports/finance
  • GET/api/reports/hr
  • GET/api/reports/sales
  • GET/api/reports/inventory

Instellingen

  • GET/api/settings/tenant
  • PUT/api/settings/tenant
  • GET/api/settings/users
  • GET/api/sla-configs
  • POST/api/sla-configs

HTTP-statuscodes

Standaard HTTP-semantiek wordt consistent gebruikt in de gehele API

200OK

Verzoek geslaagd. Body bevat het resultaat.

201Aangemaakt

Resource aangemaakt. Body bevat het nieuwe object met ID.

204Geen inhoud

Verzoek geslaagd. Geen body (gebruikt voor DELETE).

400Ongeldig verzoek

Ongeldig opgemaakt verzoek of ontbrekende verplichte velden.

401Niet geautoriseerd

Ontbrekend, verlopen of ongeldig JWT-token.

403Verboden

Geldig token maar onvoldoende rechten voor deze actie.

404Niet gevonden

Resource bestaat niet of behoort tot een andere tenant.

422Validatiefout

Invoervalidatie mislukt. Zie de details-array in de responsebody.

500Serverfout

Onverwachte serverfout. Neem contact op met support met het verzoek-ID.

Foutresponsformaat

Alle foutreacties volgen een consistente JSON-structuur

Wanneer een verzoek mislukt, retourneert de API een gestructureerde JSON-body. Gebruik de details-array voor veldniveau validatiefeedback.

  • status — HTTP status code
  • error — Error type identifier
  • message — Human-readable description
  • details — Field-level validation errors (array)
Voorbeeld foutresponsjson
{
  "status": 422,
  "error": "ValidationError",
  "message": "Request validation failed",
  "details": [
    { "field": "email", "message": "Email is required" },
    { "field": "password", "message": "Minimum 8 characters" }
  ]
}

Klaar voor integratie?

Verken de volledige interactieve Swagger-documentatie of neem contact op met ons team voor API-toegang.