Quote reference
POST /v1/quoteโ
Calculates a drive-away price. Send JSON. All money is in cents (AUD).
๐ฅ Request bodyโ
Top levelโ
| Field | Type | Required | Description |
|---|---|---|---|
pricingCode | string | โ | 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 | โ | Your showroom code. Must be one your API client is bound to. |
purchaseDate | date | โ | 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 | โ | Your commercial inputs, split into dutiable, onRoad and additional. See Pricing inputs. |
registration | object | โ | Registration term, start date, postcode and type. See Registration. |
customer | object | โ | 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โ
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). |
Pricing inputsโ
Each of dutiable (required), onRoad and additional is a list of lines:
| Field | Type | Required | Description |
|---|---|---|---|
description | string | โ | Your label. It is echoed back in the response. |
value | integer | โ | 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).
Registrationโ
| Field | Type | Required | Description |
|---|---|---|---|
termMonths | integer | โ | 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 | โ | 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. |
Customerโ
| Field | Type | Required | Description |
|---|---|---|---|
customerType | string | โ | consumer or commercial. |
usageType | string | โ | 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.
๐ค Responseโ
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. |
๐งพ Example: new vehicle, NSWโ
A new BEV with dealer delivery, a window tint, and a manufacturer cashback paid after sale.
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.
๐ก Tipsโ
- Store the whole response with the deal.
ruleIds andappliedRuleslet 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.startDateit was priced for. - Display
description, reason onruleId. Labels are made for customers and may be refined over time; rule IDs are stable within a financial year.