OOtoto API Docs
API Reference

Tax Matrix

Returns a RoadTax and YearlyTax matrix for a single vehicle across every combination of entity profile and Belgian region, in one call. Built for partners who need a full tax overview for a vehicle without issuing one request per profile/region combination.

GET /GetTaxMatrix
Requires calculation access

This endpoint needs calculation access enabled on your subscription, in addition to a valid key. See Authentication.

Request

GET https://api.ototo.be/v1/GetTaxMatrix?id={carDetailId}&subscription-key=YOUR_KEY

Query parameters

ParameterTypeRequiredDescription
idguidrequiredThe car detail's unique identifier — see Car Details

Response

200 OK

Response shape (abridged — real responses include every profile × region combination)
{
  "carDetailId": "12345678-1234-1234-1234-123456789abc",
  "rows": [
    {
      "status": "Private",
      "registrationOn": "PrivateRegistration",
      "regions": [
        { "region": "Brussels", "roadTax": 662.64, "yearlyTax": 1320.00 },
        { "region": "Flanders", "roadTax": 336.62, "yearlyTax":  980.00 },
        { "region": "Wallonia", "roadTax": 662.64, "yearlyTax": 1100.00 }
      ]
    },
    {
      "status": "SoleProprietor",
      "registrationOn": "CompanyRegistration",
      "regions": [
        { "region": "Brussels", "roadTax": 662.64, "yearlyTax": 1320.00 },
        { "region": "Flanders", "roadTax": 336.62, "yearlyTax":  980.00 },
        { "region": "Wallonia", "roadTax": 662.64, "yearlyTax": 1100.00 }
      ]
    }
  ]
}
FieldTypeDescription
carDetailIdguidThe car detail ID that was requested
rowsarrayOne entry per entity/profile combination — see below

Each entry in rows

FieldTypeDescription
statusenumTaxpayer status — see ProfileStatus on the Calculate page
registrationOnenumWho the vehicle is registered to — see RegistrationOn on the Calculate page
regionsarrayTax values, one entry per region — see below

Each entry in regions

FieldTypeDescription
regionenumBelgian region — see Region on the Calculate page
roadTaxdecimal?Registration tax (BIV / TMC), excl. VAT. null if there's no result (e.g. an exemption applies).
yearlyTaxdecimal?Annual road tax (verkeersbelasting), excl. VAT. null if there's no result.
Built to extend without a schema change

The response is a plain collection with no fixed property per region or entity type. A new value added to Region appears as an extra entry inside regions on every row; a new ProfileStatus or RegistrationOn value appears as an extra row. Iterate over rows and regions dynamically — don't rely on array position or a hardcoded set of property names, since the matrix can grow over time.

Error responses

StatusCondition
400id is missing or not a valid GUID
401Subscription key is missing or invalid, the subscription is inactive, or calculation access isn't enabled — see Authentication
404No car detail found for the given id

Tax Matrix vs. Calculate

CalculateTax Matrix
InputVehicle object or a stored car detail IDCar detail ID only
ProfileYou specify one profileEvery profile computed automatically
RegionsYou specify one regionEvery region computed automatically
CalculatorsAny combination via viewOptionsRoadTax and YearlyTax only
Best forA detailed single-scenario calculationA full tax overview for a dashboard or comparison view

See also

  • Calculate — detailed single-profile calculation, including benefit-in-kind, fiscal deduction, and CO₂ contribution
  • Car Details — create the vehicle you reference by id