{"name":"Exact Online Service","version":"1.0.0","runtime":"Bun + Elysia","bunVersion":"1.3.6","endpoints":{"health":"GET /health","auth":{"connect":"GET /auth/connect - Start OAuth flow","callback":"GET /auth/callback - OAuth callback","connections":"GET /auth/connections - List connections (requires API key)","connection":"GET /auth/connections/:id - Connection status (requires API key)","disconnect":"DELETE /auth/connections/:id - Remove connection (requires API key)","health":"GET /auth/connections/:id/health - Connection health check"},"admin":{"createKey":"POST /admin/api-keys - Create API key (requires X-Admin-Secret)","listKeys":"GET /admin/api-keys - List API keys","getKey":"GET /admin/api-keys/:id - Get API key","revokeKey":"DELETE /admin/api-keys/:id - Revoke API key","rotateKey":"POST /admin/api-keys/:id/rotate - Rotate API key"},"data":{"offices":"GET /connections/:connId/offices","customers":"GET /connections/:connId/customers[/:code]","suppliers":"GET /connections/:connId/suppliers[/:code]","accounts":"GET /connections/:connId/accounts[/:code]","costCenters":"GET /connections/:connId/cost-centers[/:code]"},"reports":{"trialBalance":"GET /connections/:connId/reports/trial-balance?officeCode=&year=&period=","agedReceivables":"GET /connections/:connId/reports/aged-receivables?officeCode=&asOfDate=","agedPayables":"GET /connections/:connId/reports/aged-payables?officeCode=&asOfDate="},"transactions":{"salesInvoices":"GET /connections/:connId/sales-invoices[/:id]?officeCode=&from=&to=","purchaseInvoices":"GET /connections/:connId/purchase-invoices[/:id]?officeCode=&from=&to=","glTransactions":"GET /connections/:connId/gl-transactions[/:id]?officeCode=&from=&to="}}}