{
  "openapi": "3.1.0",
  "info": {
    "title": "De Financiële Termenlijst API",
    "version": "1.0.0",
    "summary": "Rekentools en begrippen met gecontroleerde cijfers voor Nederland (belasting, inflatie, dividend, bedrijfsratio's).",
    "description": "Open API van https://dftonline.nl. Alle berekeningen gebruiken dezelfde parameters als de rekentools op de website (jaar 2026) en geven bronnen mee. Indicatieve berekening op basis van openbare parameters. Geen financieel, fiscaal of juridisch advies. Gebruik is vrij met bronvermelding (dftonline.nl). Rate limit: 60 verzoeken per minuut per IP. Er is ook een MCP-server: https://dftonline.nl/mcp.",
    "contact": {
      "name": "De Financiële Termenlijst",
      "url": "https://dftonline.nl/ontwikkelaars/"
    }
  },
  "servers": [
    {
      "url": "https://dftonline.nl"
    }
  ],
  "tags": [
    {
      "name": "Rekentools"
    },
    {
      "name": "Bedrijfsratio's"
    },
    {
      "name": "Begrippen"
    }
  ],
  "paths": {
    "/api/v1/box1": {
      "get": {
        "operationId": "box1_berekenen",
        "summary": "Inkomstenbelasting in box 1 (2026) na heffingskortingen, voor mensen onder de AOW-leeftijd.",
        "description": "Berekent belasting en premies volksverzekeringen over het belastbaar inkomen in box 1, na algemene heffingskorting en arbeidskorting, met netto per jaar en maand en het marginale tarief. Geen AOW, toeslagen, pensioenpremie of aftrekposten.",
        "tags": [
          "Rekentools"
        ],
        "parameters": [
          {
            "name": "income",
            "in": "query",
            "required": true,
            "description": "Belastbaar inkomen in box 1 per jaar in euro",
            "schema": {
              "type": "number",
              "minimum": 0,
              "maximum": 5000000,
              "example": 48000
            }
          },
          {
            "name": "works",
            "in": "query",
            "required": false,
            "description": "Is het inkomen uit arbeid (voor de arbeidskorting)?",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Berekening gelukt",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Het resultaat van de berekening."
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bron": {
                          "type": "string",
                          "example": "https://dftonline.nl"
                        },
                        "versie": {
                          "type": "string"
                        },
                        "bronnen": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "naam": {
                                "type": "string"
                              },
                              "url": {
                                "type": "string",
                                "format": "uri"
                              }
                            }
                          }
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "documentatie": {
                          "type": "string",
                          "format": "uri"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ongeldige parameters",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "fout": {
                      "type": "string"
                    },
                    "details": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Te veel verzoeken (rate limit)"
          }
        }
      }
    },
    "/api/v1/eigenwoningforfait": {
      "get": {
        "operationId": "eigenwoningforfait_berekenen",
        "summary": "Eigenwoningforfait 2026 en effect van hypotheekrenteaftrek en Wet Hillen op de belasting in box 1.",
        "description": "Berekent het eigenwoningforfait uit de WOZ-waarde, het saldo met de betaalde hypotheekrente, de aftrek volgens de Wet Hillen en het geschatte belastingvoordeel of de extra belasting. Vereenvoudigd: geen aflossingseisen, 30-jaarstermijn of restschuld.",
        "tags": [
          "Rekentools"
        ],
        "parameters": [
          {
            "name": "woz",
            "in": "query",
            "required": true,
            "description": "WOZ-waarde in euro",
            "schema": {
              "type": "number",
              "minimum": 0,
              "maximum": 50000000,
              "example": 439000
            }
          },
          {
            "name": "rente",
            "in": "query",
            "required": false,
            "description": "Betaalde hypotheekrente per jaar in euro",
            "schema": {
              "type": "number",
              "minimum": 0,
              "maximum": 5000000,
              "default": 0
            }
          },
          {
            "name": "income_ex_woning",
            "in": "query",
            "required": false,
            "description": "Overig inkomen in box 1 in euro (bepaalt het tarief)",
            "schema": {
              "type": "number",
              "minimum": 0,
              "maximum": 5000000,
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Berekening gelukt",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Het resultaat van de berekening."
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bron": {
                          "type": "string",
                          "example": "https://dftonline.nl"
                        },
                        "versie": {
                          "type": "string"
                        },
                        "bronnen": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "naam": {
                                "type": "string"
                              },
                              "url": {
                                "type": "string",
                                "format": "uri"
                              }
                            }
                          }
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "documentatie": {
                          "type": "string",
                          "format": "uri"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ongeldige parameters",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "fout": {
                      "type": "string"
                    },
                    "details": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Te veel verzoeken (rate limit)"
          }
        }
      }
    },
    "/api/v1/dividend": {
      "get": {
        "operationId": "dividend_berekenen",
        "summary": "Netto dividend na dividendbelasting (15%), box 2 of buitenlandse bronheffing.",
        "description": "Berekent wat er overblijft van een bruto dividend: Nederlands dividend voor een belegger in box 3, uit een aanmerkelijk belang in box 2 (24,5% tot 68.843 euro, 31% daarboven in 2026), of buitenlands dividend met eigen bronheffing.",
        "tags": [
          "Rekentools"
        ],
        "parameters": [
          {
            "name": "gross",
            "in": "query",
            "required": true,
            "description": "Bruto dividend in euro",
            "schema": {
              "type": "number",
              "minimum": 0,
              "maximum": 100000000,
              "example": 1000
            }
          },
          {
            "name": "kind",
            "in": "query",
            "required": false,
            "description": "Situatie",
            "schema": {
              "type": "string",
              "enum": [
                "nl-box3",
                "nl-box2",
                "buitenland"
              ],
              "default": "nl-box3"
            }
          },
          {
            "name": "box2_other",
            "in": "query",
            "required": false,
            "description": "Overig box 2-inkomen in euro (alleen bij nl-box2)",
            "schema": {
              "type": "number",
              "minimum": 0,
              "maximum": 100000000,
              "default": 0
            }
          },
          {
            "name": "foreign_rate",
            "in": "query",
            "required": false,
            "description": "Bronheffing buitenland in procenten (alleen bij buitenland)",
            "schema": {
              "type": "number",
              "minimum": 0,
              "maximum": 100,
              "default": 15
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Berekening gelukt",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Het resultaat van de berekening."
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bron": {
                          "type": "string",
                          "example": "https://dftonline.nl"
                        },
                        "versie": {
                          "type": "string"
                        },
                        "bronnen": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "naam": {
                                "type": "string"
                              },
                              "url": {
                                "type": "string",
                                "format": "uri"
                              }
                            }
                          }
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "documentatie": {
                          "type": "string",
                          "format": "uri"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ongeldige parameters",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "fout": {
                      "type": "string"
                    },
                    "details": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Te veel verzoeken (rate limit)"
          }
        }
      }
    },
    "/api/v1/dividendrendement": {
      "get": {
        "operationId": "dividendrendement_berekenen",
        "summary": "Dividendrendement van een aandeel.",
        "description": "Dividend per aandeel gedeeld door de koers, met jaarbedrag en positiewaarde.",
        "tags": [
          "Rekentools"
        ],
        "parameters": [
          {
            "name": "price",
            "in": "query",
            "required": true,
            "description": "Koers per aandeel in euro",
            "schema": {
              "type": "number",
              "minimum": 0.0001,
              "maximum": 1000000,
              "example": 50
            }
          },
          {
            "name": "dps",
            "in": "query",
            "required": true,
            "description": "Dividend per aandeel per jaar in euro",
            "schema": {
              "type": "number",
              "minimum": 0,
              "maximum": 1000000,
              "example": 2
            }
          },
          {
            "name": "shares",
            "in": "query",
            "required": false,
            "description": "Aantal aandelen",
            "schema": {
              "type": "number",
              "minimum": 0,
              "maximum": 1000000000,
              "default": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Berekening gelukt",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Het resultaat van de berekening."
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bron": {
                          "type": "string",
                          "example": "https://dftonline.nl"
                        },
                        "versie": {
                          "type": "string"
                        },
                        "bronnen": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "naam": {
                                "type": "string"
                              },
                              "url": {
                                "type": "string",
                                "format": "uri"
                              }
                            }
                          }
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "documentatie": {
                          "type": "string",
                          "format": "uri"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ongeldige parameters",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "fout": {
                      "type": "string"
                    },
                    "details": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Te veel verzoeken (rate limit)"
          }
        }
      }
    },
    "/api/v1/inflatie": {
      "get": {
        "operationId": "inflatie_corrigeren",
        "summary": "Wat is een bedrag uit jaar A waard in jaar B, op basis van de CBS-jaarmutatie van de CPI (1963 tot 2025).",
        "description": "Vermenigvuldigt of deelt een bedrag met de opeenvolgende jaarlijkse CPI-inflatie tussen twee jaren. Bron: CBS StatLine 70936NED, jaargemiddelden.",
        "tags": [
          "Rekentools"
        ],
        "parameters": [
          {
            "name": "amount",
            "in": "query",
            "required": true,
            "description": "Bedrag in euro",
            "schema": {
              "type": "number",
              "minimum": 0,
              "maximum": 1000000000,
              "example": 1000
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": true,
            "description": "Beginjaar (1963 tot 2025)",
            "schema": {
              "type": "integer",
              "minimum": 1963,
              "maximum": 2025,
              "example": 2000
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "description": "Eindjaar (1963 tot 2025)",
            "schema": {
              "type": "integer",
              "minimum": 1963,
              "maximum": 2025,
              "example": 2025
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Berekening gelukt",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Het resultaat van de berekening."
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bron": {
                          "type": "string",
                          "example": "https://dftonline.nl"
                        },
                        "versie": {
                          "type": "string"
                        },
                        "bronnen": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "naam": {
                                "type": "string"
                              },
                              "url": {
                                "type": "string",
                                "format": "uri"
                              }
                            }
                          }
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "documentatie": {
                          "type": "string",
                          "format": "uri"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ongeldige parameters",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "fout": {
                      "type": "string"
                    },
                    "details": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Te veel verzoeken (rate limit)"
          }
        }
      }
    },
    "/api/v1/samengestelde-rente": {
      "get": {
        "operationId": "samengestelde_rente_berekenen",
        "summary": "Eindsaldo met samengestelde rente (jaarlijkse bijschrijving, inleg aan het einde van het jaar).",
        "description": "Rekenvoorbeeld voor rente op rente, geen rentetarief van een bestaand product.",
        "tags": [
          "Rekentools"
        ],
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "required": true,
            "description": "Beginbedrag in euro",
            "schema": {
              "type": "number",
              "minimum": 0,
              "maximum": 1000000000,
              "example": 1000
            }
          },
          {
            "name": "add",
            "in": "query",
            "required": false,
            "description": "Inleg per jaar in euro",
            "schema": {
              "type": "number",
              "minimum": 0,
              "maximum": 1000000000,
              "default": 0
            }
          },
          {
            "name": "rate",
            "in": "query",
            "required": true,
            "description": "Rente per jaar in procenten",
            "schema": {
              "type": "number",
              "minimum": 0,
              "maximum": 100,
              "example": 5
            }
          },
          {
            "name": "years",
            "in": "query",
            "required": true,
            "description": "Looptijd in jaren",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 60,
              "example": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Berekening gelukt",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Het resultaat van de berekening."
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bron": {
                          "type": "string",
                          "example": "https://dftonline.nl"
                        },
                        "versie": {
                          "type": "string"
                        },
                        "bronnen": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "naam": {
                                "type": "string"
                              },
                              "url": {
                                "type": "string",
                                "format": "uri"
                              }
                            }
                          }
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "documentatie": {
                          "type": "string",
                          "format": "uri"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ongeldige parameters",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "fout": {
                      "type": "string"
                    },
                    "details": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Te veel verzoeken (rate limit)"
          }
        }
      }
    },
    "/api/v1/ratios/ebitda-berekenen": {
      "get": {
        "operationId": "ratio_ebitda_berekenen",
        "summary": "EBITDA berekenen: EBITDA = nettowinst + belastingen + rentelasten + afschrijvingen en amortisatie",
        "description": "EBITDA is de winst van een bedrijf vóór rente, belastingen, afschrijvingen en amortisatie. Vul de posten uit de winst-en-verliesrekening in.",
        "tags": [
          "Bedrijfsratio's"
        ],
        "parameters": [
          {
            "name": "nw",
            "in": "query",
            "required": true,
            "description": "Nettowinst (€)",
            "schema": {
              "type": "number",
              "example": 80000
            }
          },
          {
            "name": "bel",
            "in": "query",
            "required": true,
            "description": "Belastingen (€)",
            "schema": {
              "type": "number",
              "example": 25000
            }
          },
          {
            "name": "rente",
            "in": "query",
            "required": true,
            "description": "Rentelasten (€)",
            "schema": {
              "type": "number",
              "example": 10000
            }
          },
          {
            "name": "afs",
            "in": "query",
            "required": true,
            "description": "Afschrijvingen en amortisatie (€)",
            "schema": {
              "type": "number",
              "example": 35000
            }
          },
          {
            "name": "oms",
            "in": "query",
            "required": true,
            "description": "Omzet (€, voor de marge)",
            "schema": {
              "type": "number",
              "example": 600000
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Berekening gelukt",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Het resultaat van de berekening."
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bron": {
                          "type": "string",
                          "example": "https://dftonline.nl"
                        },
                        "versie": {
                          "type": "string"
                        },
                        "bronnen": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "naam": {
                                "type": "string"
                              },
                              "url": {
                                "type": "string",
                                "format": "uri"
                              }
                            }
                          }
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "documentatie": {
                          "type": "string",
                          "format": "uri"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ongeldige parameters",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "fout": {
                      "type": "string"
                    },
                    "details": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Te veel verzoeken (rate limit)"
          }
        }
      }
    },
    "/api/v1/ratios/current-ratio-berekenen": {
      "get": {
        "operationId": "ratio_current_ratio_berekenen",
        "summary": "Current ratio berekenen: Current ratio = vlottende activa / kortlopende schulden",
        "description": "De current ratio laat zien in hoeverre een bedrijf zijn kortlopende schulden kan betalen uit de vlottende activa.",
        "tags": [
          "Bedrijfsratio's"
        ],
        "parameters": [
          {
            "name": "va",
            "in": "query",
            "required": true,
            "description": "Vlottende activa (€)",
            "schema": {
              "type": "number",
              "example": 300000
            }
          },
          {
            "name": "ks",
            "in": "query",
            "required": true,
            "description": "Kortlopende schulden (€)",
            "schema": {
              "type": "number",
              "example": 200000
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Berekening gelukt",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Het resultaat van de berekening."
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bron": {
                          "type": "string",
                          "example": "https://dftonline.nl"
                        },
                        "versie": {
                          "type": "string"
                        },
                        "bronnen": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "naam": {
                                "type": "string"
                              },
                              "url": {
                                "type": "string",
                                "format": "uri"
                              }
                            }
                          }
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "documentatie": {
                          "type": "string",
                          "format": "uri"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ongeldige parameters",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "fout": {
                      "type": "string"
                    },
                    "details": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Te veel verzoeken (rate limit)"
          }
        }
      }
    },
    "/api/v1/ratios/quick-ratio-berekenen": {
      "get": {
        "operationId": "ratio_quick_ratio_berekenen",
        "summary": "Quick ratio berekenen: Quick ratio = (vlottende activa - voorraden) / kortlopende schulden",
        "description": "De quick ratio (acid test) kijkt naar de kortlopende schulden en neemt alleen de snel te verzilveren vlottende activa mee, dus zonder voorraden.",
        "tags": [
          "Bedrijfsratio's"
        ],
        "parameters": [
          {
            "name": "va",
            "in": "query",
            "required": true,
            "description": "Vlottende activa (€)",
            "schema": {
              "type": "number",
              "example": 300000
            }
          },
          {
            "name": "vo",
            "in": "query",
            "required": true,
            "description": "Voorraden (€)",
            "schema": {
              "type": "number",
              "example": 100000
            }
          },
          {
            "name": "ks",
            "in": "query",
            "required": true,
            "description": "Kortlopende schulden (€)",
            "schema": {
              "type": "number",
              "example": 200000
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Berekening gelukt",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Het resultaat van de berekening."
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bron": {
                          "type": "string",
                          "example": "https://dftonline.nl"
                        },
                        "versie": {
                          "type": "string"
                        },
                        "bronnen": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "naam": {
                                "type": "string"
                              },
                              "url": {
                                "type": "string",
                                "format": "uri"
                              }
                            }
                          }
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "documentatie": {
                          "type": "string",
                          "format": "uri"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ongeldige parameters",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "fout": {
                      "type": "string"
                    },
                    "details": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Te veel verzoeken (rate limit)"
          }
        }
      }
    },
    "/api/v1/ratios/solvabiliteit-berekenen": {
      "get": {
        "operationId": "ratio_solvabiliteit_berekenen",
        "summary": "Solvabiliteit berekenen: Solvabiliteit = eigen vermogen / totaal vermogen × 100%",
        "description": "Solvabiliteit laat zien welk deel van het totale vermogen van een bedrijf uit eigen vermogen bestaat.",
        "tags": [
          "Bedrijfsratio's"
        ],
        "parameters": [
          {
            "name": "ev",
            "in": "query",
            "required": true,
            "description": "Eigen vermogen (€)",
            "schema": {
              "type": "number",
              "example": 250000
            }
          },
          {
            "name": "tv",
            "in": "query",
            "required": true,
            "description": "Totaal vermogen (€)",
            "schema": {
              "type": "number",
              "example": 1000000
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Berekening gelukt",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Het resultaat van de berekening."
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bron": {
                          "type": "string",
                          "example": "https://dftonline.nl"
                        },
                        "versie": {
                          "type": "string"
                        },
                        "bronnen": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "naam": {
                                "type": "string"
                              },
                              "url": {
                                "type": "string",
                                "format": "uri"
                              }
                            }
                          }
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "documentatie": {
                          "type": "string",
                          "format": "uri"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ongeldige parameters",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "fout": {
                      "type": "string"
                    },
                    "details": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Te veel verzoeken (rate limit)"
          }
        }
      }
    },
    "/api/v1/ratios/winstmarge-berekenen": {
      "get": {
        "operationId": "ratio_winstmarge_berekenen",
        "summary": "Winstmarge berekenen: Winstmarge = nettowinst / omzet × 100%",
        "description": "De winstmarge laat zien hoeveel van elke euro omzet overblijft als nettowinst.",
        "tags": [
          "Bedrijfsratio's"
        ],
        "parameters": [
          {
            "name": "nw",
            "in": "query",
            "required": true,
            "description": "Nettowinst (€)",
            "schema": {
              "type": "number",
              "example": 60000
            }
          },
          {
            "name": "oms",
            "in": "query",
            "required": true,
            "description": "Omzet (€)",
            "schema": {
              "type": "number",
              "example": 600000
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Berekening gelukt",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Het resultaat van de berekening."
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bron": {
                          "type": "string",
                          "example": "https://dftonline.nl"
                        },
                        "versie": {
                          "type": "string"
                        },
                        "bronnen": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "naam": {
                                "type": "string"
                              },
                              "url": {
                                "type": "string",
                                "format": "uri"
                              }
                            }
                          }
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "documentatie": {
                          "type": "string",
                          "format": "uri"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ongeldige parameters",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "fout": {
                      "type": "string"
                    },
                    "details": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Te veel verzoeken (rate limit)"
          }
        }
      }
    },
    "/api/v1/ratios/break-even-berekenen": {
      "get": {
        "operationId": "ratio_break_even_berekenen",
        "summary": "Break-even punt berekenen: Break-even afzet = vaste kosten / (verkoopprijs - variabele kosten per stuk)",
        "description": "Het break-even punt is de afzet waarbij de omzet precies de totale kosten dekt: geen winst en geen verlies.",
        "tags": [
          "Bedrijfsratio's"
        ],
        "parameters": [
          {
            "name": "vk",
            "in": "query",
            "required": true,
            "description": "Vaste kosten (€)",
            "schema": {
              "type": "number",
              "example": 50000
            }
          },
          {
            "name": "p",
            "in": "query",
            "required": true,
            "description": "Verkoopprijs per stuk (€)",
            "schema": {
              "type": "number",
              "example": 25
            }
          },
          {
            "name": "vv",
            "in": "query",
            "required": true,
            "description": "Variabele kosten per stuk (€)",
            "schema": {
              "type": "number",
              "example": 15
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Berekening gelukt",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Het resultaat van de berekening."
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bron": {
                          "type": "string",
                          "example": "https://dftonline.nl"
                        },
                        "versie": {
                          "type": "string"
                        },
                        "bronnen": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "naam": {
                                "type": "string"
                              },
                              "url": {
                                "type": "string",
                                "format": "uri"
                              }
                            }
                          }
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "documentatie": {
                          "type": "string",
                          "format": "uri"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ongeldige parameters",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "fout": {
                      "type": "string"
                    },
                    "details": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Te veel verzoeken (rate limit)"
          }
        }
      }
    },
    "/api/v1/ratios/rentabiliteit-berekenen": {
      "get": {
        "operationId": "ratio_rentabiliteit_berekenen",
        "summary": "Rentabiliteit berekenen: Rentabiliteit eigen vermogen = nettowinst / eigen vermogen × 100%. Rentabiliteit totaal vermogen = (nettowinst + rentelasten) / totaal vermogen × 100%",
        "description": "Rentabiliteit laat zien welk rendement een bedrijf behaalt op het ingezette vermogen.",
        "tags": [
          "Bedrijfsratio's"
        ],
        "parameters": [
          {
            "name": "nw",
            "in": "query",
            "required": true,
            "description": "Nettowinst (€)",
            "schema": {
              "type": "number",
              "example": 60000
            }
          },
          {
            "name": "rente",
            "in": "query",
            "required": true,
            "description": "Rentelasten (€)",
            "schema": {
              "type": "number",
              "example": 10000
            }
          },
          {
            "name": "ev",
            "in": "query",
            "required": true,
            "description": "Eigen vermogen (€)",
            "schema": {
              "type": "number",
              "example": 250000
            }
          },
          {
            "name": "tv",
            "in": "query",
            "required": true,
            "description": "Totaal vermogen (€)",
            "schema": {
              "type": "number",
              "example": 1000000
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Berekening gelukt",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "description": "Het resultaat van de berekening."
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "bron": {
                          "type": "string",
                          "example": "https://dftonline.nl"
                        },
                        "versie": {
                          "type": "string"
                        },
                        "bronnen": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "naam": {
                                "type": "string"
                              },
                              "url": {
                                "type": "string",
                                "format": "uri"
                              }
                            }
                          }
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "documentatie": {
                          "type": "string",
                          "format": "uri"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ongeldige parameters",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "fout": {
                      "type": "string"
                    },
                    "details": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Te veel verzoeken (rate limit)"
          }
        }
      }
    },
    "/api/v1/begrippen": {
      "get": {
        "operationId": "begrippen_lijst",
        "summary": "Lijst van alle begrippen met definitie",
        "tags": [
          "Begrippen"
        ],
        "parameters": [
          {
            "name": "hub",
            "in": "query",
            "required": false,
            "description": "Filter op thema (bijvoorbeeld belasting, beleggen, economie)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Lijst van begrippen"
          }
        }
      }
    },
    "/api/v1/begrippen/{slug}": {
      "get": {
        "operationId": "begrip_ophalen",
        "summary": "Eén begrip met definitie, veelgestelde vragen, cijfers en bronnen",
        "tags": [
          "Begrippen"
        ],
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "description": "Slug van het begrip, bijvoorbeeld box-3",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Het begrip"
          },
          "404": {
            "description": "Onbekend begrip"
          }
        }
      }
    },
    "/api/v1/zoeken": {
      "get": {
        "operationId": "begrippen_zoeken",
        "summary": "Zoek in begrippen en aliassen",
        "tags": [
          "Begrippen"
        ],
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "description": "Zoekterm",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Gevonden begrippen"
          }
        }
      }
    }
  }
}