Skip to content

Quote reference

Calculates a drive-away price. Send JSON. All money is in cents (AUD).


Field Type Required Description
pricingCode string Yes Jurisdiction: AU_NSW, AU_VIC, AU_QLD, AU_WA, AU_SA, AU_TAS, AU_ACT or AU_NT. This is the state the vehicle is registered in.
showroomCode string Yes Your showroom code. Must be one your API client is bound to.
purchaseDate date Yes Contract date, YYYY-MM-DD. Sets the financial year and is the supply date for the LCT two-year test.
vehicle object one of A vehicle described by make/model/year. See Vehicle.
vehicleGeneric object one of A vehicle described by body type, when you don’t have or don’t want to send make/model. See Vehicle.
pricingInputs object Yes Your commercial inputs, split into dutiable, onRoad and additional. See Pricing inputs.
registration object Yes Registration term, start date, postcode and type. See Registration.
customer object Yes Buyer type and any concession. See Customer.
taxDatePolicy object recommended What to do when registration.startDate is beyond the dates we have published rates for. Send { "outOfRange": "error" }. See Tax date policy.
pricingInputDefaults object Default tax metadata applied to every input line that doesn’t carry its own.

Send exactly one of vehicle or vehicleGeneric. If you send both, vehicle is used and a warning is returned.

vehicle requires make, model, year and fuelType. vehicleGeneric requires bodyType and fuelType. Every other field is optional and can be sent on either shape.

Field Type Description
make, model string vehicle only. Case-insensitive.
year integer Model year. Required on vehicle, optional on vehicleGeneric.
bodyType string passenger, suv, ute, van, truck, cab_chassis, trailer, tractor. Required on vehicleGeneric. van means a goods van; send people movers as passenger. Victoria and SA tax utes and goods vans differently (see Used vehicles).
fuelType string BEV, PHEV, HYBRID or ICE.
tareKg number Tare mass in kg. Several states band registration by weight. See States & inputs.
gvmKg number Gross vehicle mass in kg. Vehicles over 4,500 kg are heavy vehicles for duty purposes (e.g. no Queensland $100,000+ surcharge).
cylinders integer Engine cylinders for ICE, HYBRID and PHEV (rotary: twice the rotors). Queensland duty and registration depend on it.
condition string new or used. See Used vehicles.
firstRegistrationDate date Date first registered in Australia. Used vehicles: proves the car is outside the LCT two-year window.
importDate date Date imported (entered for home consumption). Used vehicles: the LCT two-year clock.
manufactureDate date Build date. Used vehicles: can show the car is within the LCT window.
lctPreviouslyPaid integer LCT already paid on this car, in cents. Required for a used car within the LCT window above the threshold.
co2GramsPerKm number Combined CO2 emissions. Victoria’s “green car” duty rate applies at 120 g/km or less; BEVs and PHEVs qualify automatically.
fuelConsumptionLPer100km number Combined fuel consumption from the fuel label. LCT fuel-efficient threshold applies at 3.5 L/100km or less.
seats integer Seats including the driver. LCT: 10+ seats is not a car; used in the ute commercial-vehicle test.
kerbMassKg number Kerb (unladen) mass. With gvmKg, decides the LCT load tests for utes and heavy-load vehicles.
isWheelchairModified boolean Vehicle modified for wheelchair access (NSW disability concessions).

Each of dutiable (required), onRoad and additional is a list of lines:

Field Type Required Description
description string Yes Your label. It is echoed back in the response.
value integer Yes Amount in cents, GST-inclusive by default. Negative values are discounts.
tag string dealer_delivery marks a dealer delivery fee. States treat delivery differently for duty and LCT; tag it and we handle that.
tax object Override the tax treatment of this line: mode (inclusive, exclusive or exempt), rateBps (e.g. 1000 = 10%).

Where each amount goes:

  • dutiable: the vehicle price, factory options, accessories fitted before delivery, dealer delivery (tagged), and discounts agreed before the contract. Stamp duty and LCT are calculated from this stage. Never send a trade-in here: it is payment, not a discount.
  • onRoad: dealer-supplied extras you want shown with on-road costs (tinting, a dealer admin fee). Don’t send government charges here; the engine calculates those.
  • additional: amounts applied after duty, which don’t change the dutiable value, such as a manufacturer cashback paid after sale.

For a new vehicle, most states charge duty on the manufacturer’s list price, so a negative dutiable discount does not lower the duty. For a used vehicle in QLD and WA it does (see Used vehicles).

Field Type Required Description
termMonths integer Yes 1, 3, 6 or 12. Supported terms vary by state; an unsupported term returns a warning. Queensland adds a short-term surcharge under 12 months. Ignored for a transfer.
startDate date Yes Registration start (or transfer) date. Selects the statutory rates, so a quote dated after 1 July uses that financial year’s fees.
postcode string Garaging postcode. Required for accurate Victorian quotes (the TAC charge varies by postcode).
type string new (default): register the vehicle for termMonths. transfer: the vehicle is already registered and its registration transfers to the buyer (QLD, WA and VIC). See Used vehicles.
Field Type Required Description
customerType string Yes consumer or commercial.
usageType string Yes consumer (private use) or commercial (business use).
concession object hasConcession (boolean) and type, a concession code from GET /v1/concessions. One concession per quote.

Note: For no concession, omit concession entirely. "type": null is rejected.


200 OK

Field Description
currency Always AUD.
pricingCode The jurisdiction priced.
financialYear Financial year of purchaseDate, e.g. 2026-2027.
categories.dutiable Your dutiable lines, echoed back.
categories.onRoad Your on-road lines, then every statutory charge the engine added.
categories.additional Your post-contract lines.
totals dutiable, onRoad, additional, driveAway, and tax (GST per stage and overall).
metadata.appliedRules The rules that ran, in order.
metadata.appliedConcessions Concessions that changed the quote.
metadata.warnings Non-fatal notes about assumptions and defaults. Log these. See Errors, warnings & changes.
metadata.taxEffectiveDate The date actually used to select statutory rates.
metadata.taxFinancialYear, taxDatePolicy, taxFallbackApplied How the tax date was resolved.

Each line has:

Field Description
description Display label. Statutory lines use consistent labels such as Stamp Duty, Registration Fee, CTP Fee, TAC Charge, Plates and Luxury Car Tax (LCT).
value Amount in cents.
ruleId The rule that produced the line, e.g. AU_QLD_STAMP_DUTY_FY27. Use this, not description, to identify a charge in code.
components Optional breakdown, e.g. a registration fee’s sub-fees.
tax, amounts GST treatment and the before-tax / tax / after-tax split. Government charges are GST-exempt.

A new BEV with dealer delivery, a window tint, and a manufacturer cashback paid after sale.

Terminal window
curl -s -X POST "https://pricing-api.vyro.com.au/v1/quote" \
-H "Authorization: Bearer your-access-token" \
-H 'Content-Type: application/json' \
-d '{
"pricingCode": "AU_NSW",
"showroomCode": "your-showroom-code",
"purchaseDate": "2026-10-01",
"vehicle": {
"make": "Hyundai",
"model": "IONIQ 5",
"year": 2026,
"fuelType": "BEV",
"tareKg": 1990
},
"pricingInputs": {
"dutiable": [
{ "description": "Vehicle price", "value": 6499000 },
{ "description": "Dealer delivery", "value": 150000, "tag": "dealer_delivery" }
],
"onRoad": [{ "description": "Window tint", "value": 49500 }],
"additional": [{ "description": "Manufacturer cashback", "value": -200000 }]
},
"registration": { "termMonths": 12, "startDate": "2026-10-01" },
"customer": { "customerType": "consumer", "usageType": "consumer" }
}'

200 OK (abridged: the per-line tax and amounts objects are omitted)

{
"currency": "AUD",
"pricingCode": "AU_NSW",
"financialYear": "2026-2027",
"categories": {
"dutiable": [
{ "description": "Vehicle price", "value": 6499000, "ruleId": "AU_NSW_DUTIABLE_VALUE_FY27" },
{ "description": "Delivery Fee", "value": 150000, "ruleId": "AU_NSW_DUTIABLE_VALUE_FY27" }
],
"onRoad": [
{ "description": "Window tint", "value": 49500, "ruleId": "AU_NSW_ON_ROAD_INPUTS_FY27" },
{ "description": "Stamp Duty", "value": 242500, "ruleId": "AU_NSW_STAMP_DUTY_FY27" },
{
"description": "Registration Fee",
"value": 63400,
"ruleId": "AU_NSW_REGISTRATION_FY27",
"components": [
{ "description": "MVT – lower taxed private light vehicle, 1,500 < tare ≤ 2,500 kg (12m)", "value": 55000 },
{ "description": "Registration administration fee – all registrable light vehicles, 12-month term (12m)", "value": 8400 }
]
},
{ "description": "Standard general issue plates – new or replacement for car/light truck", "value": 5800, "ruleId": "AU_NSW_REGISTRATION_FY27" },
{ "description": "NSW registration discount (2026-27, 12m)", "value": -10000, "ruleId": "AU_NSW_REGISTRATION_DISCOUNT_2026_27" },
{ "description": "CTP Fee", "value": 53600, "ruleId": "AU_NSW_CTP_FY27" }
],
"additional": [
{ "description": "Manufacturer cashback", "value": -200000, "ruleId": "AU_NSW_POST_SALE_REBATES_FY27" }
]
},
"totals": {
"dutiable": 6649000,
"onRoad": 404800,
"additional": -200000,
"driveAway": 6853800,
"tax": { "dutiable": 604454, "onRoad": 4500, "additional": -18182, "overall": 590772 }
},
"metadata": {
"rulesVersion": "AU_NSW_FY26_v1",
"appliedRules": [
"AU_NSW_DUTIABLE_VALUE_FY27",
"AU_NSW_ON_ROAD_INPUTS_FY27",
"AU_NSW_STAMP_DUTY_FY27",
"AU_NSW_REGISTRATION_FY27",
"AU_NSW_REGISTRATION_DISCOUNT_2026_27",
"AU_NSW_CTP_FY27",
"AU_NSW_POST_SALE_REBATES_FY27"
],
"appliedConcessions": [],
"warnings": [],
"taxEffectiveDate": "2026-10-01",
"taxFinancialYear": "2026-2027",
"taxDatePolicy": "legacy",
"taxFallbackApplied": false
}
}

Reading it: duty is charged on the $66,490 dutiable value (price plus delivery). The cashback in additional lowers the drive-away to $68,538.00 without lowering the duty.


  • Store the whole response with the deal. ruleIds and appliedRules let you, and us, explain any figure later.
  • Re-quote on the contract date. Statutory rates change on fixed dates, most often 1 July. A quote is only valid for the registration.startDate it was priced for.
  • Display description, reason on ruleId. Labels are made for customers and may be refined over time; rule IDs are stable within a financial year.