API Documentation

Hoe je de Smart Expense Extractor integreert in je eigen applicaties of Invoicerr, en hoe je API-keys en webhooks beheert.

1. Factuur Extractie

Endpoint
POST /api/extract
Auth Header
x-extractor-key: sk_...
Content Type
multipart/form-data
Example Integration
Kopieer deze voorbeelden om snel aan de slag te gaan.
curl -X POST http://localhost:8000/api/extract \
  -H "x-extractor-key: YOUR_API_KEY" \
  -F "file=@/path/to/invoice.pdf"
Response Format
{
  "success": true,
  "data": {
    "supplierName": "Telenet",
    "vatNumber": "BE0473535650",
    "expenseDate": "2026-04-15",
    "amountExclVat": 45.45,
    "vatRate": 21,
    "totalAmount": 55.00,
    "category": "Telecom"
  },
  "metadata": {
    "stepUsed": "smart_regex",
    "hasTextLayer": true
  },
  "confidence": {
    "overall": 0.95
  }
}

2. API Keys & Webhooks Beheer

Deze endpoints vereisen een Bearer <token> verkregen via de login route (POST /api/auth/login) of via cookies in de browser.

Nieuwe API Key
POST /api/keys

Maakt een nieuwe API key aan. De raw key wordt slechts eenmalig geretourneerd in de response.

// Request Body
{
  "name": "Mijn Productie Key"
}

// Response
{
  "id": "cm...abc",
  "name": "Mijn Productie Key",
  "apiKey": "sk_73b...", 
  "createdAt": "2026-05-11T..."
}
Configureer Webhook
PUT /api/keys/alerts/webhook

Stel een webhook in om notificaties te ontvangen bij excessief gebruik (rate limits).

// Request Body
{
  "endpointUrl": "https://jouw-app.nl/webhook",
  "enabled": true,
  "dailyRequestThreshold": 1000,
  "timeoutMs": 5000,
  "signingSecret": "geheim"
}
Verbruiksstatistieken
GET /api/keys/stats

Haalt verbruiksgegevens van de afgelopen 30 dagen op.

// Response (Array)
[
  {
    "id": "abc...",
    "date": "2026-05-11T00:00:00.000Z",
    "requestCount": 145,
    "successCount": 140,
    "failCount": 5,
    "avgLatencyMs": 350,
    "apiKey": {
      "name": "Mijn Productie Key"
    }
  }
]