{"name":"Twinfield 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)"},"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"},"masterData":{"customers":"GET /connections/:connId/customers[/:code] (requires API key + connection access)","suppliers":"GET /connections/:connId/suppliers[/:code] (requires API key + connection access)","accounts":"GET /connections/:connId/accounts[/:code] (requires API key + connection access)","costCenters":"GET /connections/:connId/cost-centers[/:code] (requires API key + connection access)","projects":"GET /connections/:connId/projects[/:code] (requires API key + connection access)","articles":"GET /connections/:connId/articles (requires API key + connection access)","offices":"GET /connections/:connId/offices (requires API key + connection access)","vatCodes":"GET /connections/:connId/vat-codes (requires API key + connection access)"},"transactions":{"salesInvoices":"GET /connections/:connId/sales-invoices[/:type/:number] (requires API key + connection access)","purchaseInvoices":"GET /connections/:connId/purchase-invoices[/:code/:number] (requires API key + connection access)","glTransactions":"GET /connections/:connId/gl-transactions[/:code/:number] (requires API key + connection access)","bankTransactions":"GET /connections/:connId/bank-transactions[/:code/:number] (requires API key + connection access)"},"reports":{"trialBalance":"GET /connections/:connId/reports/trial-balance?year=2024 (requires API key + connection access)","agedReceivables":"GET /connections/:connId/reports/aged-receivables (requires API key + connection access)","agedPayables":"GET /connections/:connId/reports/aged-payables (requires API key + connection access)"},"mcp":{"info":"GET /mcp - MCP server info","jsonrpc":"POST /mcp - JSON-RPC endpoint for MCP tools (requires API key with mcp:* scope)"}}}