Skip to main content

Quote reference

POST /v1/quoteโ€‹

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


๐Ÿ“ฅ Request bodyโ€‹

Top levelโ€‹

FieldTypeRequiredDescription
pricingCodestringโœ…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.
showroomCodestringโœ…Your showroom code. Must be one your API client is bound to.
purchaseDatedateโœ…Contract date, YYYY-MM-DD. Sets the financial year and is the supply date for the LCT two-year test.
vehicleobjectone ofA vehicle described by make/model/year. See Vehicle.
vehicleGenericobjectone ofA vehicle described by body type, when you don't have or don't want to send make/model. See Vehicle.
pricingInputsobjectโœ…Your commercial inputs, split into dutiable, onRoad and additional. See Pricing inputs.
registrationobjectโœ…Registration term, start date, postcode and type. See Registration.
customerobjectโœ…Buyer type and any concession. See Customer.
taxDatePolicyobjectrecommendedWhat to do when registration.startDate is beyond the dates we have published rates for. Send { "outOfRange": "error" }. See Tax date policy.
pricingInputDefaultsobjectDefault 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.

FieldTypeDescription
make, modelstringvehicle only. Case-insensitive.
yearintegerModel year. Required on vehicle, optional on vehicleGeneric.
bodyTypestringpassenger, 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).
fuelTypestringBEV, PHEV, HYBRID or ICE.
tareKgnumberTare mass in kg. Several states band registration by weight. See States & inputs.
gvmKgnumberGross vehicle mass in kg. Vehicles over 4,500 kg are heavy vehicles for duty purposes (e.g. no Queensland $100,000+ surcharge).
cylindersintegerEngine cylinders for ICE, HYBRID and PHEV (rotary: twice the rotors). Queensland duty and registration depend on it.
conditionstringnew or used. See Used vehicles.
firstRegistrationDatedateDate first registered in Australia. Used vehicles: proves the car is outside the LCT two-year window.
importDatedateDate imported (entered for home consumption). Used vehicles: the LCT two-year clock.
manufactureDatedateBuild date. Used vehicles: can show the car is within the LCT window.
lctPreviouslyPaidintegerLCT already paid on this car, in cents. Required for a used car within the LCT window above the threshold.
co2GramsPerKmnumberCombined CO2 emissions. Victoria's "green car" duty rate applies at 120 g/km or less; BEVs and PHEVs qualify automatically.
fuelConsumptionLPer100kmnumberCombined fuel consumption from the fuel label. LCT fuel-efficient threshold applies at 3.5 L/100km or less.
seatsintegerSeats including the driver. LCT: 10+ seats is not a car; used in the ute commercial-vehicle test.
kerbMassKgnumberKerb (unladen) mass. With gvmKg, decides the LCT load tests for utes and heavy-load vehicles.
isWheelchairModifiedbooleanVehicle modified for wheelchair access (NSW disability concessions).

Pricing inputsโ€‹

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

FieldTypeRequiredDescription
descriptionstringโœ…Your label. It is echoed back in the response.
valueintegerโœ…Amount in cents, GST-inclusive by default. Negative values are discounts.
tagstringdealer_delivery marks a dealer delivery fee. States treat delivery differently for duty and LCT; tag it and we handle that.
taxobjectOverride 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โ€‹

FieldTypeRequiredDescription
termMonthsintegerโœ…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.
startDatedateโœ…Registration start (or transfer) date. Selects the statutory rates, so a quote dated after 1 July uses that financial year's fees.
postcodestringGaraging postcode. Required for accurate Victorian quotes (the TAC charge varies by postcode).
typestringnew (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โ€‹

FieldTypeRequiredDescription
customerTypestringโœ…consumer or commercial.
usageTypestringโœ…consumer (private use) or commercial (business use).
concessionobjecthasConcession (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

FieldDescription
currencyAlways AUD.
pricingCodeThe jurisdiction priced.
financialYearFinancial year of purchaseDate, e.g. 2026-2027.
categories.dutiableYour dutiable lines, echoed back.
categories.onRoadYour on-road lines, then every statutory charge the engine added.
categories.additionalYour post-contract lines.
totalsdutiable, onRoad, additional, driveAway, and tax (GST per stage and overall).
metadata.appliedRulesThe rules that ran, in order.
metadata.appliedConcessionsConcessions that changed the quote.
metadata.warningsNon-fatal notes about assumptions and defaults. Log these. See Errors, warnings & changes.
metadata.taxEffectiveDateThe date actually used to select statutory rates.
metadata.taxFinancialYear, taxDatePolicy, taxFallbackAppliedHow the tax date was resolved.

Each line has:

FieldDescription
descriptionDisplay label. Statutory lines use consistent labels such as Stamp Duty, Registration Fee, CTP Fee, TAC Charge, Plates and Luxury Car Tax (LCT).
valueAmount in cents.
ruleIdThe rule that produced the line, e.g. AU_QLD_STAMP_DUTY_FY27. Use this, not description, to identify a charge in code.
componentsOptional breakdown, e.g. a registration fee's sub-fees.
tax, amountsGST 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 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.