---
title: "Road user charges for an EV, diesel or plug-in hybrid"
method: POST
path: "/v1/road-user-charges"
tags: ["Calculators"]
---

# Road user charges for an EV, diesel or plug-in hybrid

`POST /v1/road-user-charges`

## Request

- Base URL: `https://api.calculate.co.nz`
- URL: `https://api.calculate.co.nz/v1/road-user-charges`
- Auth: API key in header `X-API-Key`

What a light vehicle pays in road user charges over a year.

Petrol vehicles pay for the road invisibly, through excise at the pump.
Diesels, EVs and plug-in hybrids pay little or no excise and buy road user
charges instead, in prepaid 1,000 km blocks, which is why the bill feels
like a new tax rather than the same tax collected differently.
`petrol_equivalent_excise` is there to make that comparison directly.

**The transaction fee is the part a naive calculation misses.** RUC is
bought in blocks and every purchase carries a fee, so 20,000 km bought in
1,000 km blocks pays it twenty times. Buying larger blocks is the main
lever a driver has, and `transactions` and `admin_total` make it visible.

A PETROL plug-in hybrid pays roughly half, because it already pays excise
on the petrol side. A DIESEL plug-in hybrid pays the full rate, because
diesel carries no excise. That catches people out.

An ordinary petrol hybrid pays NO road user charges. It is not exempt: it
pays at the pump like any other petrol vehicle, and the response says so.

Light vehicles 3,500 kg and under only. Heavy vehicle rates run to dozens
of weight and axle combinations and are not here. `provenance` says which
figures are confirmed against NZTA: the rate is, the fees are not.

## Request body

- RoadUserChargesRequest
  - `annual_km` number, required: Distance driven in a year.
  - `vehicle_type` string: ev, diesel, phev_petrol, phev_diesel or hybrid_petrol. A PETROL plug-in hybrid pays about half; a DIESEL one pays the full rate. An ordinary petrol hybrid pays no RUC at all.
  - `block_size_km` number: Size of each RUC purchase. Larger blocks mean fewer transaction fees, which is the main lever a driver has.
  - `purchase_method` string: online or agent. The transaction fee differs.
  - `fuel_efficiency_l_per_100km` number: Used only for the petrol excise comparison, never for the RUC itself.

## Response `200`

The annual charge, the transaction fees, and what a petrol driver pays instead.

- RoadUserChargesResponse
  - `result` RoadUserChargesResult, required
    - `vehicle_type` string, required: Vehicle type as given.
    - `vehicle_label` string, required: What that type means.
    - `pays_ruc` boolean, required: False for an ordinary petrol hybrid.
    - `ruc_rate_per_1000km` number, required: The rate charged per 1,000 km.
    - `annual_km` number, required: Distance as given.
    - `ruc_charge` number, required: The charge itself, before fees.
    - `block_size_km` number, required: Purchase block size used.
    - `transactions` integer, required: Purchases needed in a year.
    - `admin_fee_each` number, required: Transaction fee per purchase.
    - `admin_total` number, required: Fees for the year. A naive distance-times-rate calculation misses this entirely, and at small block sizes it is not small.
    - `total_annual_cost` number, required: Charge plus fees.
    - `cost_per_km_cents` number, required: Effective cost in cents per kilometre.
    - `petrol_equivalent_excise` number, required: What a petrol vehicle would pay in excise over the same distance.
    - `difference_against_petrol` number, required: Positive means the RUC vehicle pays more.
    - `fuel_efficiency_l_per_100km` number, required: Efficiency used for the comparison.
    - `note` string, required: The transaction arithmetic, or why no RUC is due.
    - `provenance` object, required: Which figures are confirmed against NZTA and which are not. The rate is; the transaction fees are not.
    - `tax_year` string, required: Year the rates are for.
  - `disclaimer` string, required: Scope and limits of this calculation.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/calculate/apis/calculate-co-nz-api.md) · [All operations](https://skmtc.dev/calculate/apis/calculate-co-nz-api/llms.txt) · [OpenAPI document](https://skmtc.dev/calculate/apis/calculate-co-nz-api/revisions/aa59a8e76614?raw)
