Karia
Guides

Using Quick Estimates to build your own calculator

Calculate a novated lease estimate, then list the estimates your API key has created

Let's say a customer is on your website looking at a vehicle. They want a rough idea of what a novated lease would cost, and they have not shared their name or contact details yet.

This guide will show you how to give them that figure with a quick estimate. Your app sends the vehicle price, salary, lease length, fuel type, kilometres, business use, and state. The financier product and budget come from the lead settings in your Karia sales workspace. The response includes the estimated net cost, tax savings, lease payment, and running costs. When they decide to go ahead, pass the returned estimate id as quickEstimateId on create lead.

Prerequisites

  • Read Quick Start to get your orgId and workspaceId.
  • Read Getting an API Key to get your API key. The key needs origination:quick-estimate:create to calculate, and origination:quick-estimate:view to list.
  • Enabled Lead Generation in your sales and origination workspace.

Workflow

opt[List previous quick estimates]opt[Turn the estimate into a lead]123456789Request a lease figurePOST …/origination/quick-estimateEstimate (id, net cost, tax savings)Show the quick estimateGET …/origination/quick-estimateQuick estimates createdProvide name and contact detailsPOST …/origination/lead (quickEstimateId)Lead (status estimating)CustomerYour appKaria APICustomerYour appKaria API
opt[Listpreviousquickestimates]opt[Turn the estimate into a lead]123456789Request alease figurePOST…/origination/quick-estimateEstimate (id,net cost, taxsavings)Show thequickestimateGET…/origination/quick-estimateQuickestimatescreatedProvide nameand contactdetailsPOST…/origination/lead(quickEstimateId)Lead (statusestimating)CustomerYour appKaria APICustomerYour appKaria API
  1. Capture vehicle price, salary, lease term, fuel type, and business use percentage.
  2. Send above details to the quick estimate endpoint.
  3. Store the returned id. This will be needed later if you wish to create a lead from this estimate.
  4. Call the list endpoint to retrieve estimates this API key has already created.

To turn an estimate into a lead, collect the customer's name and contact details, then pass the stored id as quickEstimateId when you create a lead.

Create a quick estimate

Create a quick estimate

Calculates an estimate in the workspace and returns the full pricing, finance, and tax breakdown. The API sets source to api, so do not send it.
Open reference
POST/organisation/{organisationId}/workspace/{workspaceId}/origination/quick-estimate
Authorizationv
{
  "type": "Bearer API key"
}
Pathv
Endpoint
/organisation/{organisationId}/workspace/{workspaceId}/origination/quick-estimate
{
  "organisationId": 1,
  "workspaceId": 2
}
Operation ID
origination.quickEstimate.create
Bodyv
{
  "salary": 150000,
  "leaseTerm": 60,
  "startingPrice": 60000,
  "payrollCycle": "weekly",
  "includeRunningCosts": true,
  "businessUse": 20,
  "fuelType": "petrol",
  "annualKms": 15000,
  "state": "vic"
}

Request fields

FieldRequiredRules
salaryYesAnnual salary before tax, excluding superannuation. Greater than 0.
startingPriceYesDrive-away price. Greater than 0.
leaseTermYesLease length in months. Greater than 0 and at most 60.
businessUseYesPercentage from 0 to 100.
fuelTypeYespetrol, diesel, hybrid, plug_in_hybrid, or electric.
payrollCycleNoweekly (default), fortnightly, monthly, or bi_monthly.
includeRunningCostsNoDefaults to true. Fuel, registration, insurance, servicing, and tyres are then included in the cost.
annualKmsNoWhole number, defaults to 15000.
stateNoact, nsw, nt, qld, sa, tas, vic (default), or wa. Used for stamp duty and registration.
startingPriceTypeNoOnly drive_away_price is accepted. That is also the default.

Response

A successful response is the calculated estimate. The fields most integrations use are:

FieldMeaning
idEstimate ID. Send this as quickEstimateId when you create a lead.
expiresAtWhen the estimate stops being valid.
assumptionsThe inputs the calculation actually used, including defaults.
tax.fbt.methodsNet cost and tax savings for each FBT method.
finance.leasePaymentLease payment for each payroll cycle, including GST.
budgetRunning-cost line items for each payroll cycle, when running costs were included.
pricingDrive-away price, stamp duty, registration, GST, and luxury car tax.

tax.fbt.methods has up to five methods: statutoryMethod, operatingCost, fbtExempt, fbtExemptEv, and fullFbtApplied. A method is null when it does not apply to the vehicle, so check before reading it. Electric vehicles are the usual case for fbtExemptEv.

Each method has a period for every payroll cycle:

Request payrollCycleResponse period keyPayments per year
weeklyweekly52
fortnightlyfortnightly26
monthlymonthly12
bi_monthlybiMonthly24

GST amounts are split into exGstAmount, gstAmount, and incGstAmount. Show incGstAmount when you want the figure the customer pays.

Running costs are budget.<period>.items. Each item has a name and an incGstAmount. budget.<period>.totals is the sum.

List quick estimates

The list only returns estimates created by the owner of the API key you authenticate with. Sending createdBy has no effect.

List quick estimates

Returns estimates created by the API key owner. page starts at 1.
Open reference
GET/organisation/{organisationId}/workspace/{workspaceId}/origination/quick-estimate
Authorizationv
{
  "type": "Bearer API key"
}
Pathv
Endpoint
/organisation/{organisationId}/workspace/{workspaceId}/origination/quick-estimate
{
  "organisationId": 1,
  "workspaceId": 2
}
Operation ID
origination.quickEstimate.list
Bodyv
{
  "query": {
    "page": "1",
    "limit": "20"
  },
  "response": {
    "items": [
      {
        "id": "019a17b4-86c6-7ba2-ab0c-ad037219b341",
        "createdAt": "2026-10-27T02:00:00.000Z",
        "salary": 150000,
        "leaseTerm": 60,
        "startingPrice": 60000,
        "fuelType": "petrol",
        "annualKms": 15000,
        "businessUse": 20,
        "state": "vic",
        "includeRunningCosts": true
      }
    ],
    "pagination": {
      "totalItems": 1,
      "totalPages": 1,
      "pageSize": 20,
      "limit": 20,
      "currentPage": 0
    }
  }
}

page starts at 1. pagination.currentPage is the upstream page index, so the first page comes back as 0.

Each item is a summary of the inputs, not the calculated pricing. Call create again if you need a fresh calculation.

Turn an estimate into a lead

Creating a lead is a separate endpoint, origination.lead.create. The key needs origination:lead:create.

quickEstimateId is optional. Send the estimate id when this lead should start from that calculation: the lead is created with status estimating, and its first estimate is copied from the quick estimate. Omit the field to create a lead with status new and no estimate. null is also accepted and means the same as omitting it.

{
  "firstName": "Jane",
  "lastName": "Citizen",
  "email": "jane.citizen@example.com",
  "phone": "+61400111222",
  "quickEstimateId": "019a17b4-86c6-7ba2-ab0c-ad037219b341"
}

phone must be E.164, for example +61400111222. A local number such as 0400111222 is rejected.

If the workspace already has a lead with the same email or phone inside its match window (7 days by default), the API returns that lead with isMatched: true and does not attach your quickEstimateId. A match window of 0 in the workspace's lead settings turns this off.

On this page