Skip to content

Calculate Government Charges

POST
/api/v1/government_charges/calculate
curl --request POST \
--url https://dashboard.dealerstudio.com.au/api/v1/government_charges/calculate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "model_variant_id": 123, "vehicle_use": "private", "interior_colour_id": 456, "exterior_colour_id": 789, "state": "ACT", "vehicle_condition": "new", "postcode": "3000", "accessories": [ 101, 102 ] }'

Calculates government charges (registration, CTP, stamp duty, etc.) for a vehicle based on its attributes and jurisdiction. This endpoint is intended for external API consumers and requires API key authentication with the calculate:government_charge permission. Pricing (base_price and dealer_delivery_fee) is automatically calculated from the model variant and selected colours. Optional accessories (IDs linked to the model variant) are summed inc GST into the dutiable value. Vehicle attributes are automatically extracted from the model variant.

Media type application/json
object
model_variant_id
required

Required. ID of the model variant. Vehicle attributes (fuel_kind, seats, year, tare_weight, engine_size_litres, body_type, vehicle_category, etc.) are automatically extracted from the model variant. Base price is calculated from model_variant.dap_min_price + exterior_colour.price + interior_colour.price. Dealer delivery fee is retrieved from model_variant.recommended_dealer_delivery_fee.

integer
Example
123
vehicle_use
required

Required. Vehicle use type

string
Allowed values: private commercial
Example
private
interior_colour_id
required

Required. ID of the interior colour. The colour price is added to the base price calculation.

integer
Example
456
exterior_colour_id
required

Required. ID of the exterior colour. The colour price is added to the base price calculation.

integer
Example
789
state
required

Required. Australian state or territory for which to calculate charges

string
Allowed values: ACT NSW NT QLD SA TAS VIC WA
Example
NSW
vehicle_condition

Optional. Vehicle condition. If not specified, defaults to “new”

string
Allowed values: new demo used
Example
new
postcode

Optional. Postcode for jurisdiction-specific calculations (e.g., VIC CTP zones)

string
Example
3000
accessories

Optional. Accessory IDs linked to the model variant (accessory_model_variants). Prices inc GST are summed for charge calculations.

Array<integer>
Example
[
101,
102
]

Government charges calculated with model variant and colours

Media type application/json
object
results
required
Array<object>
object
charge_definition_id
required
integer
charge_definition_label
required
string
charge_definition_code
required
string
charge_definition_jurisdiction
required
string
rule_id
required
integer
rule_notes
string
nullable
amount_cents
required
integer
amount
required
number format: float
calculation_method
required
string
Allowed values: static tiered formula external_api
base_price
required

Base price (EGC) in dollars, calculated from model_variant.dap_min_price + exterior_colour.price + interior_colour.price

number format: float
dealer_delivery_fee
required

Dealer delivery fee in dollars, retrieved from model_variant.recommended_dealer_delivery_fee

number format: float
accessories_inc_gst
required

Sum of selected accessories inc GST in dollars (0 when none supplied)

number format: float
Example
{
"results": [
{
"charge_definition_id": 1,
"charge_definition_label": "NSW Vehicle Registration",
"charge_definition_code": "registration",
"charge_definition_jurisdiction": "NSW",
"rule_id": 1,
"rule_notes": "Standard registration fee",
"amount_cents": 10000,
"amount": 100,
"calculation_method": "static"
}
],
"base_price": 72995,
"dealer_delivery_fee": 1995,
"accessories_inc_gst": 0
}

Unauthorized - API key lacks required permission

Media type application/json
object
error
required
string
Example
{
"error": "Invalid or missing API key"
}

Missing required parameter - state

Media type application/json
object
error
required
string
Example
{
"error": "state is required"
}