Smart Expense Extractor API Base: POST /api/extract Headers: x-extractor-key: Body: multipart/form-data; file= Res: {"success":true,"data":{"supplierName":"","vatNumber":"","expenseDate":"YYYY-MM-DD","amountExclVat":0,"vatRate":0,"totalAmount":0,"category":""},"metadata":{"stepUsed":"","hasTextLayer":true},"confidence":{"overall":0}} Auth Routes (Dashboard): POST /api/auth/login, POST /api/auth/register, POST /api/auth/logout, GET /api/auth/me API Keys (Require Auth): POST /api/keys Res: {"id":"","name":"","apiKey":"sk_...","createdAt":""} DELETE /api/keys/:id GET /api/keys/stats PUT /api/keys/alerts/webhook Body: {"endpointUrl":"","enabled":true,"dailyRequestThreshold":1000,"timeoutMs":5000,"signingSecret":""}