{
  "openapi": "3.0.3",
  "info": {
    "title": "Company Belgium API v2",
    "description": "Belgian Crossroads Bank of Enterprises (BCE/KBO) open data, enriched with NBB CBSO financial analysis, Moniteur Belge beneficial-owner extraction and webhook delivery. Authenticate with the `X-API-Key` and `X-API-Secret` headers.",
    "version": "2.0.0",
    "contact": {
      "name": "Company Belgium Support",
      "url": "https://companybelgium.be"
    }
  },
  "servers": [
    {
      "url": "https://companybelgium.be",
      "description": "Production"
    },
    {
      "url": "http://localhost:3002",
      "description": "Development"
    }
  ],
  "security": [
    {
      "ApiKeyAuth": [],
      "ApiSecretAuth": []
    },
    {
      "BearerAuth": []
    }
  ],
  "tags": [
    {
      "name": "Enterprise",
      "description": "Belgian enterprise data"
    },
    {
      "name": "Establishment",
      "description": "Establishment units attached to an enterprise"
    },
    {
      "name": "Reference",
      "description": "NACE codes, juridical forms, denominations autocomplete"
    },
    {
      "name": "Search",
      "description": "Recherche d'entreprises (adresse, etc.)"
    },
    {
      "name": "VAT",
      "description": "VIES VAT validation for EU cross-border"
    },
    {
      "name": "Subscriber",
      "description": "Authenticated customer introspection"
    },
    {
      "name": "Webhooks",
      "description": "Outbound webhook subscriptions"
    },
    {
      "name": "OAuth",
      "description": "Authentification OAuth2 pour les applications developpeurs."
    }
  ],
  "paths": {
    "/api/v2/enterprise/{num}": {
      "get": {
        "tags": [
          "Enterprise"
        ],
        "summary": "Retrieve enterprise details",
        "parameters": [
          {
            "$ref": "#/components/parameters/EnterpriseNumber"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/EnterpriseDetail"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/api/v2/enterprise/{num}/activities": {
      "get": {
        "tags": [
          "Enterprise"
        ],
        "summary": "List all enterprise activities",
        "parameters": [
          {
            "$ref": "#/components/parameters/EnterpriseNumber"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Activities"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/api/v2/enterprise/{num}/address": {
      "get": {
        "tags": [
          "Enterprise"
        ],
        "summary": "Retrieve the enterprise registered office address",
        "parameters": [
          {
            "$ref": "#/components/parameters/EnterpriseNumber"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Address"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/api/v2/enterprise/{num}/contact": {
      "get": {
        "tags": [
          "Enterprise"
        ],
        "summary": "Retrieve contact information (phone, email, website)",
        "parameters": [
          {
            "$ref": "#/components/parameters/EnterpriseNumber"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Contact"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/api/v2/enterprise/{num}/denominations": {
      "get": {
        "tags": [
          "Enterprise"
        ],
        "summary": "List all enterprise denominations",
        "parameters": [
          {
            "$ref": "#/components/parameters/EnterpriseNumber"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Denominations"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/api/v2/enterprise/{num}/denomination/{language}/{type}": {
      "get": {
        "tags": [
          "Enterprise"
        ],
        "summary": "Retrieve a specific denomination by language and type",
        "parameters": [
          {
            "$ref": "#/components/parameters/EnterpriseNumber"
          },
          {
            "name": "language",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "fr",
                "nl",
                "de",
                "en"
              ]
            }
          },
          {
            "name": "type",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "social",
                "short",
                "commercial"
              ]
            },
            "description": "Denomination kind"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Denomination"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/api/v2/enterprise/{num}/establishments": {
      "get": {
        "tags": [
          "Enterprise"
        ],
        "summary": "List all establishments attached to the enterprise",
        "parameters": [
          {
            "$ref": "#/components/parameters/EnterpriseNumber"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Establishments"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/api/v2/enterprise/{num}/financial": {
      "get": {
        "tags": [
          "Enterprise"
        ],
        "summary": "Short financial summary (latest filing + 3-year trend)",
        "description": "Derived from the Belgian National Bank CBSO filings. Returns the most recent year plus the three most recent data points for profit, turnover and equity. For the full multi-year analysis use the dashboard endpoint.",
        "parameters": [
          {
            "$ref": "#/components/parameters/EnterpriseNumber"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Financial"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/api/v2/enterprise/{num}/roles": {
      "get": {
        "tags": [
          "Enterprise"
        ],
        "summary": "Beneficial owners and officers",
        "description": "Automatically extracted from the most recent constitution / nomination / cession act published in the Moniteur Belge. Cached until a newer publication appears.",
        "parameters": [
          {
            "$ref": "#/components/parameters/EnterpriseNumber"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Roles"
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          }
        }
      }
    },
    "/api/v2/establishment/{num}": {
      "get": {
        "tags": [
          "Establishment"
        ],
        "summary": "Retrieve establishment details",
        "parameters": [
          {
            "$ref": "#/components/parameters/EstablishmentNumber"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/EstablishmentDetail"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/api/v2/establishment/{num}/activities": {
      "get": {
        "tags": [
          "Establishment"
        ],
        "summary": "List establishment activities",
        "parameters": [
          {
            "$ref": "#/components/parameters/EstablishmentNumber"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Activities"
          }
        }
      }
    },
    "/api/v2/establishment/{num}/address": {
      "get": {
        "tags": [
          "Establishment"
        ],
        "summary": "Retrieve establishment address",
        "parameters": [
          {
            "$ref": "#/components/parameters/EstablishmentNumber"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Address"
          }
        }
      }
    },
    "/api/v2/establishment/{num}/contact": {
      "get": {
        "tags": [
          "Establishment"
        ],
        "summary": "Retrieve establishment contact information",
        "parameters": [
          {
            "$ref": "#/components/parameters/EstablishmentNumber"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Contact"
          }
        }
      }
    },
    "/api/v2/establishment/{num}/denominations": {
      "get": {
        "tags": [
          "Establishment"
        ],
        "summary": "List establishment denominations",
        "parameters": [
          {
            "$ref": "#/components/parameters/EstablishmentNumber"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Denominations"
          }
        }
      }
    },
    "/api/v2/establishment/{num}/denomination/{language}": {
      "get": {
        "tags": [
          "Establishment"
        ],
        "summary": "Retrieve a specific establishment denomination by language",
        "parameters": [
          {
            "$ref": "#/components/parameters/EstablishmentNumber"
          },
          {
            "name": "language",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Denomination"
          }
        }
      }
    },
    "/api/v2/naces": {
      "get": {
        "tags": [
          "Reference"
        ],
        "summary": "Search NACE codes",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Substring to match in code or description"
          },
          {
            "name": "version",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "NACE revision (e.g. 2025, 2008)"
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 50,
              "maximum": 200
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Naces"
          }
        }
      }
    },
    "/api/v2/nace/{version}/{code}": {
      "get": {
        "tags": [
          "Reference"
        ],
        "summary": "Retrieve a NACE entry by version and code",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "code",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Nace"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/api/v2/juridical-forms": {
      "get": {
        "tags": [
          "Reference"
        ],
        "summary": "List / search juridical forms",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 100,
              "maximum": 500
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/JuridicalForms"
          }
        }
      }
    },
    "/api/v2/juridical-situations": {
      "get": {
        "tags": [
          "Reference"
        ],
        "summary": "List / search juridical situations",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 100,
              "maximum": 500
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/JuridicalForms"
          }
        }
      }
    },
    "/api/v2/denominations": {
      "get": {
        "tags": [
          "Reference"
        ],
        "summary": "Autocomplete enterprise denominations (name search)",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 2
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "maximum": 50
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DenominationSearch"
          }
        }
      }
    },
    "/api/v2/vat/{vatNumber}": {
      "get": {
        "tags": [
          "VAT"
        ],
        "summary": "Validate an EU VAT number via VIES",
        "description": "Calls the European Commission VIES SOAP service and returns the trader name/address when disclosed. 24 h cache.",
        "parameters": [
          {
            "name": "vatNumber",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "VAT identifier, e.g. `BE1033022383`, `BE 1.033.022.383` or `1033022383` (BE default)"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/VatCheck"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          }
        }
      }
    },
    "/api/v2/me": {
      "get": {
        "tags": [
          "Subscriber"
        ],
        "summary": "Authenticated customer snapshot (plan, quota usage)",
        "responses": {
          "200": {
            "$ref": "#/components/responses/Me"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        }
      }
    },
    "/api/v2/webhooks": {
      "get": {
        "tags": [
          "Webhooks"
        ],
        "summary": "List all webhooks for the authenticated company",
        "responses": {
          "200": {
            "$ref": "#/components/responses/WebhookList"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        }
      }
    },
    "/api/v2/webhook": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Create a webhook (HMAC secret returned only once)",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name",
                  "url"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "url": {
                    "type": "string",
                    "format": "uri",
                    "description": "Must be an absolute HTTPS URL"
                  },
                  "entityNumbers": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "pattern": "^\\d{10}$"
                    },
                    "description": "Optional list of entity numbers to pre-subscribe"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/WebhookCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          }
        }
      }
    },
    "/api/v2/webhook/{id}": {
      "get": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Retrieve a webhook",
        "parameters": [
          {
            "$ref": "#/components/parameters/WebhookId"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Webhook"
          }
        }
      },
      "put": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Update name / url / disabled",
        "parameters": [
          {
            "$ref": "#/components/parameters/WebhookId"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "disabled": {
                    "type": "boolean"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Webhook"
          }
        }
      },
      "delete": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Delete a webhook (cascades subscriptions + events)",
        "parameters": [
          {
            "$ref": "#/components/parameters/WebhookId"
          }
        ],
        "responses": {
          "200": {
            "description": "Deleted"
          }
        }
      }
    },
    "/api/v2/webhook/{id}/hmac-secret": {
      "patch": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Rotate the HMAC signing secret",
        "parameters": [
          {
            "$ref": "#/components/parameters/WebhookId"
          }
        ],
        "responses": {
          "200": {
            "description": "New secret returned exactly once",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "hmacSecret": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/webhook/{id}/trigger": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Manually trigger a test delivery",
        "parameters": [
          {
            "$ref": "#/components/parameters/WebhookId"
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "entityNumber": {
                    "type": "string",
                    "pattern": "^\\d{10}$"
                  },
                  "data": {
                    "type": "object"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Triggered"
          }
        }
      }
    },
    "/api/v2/webhook/{id}/subscriptions": {
      "get": {
        "tags": [
          "Webhooks"
        ],
        "summary": "List subscribed entity numbers",
        "parameters": [
          {
            "$ref": "#/components/parameters/WebhookId"
          }
        ],
        "responses": {
          "200": {
            "description": "Subscription list"
          }
        }
      },
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Add entity subscriptions",
        "parameters": [
          {
            "$ref": "#/components/parameters/WebhookId"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "entityNumbers"
                ],
                "properties": {
                  "entityNumbers": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "pattern": "^\\d{10}$"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Added"
          }
        }
      },
      "delete": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Remove entity subscriptions",
        "parameters": [
          {
            "$ref": "#/components/parameters/WebhookId"
          }
        ],
        "responses": {
          "200": {
            "description": "Removed"
          }
        }
      }
    },
    "/api/v2/webhook/{id}/events": {
      "get": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Delivery log (last 100)",
        "parameters": [
          {
            "$ref": "#/components/parameters/WebhookId"
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 100,
              "maximum": 500
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Event log"
          }
        }
      }
    },
    "/api/oauth/token": {
      "post": {
        "tags": [
          "OAuth"
        ],
        "summary": "Obtenir un jeton d'acces (OAuth2 client_credentials)",
        "description": "Echange les identifiants d'une application developpeur (client_id + client_secret) contre un jeton Bearer de courte duree (1 h). Utilisez ensuite ce jeton dans l'en-tete Authorization des appels a l'API v2.",
        "security": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "required": [
                  "grant_type",
                  "client_id",
                  "client_secret"
                ],
                "properties": {
                  "grant_type": {
                    "type": "string",
                    "enum": [
                      "client_credentials"
                    ]
                  },
                  "client_id": {
                    "type": "string",
                    "example": "cb_app_live_xxxxxxxxxxxxxxxx"
                  },
                  "client_secret": {
                    "type": "string",
                    "example": "cb_secret_live_xxxxxxxxxxxxxxxx"
                  },
                  "scope": {
                    "type": "string",
                    "description": "Optionnel — sous-ensemble des scopes de l'application, separes par des espaces."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Jeton d'acces emis",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "access_token": {
                      "type": "string",
                      "example": "cbat_xxxxxxxxxxxxxxxx"
                    },
                    "token_type": {
                      "type": "string",
                      "example": "Bearer"
                    },
                    "expires_in": {
                      "type": "integer",
                      "example": 3600
                    },
                    "scope": {
                      "type": "string",
                      "example": "enterprise:read search"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requete invalide (grant_type non supporte, parametres manquants)"
          },
          "401": {
            "description": "Identifiants client invalides"
          }
        }
      }
    },
    "/api/v2/search/address": {
      "get": {
        "tags": [
          "Search"
        ],
        "summary": "Search enterprises by postal address",
        "description": "Returns active and inactive enterprises whose registered or seat address matches the given postal code and street (partial match, FR or NL). Requires the `search` scope.",
        "parameters": [
          {
            "name": "postalCode",
            "in": "query",
            "required": true,
            "description": "4-digit Belgian postal code",
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}$",
              "example": "1000"
            }
          },
          {
            "name": "street",
            "in": "query",
            "required": true,
            "description": "Street name (partial match, FR or NL)",
            "schema": {
              "type": "string",
              "example": "Rue de la Loi"
            }
          },
          {
            "name": "houseNumber",
            "in": "query",
            "required": false,
            "description": "Exact house number",
            "schema": {
              "type": "string",
              "example": "16"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "description": "Résultats par page (défaut 20, max 100). Alias : limit.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 20
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "1-based page number (20 results per page)",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/AddressSearch"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "X-API-Key"
      },
      "ApiSecretAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "X-API-Secret"
      },
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "Jeton OAuth2 obtenu via POST /api/oauth/token (grant client_credentials). Alternative aux en-tetes X-API-Key / X-API-Secret, reservee aux applications developpeurs."
      }
    },
    "parameters": {
      "EnterpriseNumber": {
        "name": "num",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string",
          "example": "1.033.022.383"
        },
        "description": "Belgian enterprise number (with or without dots, optional `BE` prefix)"
      },
      "EstablishmentNumber": {
        "name": "num",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string",
          "example": "2278906914"
        }
      },
      "WebhookId": {
        "name": "id",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      }
    },
    "schemas": {
      "ApiEnvelope": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "data": {},
          "error": {
            "type": "string",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "meta": {
            "type": "object",
            "nullable": true
          }
        }
      }
    },
    "responses": {
      "NotFound": {
        "description": "Resource not found",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiEnvelope"
            }
          }
        }
      },
      "BadRequest": {
        "description": "Invalid request payload",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiEnvelope"
            }
          }
        }
      },
      "Unauthorized": {
        "description": "Missing or invalid API key",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiEnvelope"
            }
          }
        }
      },
      "BadGateway": {
        "description": "Upstream dependency failed",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiEnvelope"
            }
          }
        }
      },
      "EnterpriseDetail": {
        "description": "Enterprise detail",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiEnvelope"
            }
          }
        }
      },
      "EstablishmentDetail": {
        "description": "Establishment detail",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiEnvelope"
            }
          }
        }
      },
      "Activities": {
        "description": "Activity list",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiEnvelope"
            }
          }
        }
      },
      "Address": {
        "description": "Address payload",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiEnvelope"
            }
          }
        }
      },
      "Contact": {
        "description": "Contact payload",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiEnvelope"
            }
          }
        }
      },
      "Denominations": {
        "description": "Denomination list",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiEnvelope"
            }
          }
        }
      },
      "Denomination": {
        "description": "Single denomination",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiEnvelope"
            }
          }
        }
      },
      "Establishments": {
        "description": "Establishments list",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiEnvelope"
            }
          }
        }
      },
      "Financial": {
        "description": "Latest filing + 3-year series",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiEnvelope"
            }
          }
        }
      },
      "Roles": {
        "description": "Beneficial owners and officers",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiEnvelope"
            }
          }
        }
      },
      "Naces": {
        "description": "NACE list",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiEnvelope"
            }
          }
        }
      },
      "Nace": {
        "description": "Single NACE entry",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiEnvelope"
            }
          }
        }
      },
      "JuridicalForms": {
        "description": "Juridical forms list",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiEnvelope"
            }
          }
        }
      },
      "DenominationSearch": {
        "description": "Autocomplete denominations",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiEnvelope"
            }
          }
        }
      },
      "VatCheck": {
        "description": "VIES check result",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiEnvelope"
            }
          }
        }
      },
      "Me": {
        "description": "Subscriber snapshot",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiEnvelope"
            }
          }
        }
      },
      "WebhookList": {
        "description": "All webhooks",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiEnvelope"
            }
          }
        }
      },
      "Webhook": {
        "description": "Single webhook",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiEnvelope"
            }
          }
        }
      },
      "WebhookCreated": {
        "description": "Webhook created — HMAC secret returned once",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiEnvelope"
            }
          }
        }
      },
      "AddressSearch": {
        "description": "Paginated list of enterprises matching the address",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiEnvelope"
            }
          }
        }
      }
    }
  }
}
