{
  "openapi": "3.0.3",
  "info": {
    "title": "OTB Studio API",
    "version": "1.0.0",
    "description": "Het Belgische ondernemingsregister via REST: zoeken, profielen, eigendom, neergelegde jaarrekeningen en mandaten. Elke route vraagt een `otb_live_`-token, en elk geleverd antwoord kost credits voor de datapunten die het bevat."
  },
  "servers": [
    {
      "url": "https://api.otbstudio.ai"
    }
  ],
  "security": [
    {
      "token": []
    }
  ],
  "tags": [
    {
      "name": "Companies",
      "description": "Eén ondernemingsregister, op vijf manieren gelezen."
    }
  ],
  "paths": {
    "/v1/companies": {
      "get": {
        "tags": [
          "Companies"
        ],
        "operationId": "searchCompanies",
        "summary": "Ondernemingen zoeken",
        "description": "Zoekt ondernemingen op naam. Een resultaat is bewust beknopt: kies de onderneming die u bedoelt en haal haar profiel op met het ondernemingsnummer. Juridische, commerciële, Nederlandse en Franse namen worden allemaal doorzocht.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "description": "De naam om op te zoeken.",
            "schema": {
              "type": "string"
            },
            "example": "noordkaap"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Hoeveel resultaten terugkomen, 1 tot 25. Een ontbrekende, nul-, negatieve of grotere waarde geeft 10.",
            "schema": {
              "type": "integer",
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "De resultaten, het beste eerst. Een lege lijst als niets overeenkwam.",
            "headers": {
              "X-Credits-Cost": {
                "$ref": "#/components/headers/X-Credits-Cost"
              },
              "X-Credits-Remaining": {
                "$ref": "#/components/headers/X-Credits-Remaining"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchReply"
                },
                "example": {
                  "companies": [
                    {
                      "enterpriseNumber": "BE0734567835",
                      "name": "Noordkaap Warehousing",
                      "employees": 214,
                      "statusCode": "AC"
                    },
                    {
                      "enterpriseNumber": "BE0712345630",
                      "name": "Noordkaap Logistics",
                      "employees": 187,
                      "statusCode": "AC"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "`q` ontbreekt of is leeg.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueryRequired"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          },
          "503": {
            "$ref": "#/components/responses/Busy"
          }
        }
      }
    },
    "/v1/companies/{id}": {
      "get": {
        "tags": [
          "Companies"
        ],
        "operationId": "getCompany",
        "summary": "Een onderneming ophalen",
        "description": "Het profiel van één onderneming: namen, status, rechtsvorm, adres, contactgegevens, activiteiten, de nieuwste neergelegde cijfers, en vlaggen die zeggen welke andere datasets voor haar bestaan.",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "200": {
            "description": "Het profiel.",
            "headers": {
              "X-Credits-Cost": {
                "$ref": "#/components/headers/X-Credits-Cost"
              },
              "X-Credits-Remaining": {
                "$ref": "#/components/headers/X-Credits-Remaining"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Profile"
                },
                "example": {
                  "enterpriseNumber": "BE0712345630",
                  "nameNl": "Noordkaap Logistics",
                  "statusCode": "AC",
                  "juridicalFormCode": "014",
                  "juridicalSituationCode": "000",
                  "typeOfEnterpriseCode": "2",
                  "deleted": false,
                  "startDate": "1998-06-15",
                  "street": "Kaaiweg 14",
                  "zipCode": "9000",
                  "city": "Gent",
                  "website": "noordkaap.example",
                  "activities": "MAIN :: 006 :: 2025 :: 49410;MAIN :: 001 :: 2025 :: 52100",
                  "financials": {
                    "closingDate": "2025-03-31",
                    "reference": "2025-00184417",
                    "schemaType": "full",
                    "employees": 186.4,
                    "equity": 12480310.52,
                    "operatingIncome": 3912774.18,
                    "ebitda": 5240118.66,
                    "resultForPeriod": 2731905.07,
                    "healthIndicator": 10
                  },
                  "has": {
                    "annualAccounts": true,
                    "participations": true,
                    "accountants": true,
                    "valuations": false,
                    "socialBalances": true
                  },
                  "snapshotDate": "2026-04-29"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          },
          "503": {
            "$ref": "#/components/responses/Busy"
          }
        }
      }
    },
    "/v1/companies/{id}/ownership": {
      "get": {
        "tags": [
          "Companies"
        ],
        "operationId": "getCompanyOwnership",
        "summary": "Eigendom ophalen",
        "description": "Wie een belang heeft in deze onderneming, en de belangen die zij in andere heeft. Beide richtingen hebben dezelfde vorm, en het ondernemingsnummer van elke andere partij kan direct terug in deze route, zodat u een keten kunt volgen.",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "responses": {
          "200": {
            "description": "Beide richtingen. Elke lijst kan leeg zijn.",
            "headers": {
              "X-Credits-Cost": {
                "$ref": "#/components/headers/X-Credits-Cost"
              },
              "X-Credits-Remaining": {
                "$ref": "#/components/headers/X-Credits-Remaining"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ownership"
                },
                "example": {
                  "enterpriseNumber": "BE0712345630",
                  "shareholders": [
                    {
                      "name": "Noordkaap Holding NV",
                      "enterpriseNumber": "BE0723456781",
                      "stakePercent": 72.5,
                      "shareClass": "Gewone aandelen",
                      "asOf": "2025-03-31",
                      "sourceReference": "2025-00184417",
                      "sourceSystem": "NBB",
                      "exact": true
                    }
                  ],
                  "participations": [
                    {
                      "name": "Noordkaap Warehousing",
                      "enterpriseNumber": "BE0734567835",
                      "stakePercent": 100,
                      "asOf": "2025-03-31",
                      "sourceReference": "2025-00184417",
                      "sourceSystem": "NBB",
                      "exact": true
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          },
          "503": {
            "$ref": "#/components/responses/Busy"
          }
        }
      }
    },
    "/v1/companies/{id}/financials": {
      "get": {
        "tags": [
          "Companies"
        ],
        "operationId": "getCompanyFinancials",
        "summary": "Neergelegde jaarrekeningen ophalen",
        "description": "De neergelegde cijfers, één rij per boekjaar, het nieuwste eerst. Een verbetering vervangt de neerlegging die ze verbetert en wordt gemarkeerd in plaats van verborgen. Elk boekjaar kost credits, dus tien jaar kost tien keer één jaar.",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "name": "years",
            "in": "query",
            "required": false,
            "description": "Hoeveel boekjaren terugkomen, 1 tot 20. Een ontbrekende, nul-, negatieve of grotere waarde geeft 10.",
            "schema": {
              "type": "integer",
              "default": 10
            }
          },
          {
            "name": "detail",
            "in": "query",
            "required": false,
            "description": "`true` voegt het kasstroomoverzicht en de benoemde balansposten toe aan elk boekjaar.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "De boekjaren. Een lege lijst als de onderneming niets heeft neergelegd.",
            "headers": {
              "X-Credits-Cost": {
                "$ref": "#/components/headers/X-Credits-Cost"
              },
              "X-Credits-Remaining": {
                "$ref": "#/components/headers/X-Credits-Remaining"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialsReply"
                },
                "example": {
                  "periods": [
                    {
                      "closingDate": "2025-03-31",
                      "reference": "2025-00184417",
                      "schemaType": "full",
                      "employees": 186.4,
                      "equity": 12480310.52,
                      "operatingIncome": 3912774.18,
                      "ebitda": 5240118.66,
                      "resultForPeriod": 2731905.07,
                      "healthIndicator": 10,
                      "cashFlow": {
                        "operating": 4410228.35,
                        "investing": -1876340.12,
                        "financing": -1504377.8,
                        "free": 2533888.23,
                        "cashAtPeriodEnd": 1388902.41,
                        "distributionsToOwners": 600000
                      },
                      "balanceSheet": {
                        "operatingProfit": 3480112.9,
                        "depreciation": 1328006.48,
                        "staffCosts": 9876540.21,
                        "totalAssets": 31902554.7,
                        "totalDebt": 8044120.33,
                        "interestPaid": 288410.12
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          },
          "503": {
            "$ref": "#/components/responses/Busy"
          }
        }
      }
    },
    "/v1/companies/{id}/people": {
      "get": {
        "tags": [
          "Companies"
        ],
        "operationId": "getCompanyPeople",
        "summary": "Personen ophalen",
        "description": "Bestuurders en andere mandaten die bij deze onderneming zijn neergelegd, eerst de huidige, dan de geschiedenis. Politieke partij, bezoldiging en woonadressen komen nooit terug, en personen die de bron als verborgen markeert, worden weggelaten.",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Hoeveel mandaten terugkomen, 1 tot 200. Een ontbrekende, nul-, negatieve of grotere waarde geeft 50.",
            "schema": {
              "type": "integer",
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "De mandaten. Een lege lijst als er geen zijn neergelegd.",
            "headers": {
              "X-Credits-Cost": {
                "$ref": "#/components/headers/X-Credits-Cost"
              },
              "X-Credits-Remaining": {
                "$ref": "#/components/headers/X-Credits-Remaining"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PeopleReply"
                },
                "example": {
                  "people": [
                    {
                      "lastName": "Verhaegen",
                      "firstName": "Lotte",
                      "category": "ADMINISTER",
                      "role": "13",
                      "profession": "Gedelegeerd bestuurder",
                      "startDate": "2024-09-25",
                      "endDate": "2028-09-27",
                      "current": true,
                      "viaCompany": "Verhaegen Consult BV",
                      "viaEnterpriseNumber": "BE1023456797",
                      "sourceSystem": "NBB",
                      "sourceReference": "2025-00184417"
                    },
                    {
                      "lastName": "Peeters",
                      "firstName": "Luc",
                      "category": "OTHERMANDATE",
                      "role": "Aankoper",
                      "current": true,
                      "sourceSystem": "BSDM"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          },
          "503": {
            "$ref": "#/components/responses/Busy"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "token": {
        "type": "http",
        "scheme": "bearer",
        "description": "Een `otb_live_`-token, aangemaakt in het OTB Studio-dashboard."
      }
    },
    "parameters": {
      "id": {
        "name": "id",
        "in": "path",
        "required": true,
        "description": "Het ondernemingsnummer. `0712.345.630`, `BE 0712 345 630` en `BE0712345630` worden allemaal aanvaard.",
        "schema": {
          "type": "string"
        },
        "example": "BE0712345630"
      }
    },
    "headers": {
      "X-Credits-Cost": {
        "description": "Wat dit antwoord kostte, in credits.",
        "schema": {
          "type": "integer"
        }
      },
      "X-Credits-Remaining": {
        "description": "Het saldo na dit antwoord.",
        "schema": {
          "type": "integer"
        }
      },
      "Retry-After": {
        "description": "Seconden wachten voor een nieuwe poging.",
        "schema": {
          "type": "integer"
        }
      }
    },
    "responses": {
      "Unauthorized": {
        "description": "Geen token, of een ongeldig token. `missing_token` als er geen `Authorization: Bearer`-header is, `invalid_token` als het token onbekend, ingetrokken of van de verkeerde soort is.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Unauthorized"
            }
          }
        }
      },
      "PaymentRequired": {
        "description": "De organisatie heeft geen abonnement, het saldo is leeg, of het saldo dekt dit antwoord niet. Als het antwoord te duur was, zeggen de headers wat het zou kosten en wat er overblijft.",
        "headers": {
          "X-Credits-Cost": {
            "$ref": "#/components/headers/X-Credits-Cost"
          },
          "X-Credits-Remaining": {
            "$ref": "#/components/headers/X-Credits-Remaining"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/PaymentRequired"
            }
          }
        }
      },
      "NotFound": {
        "description": "Geen onderneming heeft dit ondernemingsnummer.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/NotFound"
            }
          }
        }
      },
      "RateLimited": {
        "description": "De organisatie zit boven haar limiet (10 oproepen per seconde, pieken van 20) of heeft 4 oproepen lopen. Probeer opnieuw na `Retry-After`.",
        "headers": {
          "Retry-After": {
            "$ref": "#/components/headers/Retry-After"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/RateLimited"
            }
          }
        }
      },
      "Internal": {
        "description": "Er ging iets mis aan onze kant.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Internal"
            }
          }
        }
      },
      "Busy": {
        "description": "De gegevens konden niet binnen 15 seconden worden gelezen. Probeer opnieuw na `Retry-After`.",
        "headers": {
          "Retry-After": {
            "$ref": "#/components/headers/Retry-After"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Busy"
            }
          }
        }
      }
    },
    "schemas": {
      "SearchReply": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "companies"
        ],
        "properties": {
          "companies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Match"
            }
          }
        }
      },
      "Match": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "enterpriseNumber",
          "name"
        ],
        "properties": {
          "enterpriseNumber": {
            "type": "string",
            "description": "De sleutel voor elke andere route."
          },
          "name": {
            "type": "string",
            "description": "De naam die overeenkwam. Dat is niet altijd de naam waaronder u de onderneming kent."
          },
          "employees": {
            "type": "number",
            "description": "Gemiddeld aantal voltijdse equivalenten over het nieuwste boekjaar, niet het aantal personen. Het is geen geheel getal."
          },
          "statusCode": {
            "type": "string",
            "description": "De ruwe KBO-statuscode, zoals `AC` voor actief."
          }
        }
      },
      "Profile": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "enterpriseNumber",
          "deleted",
          "has"
        ],
        "properties": {
          "enterpriseNumber": {
            "type": "string"
          },
          "nameNl": {
            "type": "string",
            "description": "De Nederlandse naam."
          },
          "nameFr": {
            "type": "string",
            "description": "De Franse naam."
          },
          "abbreviationNl": {
            "type": "string"
          },
          "commercialName": {
            "type": "string"
          },
          "statusCode": {
            "type": "string",
            "description": "Ruwe KBO-code, zonder label."
          },
          "juridicalFormCode": {
            "type": "string",
            "description": "Ruwe KBO-code voor de rechtsvorm, zonder label."
          },
          "juridicalSituationCode": {
            "type": "string",
            "description": "Ruwe KBO-code, zonder label."
          },
          "typeOfEnterpriseCode": {
            "type": "string",
            "description": "Ruwe KBO-code, zonder label."
          },
          "deleted": {
            "type": "boolean",
            "description": "De onderneming bestaat niet meer. Teruggegeven in plaats van verborgen."
          },
          "startDate": {
            "type": "string",
            "format": "date"
          },
          "endDate": {
            "type": "string",
            "format": "date"
          },
          "street": {
            "type": "string"
          },
          "zipCode": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "telephone": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "website": {
            "type": "string"
          },
          "activities": {
            "type": "string",
            "description": "Een samengestelde tekst: `MAIN :: 006 :: 2025 :: 58120`, herhaald en gescheiden door `;`. Het laatste deel is de NACE-code en het derde deel is een jaar. De eerste twee delen zijn broncodes zonder gepubliceerde betekenis."
          },
          "financials": {
            "$ref": "#/components/schemas/Period"
          },
          "has": {
            "$ref": "#/components/schemas/Available"
          },
          "snapshotDate": {
            "type": "string",
            "format": "date",
            "description": "Wanneer deze onderneming het laatst uit de bron is bijgewerkt. Elk antwoord geldt op een datum."
          }
        }
      },
      "Available": {
        "type": "object",
        "additionalProperties": false,
        "description": "Welke andere datasets de bron voor deze onderneming heeft. Een bovengrens: een vlag op true betekent dat de bron de dataset heeft, niet dat een oproep rijen teruggeeft.",
        "required": [
          "annualAccounts",
          "participations",
          "accountants",
          "valuations",
          "socialBalances"
        ],
        "properties": {
          "annualAccounts": {
            "type": "boolean",
            "description": "Leesbaar via de route voor jaarrekeningen."
          },
          "participations": {
            "type": "boolean",
            "description": "Leesbaar via de route voor eigendom."
          },
          "accountants": {
            "type": "boolean",
            "description": "Neergelegd, nog niet geleverd door deze API."
          },
          "valuations": {
            "type": "boolean",
            "description": "Neergelegd, nog niet geleverd door deze API."
          },
          "socialBalances": {
            "type": "boolean",
            "description": "Neergelegd, nog niet geleverd door deze API."
          }
        }
      },
      "FinancialsReply": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "periods"
        ],
        "properties": {
          "periods": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Period"
            }
          }
        }
      },
      "Period": {
        "type": "object",
        "additionalProperties": false,
        "description": "Eén boekjaar, zoals neergelegd. Bedragen zijn in euro.",
        "required": [
          "closingDate"
        ],
        "properties": {
          "closingDate": {
            "type": "string",
            "format": "date"
          },
          "reference": {
            "type": "string",
            "description": "De referentie van de neerlegging bij de Nationale Bank van België, zodat u een cijfer kunt nakijken in het brondocument."
          },
          "schemaType": {
            "type": "string",
            "description": "Het schema van de neerlegging, zoals `full` of `abbreviated`. Een onderneming die van schema verandert, rapporteert een ander detailniveau."
          },
          "corrected": {
            "type": "boolean",
            "description": "Deze neerlegging verving een eerdere voor hetzelfde boekjaar. Dit is het geldende cijfer."
          },
          "comparative": {
            "type": "boolean",
            "description": "Deze cijfers komen uit de kolom van het vorige boekjaar in een latere neerlegging, niet uit een eigen neerlegging. De referentie kan niet worden opgezocht."
          },
          "employees": {
            "type": "number",
            "description": "Gemiddeld aantal voltijdse equivalenten over het boekjaar, niet het aantal personen."
          },
          "equity": {
            "type": "number"
          },
          "operatingIncome": {
            "type": "number"
          },
          "ebitda": {
            "type": "number",
            "description": "Het afgeleide cijfer van de bron. Een Belgische jaarrekening heeft geen EBITDA-post."
          },
          "resultForPeriod": {
            "type": "number"
          },
          "healthIndicator": {
            "type": "number",
            "description": "De score van de bron, een geheel getal van 1 tot 10. De methode is niet gepubliceerd."
          },
          "cashFlow": {
            "$ref": "#/components/schemas/CashFlow"
          },
          "balanceSheet": {
            "$ref": "#/components/schemas/BalanceSheet"
          }
        }
      },
      "CashFlow": {
        "type": "object",
        "additionalProperties": false,
        "description": "Het neergelegde kasstroomoverzicht. Alleen met `detail=true`.",
        "properties": {
          "operating": {
            "type": "number"
          },
          "investing": {
            "type": "number"
          },
          "financing": {
            "type": "number"
          },
          "free": {
            "type": "number"
          },
          "cashAtPeriodEnd": {
            "type": "number"
          },
          "distributionsToOwners": {
            "type": "number",
            "description": "Dividenden en andere uitkeringen aan eigenaars, zoals neergelegd."
          }
        }
      },
      "BalanceSheet": {
        "type": "object",
        "additionalProperties": false,
        "description": "De balansposten die op naam worden gevraagd. Alleen met `detail=true`.",
        "properties": {
          "operatingProfit": {
            "type": "number"
          },
          "depreciation": {
            "type": "number"
          },
          "staffCosts": {
            "type": "number"
          },
          "totalAssets": {
            "type": "number",
            "description": "Het balanstotaal."
          },
          "totalDebt": {
            "type": "number"
          },
          "interestPaid": {
            "type": "number",
            "description": "De kosten van schulden voor het boekjaar."
          }
        }
      },
      "Ownership": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "enterpriseNumber",
          "shareholders",
          "participations"
        ],
        "properties": {
          "enterpriseNumber": {
            "type": "string"
          },
          "shareholders": {
            "type": "array",
            "description": "Belangen in deze onderneming.",
            "items": {
              "$ref": "#/components/schemas/Stake"
            }
          },
          "participations": {
            "type": "array",
            "description": "Belangen die deze onderneming in andere heeft.",
            "items": {
              "$ref": "#/components/schemas/Stake"
            }
          }
        }
      },
      "Stake": {
        "type": "object",
        "additionalProperties": false,
        "description": "Eén eigendomsband, gelezen vanaf elke kant.",
        "required": [
          "exact"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "De andere partij."
          },
          "enterpriseNumber": {
            "type": "string",
            "description": "Het nummer van de andere partij. Niet altijd Belgisch."
          },
          "stakePercent": {
            "type": "number",
            "description": "Het rechtstreekse belang, 50 voor de helft."
          },
          "indirectPercent": {
            "type": "number",
            "description": "Een belang via een andere entiteit, op dezelfde schaal."
          },
          "shareClass": {
            "type": "string",
            "description": "De aandelencategorie zoals neergelegd, in de taal van de neerlegging."
          },
          "asOf": {
            "type": "string",
            "format": "date",
            "description": "Het einde van het boekjaar dat de neerlegging dekt."
          },
          "sourceReference": {
            "type": "string",
            "description": "De neerlegging waaruit het belang is gelezen."
          },
          "sourceSystem": {
            "type": "string",
            "description": "`NBB` voor neerleggingen bij de Nationale Bank. Hun referenties kunnen worden opgezocht."
          },
          "exact": {
            "type": "boolean",
            "description": "Het eigen vertrouwen van de bron dat deze band precies is gestaafd. False wijst op een verouderde of afgeleide vermelding."
          }
        }
      },
      "PeopleReply": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "people"
        ],
        "properties": {
          "people": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Mandate"
            }
          }
        }
      },
      "Mandate": {
        "type": "object",
        "additionalProperties": false,
        "description": "Eén functie die een persoon heeft, of had, bij deze onderneming.",
        "required": [
          "current"
        ],
        "properties": {
          "lastName": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "category": {
            "type": "string",
            "description": "`ADMINISTER`, `SHAREHOLDER`, `LOCALPOLITICALMANDATE` of `OTHERMANDATE`."
          },
          "role": {
            "type": "string",
            "description": "Voor `ADMINISTER` een broncode zonder label, zoals `13`. Voor de andere categorieën de functie in woorden, in de taal van de neerlegging."
          },
          "profession": {
            "type": "string"
          },
          "startDate": {
            "type": "string",
            "format": "date"
          },
          "endDate": {
            "type": "string",
            "format": "date",
            "description": "Meestal het einde van de termijn, niet de dag waarop de persoon vertrok."
          },
          "current": {
            "type": "boolean",
            "description": "Of het mandaat vandaag loopt. Lees dit veld in plaats van de datums."
          },
          "viaCompany": {
            "type": "string",
            "description": "Ingevuld als het mandaat via een vennootschap loopt, met deze persoon als vaste vertegenwoordiger."
          },
          "viaEnterpriseNumber": {
            "type": "string"
          },
          "sourceSystem": {
            "type": "string"
          },
          "sourceReference": {
            "type": "string"
          }
        }
      },
      "QueryRequired": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "code"
        ],
        "properties": {
          "code": {
            "type": "string",
            "enum": [
              "query_required"
            ]
          }
        }
      },
      "Unauthorized": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "code"
        ],
        "properties": {
          "code": {
            "type": "string",
            "enum": [
              "missing_token",
              "invalid_token"
            ]
          }
        }
      },
      "PaymentRequired": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "code"
        ],
        "properties": {
          "code": {
            "type": "string",
            "enum": [
              "insufficient_credits"
            ]
          }
        }
      },
      "NotFound": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "code"
        ],
        "properties": {
          "code": {
            "type": "string",
            "enum": [
              "not_found"
            ]
          }
        }
      },
      "RateLimited": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "code"
        ],
        "properties": {
          "code": {
            "type": "string",
            "enum": [
              "rate_limited"
            ]
          }
        }
      },
      "Internal": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "code"
        ],
        "properties": {
          "code": {
            "type": "string",
            "enum": [
              "internal"
            ]
          }
        }
      },
      "Busy": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "code"
        ],
        "properties": {
          "code": {
            "type": "string",
            "enum": [
              "busy"
            ]
          }
        }
      }
    }
  }
}
