{
  "openapi": "3.1.0",
  "info": {
    "title": "Investeer.ing Rendement-rekenmachine API",
    "version": "1.0.0",
    "description": "Bereken een indicatief Nederlands netto en reëel rendement voor één jaar, na kosten, Box 3 (2026) en inflatie. Educatief; geen persoonlijk advies."
  },
  "servers": [
    { "url": "https://www.investeer.ing" }
  ],
  "paths": {
    "/api/rendement": {
      "get": {
        "operationId": "calculateNetRealReturn",
        "summary": "Bereken netto en reëel rendement",
        "description": "Behandelt amount als het volledige Box 3-vermogen zonder schulden of bijzondere vrijstellingen. Percentage-invoer gebruikt procentpunten: 7 betekent 7%.",
        "parameters": [
          {
            "name": "amount",
            "in": "query",
            "required": true,
            "description": "Startvermogen in euro",
            "schema": { "type": "number", "minimum": 0, "maximum": 100000000 },
            "example": 10000
          },
          {
            "name": "grossRate",
            "in": "query",
            "required": true,
            "description": "Bruto jaarrendement of spaarrente in procentpunten",
            "schema": { "type": "number", "minimum": -100, "maximum": 100 },
            "example": 7
          },
          {
            "name": "costRate",
            "in": "query",
            "description": "Jaarlijkse kosten in procentpunten",
            "schema": { "type": "number", "minimum": 0, "maximum": 25, "default": 0 },
            "example": 0.35
          },
          {
            "name": "inflationRate",
            "in": "query",
            "description": "Inflatie in procentpunten",
            "schema": { "type": "number", "minimum": -10, "maximum": 50, "default": 2 },
            "example": 2
          },
          {
            "name": "kind",
            "in": "query",
            "description": "Vermogenscategorie voor het 2026-forfait",
            "schema": { "type": "string", "enum": ["sparen", "beleggen"], "default": "beleggen" }
          },
          {
            "name": "partner",
            "in": "query",
            "description": "Of de dubbele standaardvrijstelling wordt gebruikt",
            "schema": { "type": "boolean", "default": false }
          }
        ],
        "responses": {
          "200": {
            "description": "Transparante berekening en aannames",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/CalculationResponse" }
              }
            }
          },
          "400": {
            "description": "Ongeldige of ontbrekende invoer"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "CalculationResponse": {
        "type": "object",
        "required": ["tool", "asOf", "assumptions", "result", "disclaimer"],
        "properties": {
          "tool": { "type": "string" },
          "asOf": { "type": "string", "format": "date" },
          "inputUnit": { "type": "string" },
          "assumptions": { "type": "object", "additionalProperties": true },
          "result": {
            "type": "object",
            "description": "Genormaliseerde invoer plus bedragen in EUR en percentages in procentpunten",
            "additionalProperties": { "type": ["number", "string", "boolean"] }
          },
          "disclaimer": { "type": "string" }
        }
      }
    }
  },
  "externalDocs": {
    "description": "Volledige rekenmethode en interpretatiegrenzen",
    "url": "https://www.investeer.ing/llms-full.txt"
  }
}
