Skip to main content

LIXI CAL

One LIXI CAL package spans the loan lifecycle. The serviceability check (pre-submission) reads a subset of the very package you later lodge at submission, so the same CAL shape carries you across both stages. Adopt CAL once and you are wired for the serviceability check and the full application lodgement, no second mapping.

The serviceability endpoint accepts a LIXI CAL package. Send your existing CAL; Slate reads the declared-serviceability subset, maps it to the same scenario, and returns the same JSON response as the JSON request. At submission you send the same package fleshed out (identity, employment, the security contract), and Slate reads the rest.

Request

POST the CAL package as application/xml to https://api.slateos.ai/api/v1/pre-submission/serviceability, with your Bearer token. The fragment below is abbreviated to the declared-serviceability fields. Amounts in CAL are decimal dollars (for example 120000.00), unlike the JSON API's integer cents.

<Package xmlns="http://www.lixi.org.au/schema/cal2_6">
<Content>
<Application>
<PersonApplicant>
<Employment>
<PAYG>
<Income GrossSalaryAmount="72000.00" GrossSalaryFrequency="Annual"/>
</PAYG>
</Employment>
<Contact>
<CurrentAddress>
<x_ResidentialAddress>
<addressType AustralianPostCode="3000"/>
</x_ResidentialAddress>
</CurrentAddress>
</Contact>
</PersonApplicant>
<PersonApplicant>
<Employment>
<PAYG>
<Income GrossSalaryAmount="48000.00" GrossSalaryFrequency="Annual"/>
</PAYG>
</Employment>
</PersonApplicant>
<Household NumberOfDependants="2">
<ExpenseDetails>
<LivingExpense Category="Total" Amount="3200.00" Frequency="Monthly"/>
</ExpenseDetails>
</Household>
<Liability Type="Credit Card" OutstandingBalance="8500.00" CreditLimit="15000.00">
<Repayment RepaymentAmount="250.00" RepaymentFrequency="Monthly"/>
</Liability>
<LoanDetails AmountRequested="608000.00">
<Term TotalTermDuration="30" TotalTermType="Years"/>
</LoanDetails>
<RealEstateAsset PrimaryPurpose="OwnerOccupied">
<Valuation Type="Estimated" Value="640000.00"/>
</RealEstateAsset>
</Application>
</Content>
</Package>

The response is the same JSON envelope as the JSON endpoint. See Read the response.

The application submission endpoint takes the same CAL package fleshed out with identity, employment, dependants, and the security contract. The fields below cover both; the submission-only sections are called out separately.

Field mapping

How each scenario field is read from the CAL package (data-dictionary references in brackets).

scenario.applicants

  • Count of PersonApplicant blocks in the package.

scenario.incomes[]

  • PAYG salary: …PersonApplicant.Employment.PAYG.Income.GrossSalaryAmount / GrossSalaryFrequency (PA.9.12 / PA.9.13). Slate annualises each salary component by its GrossSalaryFrequency (Annual, Monthly, Fortnightly, Weekly), then sums the annualised components into one gross. The result equals the JSON annualAmount, which the partner pre-annualises.
  • Government / Rental: …OtherIncome.Amount / Type (OI1.1 / OI1.4).
  • Self-employed: the repurposed Related Company block RC2.x (Non lixi, a custom extension), net profit before tax plus add-backs.

scenario.liabilities[]

  • …Liability.Type (LB.1.1), OutstandingBalance (LB.1.8), CreditLimit (LB.1.7), Repayment.RepaymentAmount (LB.7.1).

scenario.expenses

  • …Household.ExpenseDetails.LivingExpense.Amount (HH3.2). Slate aggregates the CAL living-expense categories into one monthly figure.

scenario.dependants

  • …Household.NumberOfDependants (HH1.2).

scenario.postcode

  • …PersonApplicant.Contact.CurrentAddress.x_ResidentialAddress then addressType.AustralianPostCode (AD1.6). Residential, not security.

scenario.loan

  • amount from …LoanDetails.AmountRequested (LD1.1); termYears from …LoanDetails.Term.TotalTermDuration (LD4.1).

scenario.security

  • estimatedValue from …RealEstateAsset.Valuation.Value (the estimated valuation of the security property). Slate derives LVR from this and the loan amount.

brokerDetails and product selection

  • Not CAL-package fields. Broker identity comes from your authenticated credential; the product is selected automatically. Do not expect them in the XML.

Submission-only sections

These are read on submission, not on the serviceability check.

PersonApplicant identity

  • Name: …PersonApplicant.PersonName (NameTitle, FirstName, Surname).
  • …PersonApplicant.DateOfBirth and …PersonApplicant.Gender.
  • Current address addressType may carry AustralianState alongside AustralianPostCode; the postcode is what feeds scenario.postcode (above), the state is descriptive.

PersonApplicant.Employment

  • …Employment.EmploymentType (e.g. PAYG); role from …Employment.PAYG.Occupation. Income is the same GrossSalaryAmount the serviceability check reads.

Household.Dependant

  • One Dependant block per child; …Household.Dependant.DateOfBirth. The count still comes from …Household.NumberOfDependants.

RealEstateAsset security detail

  • …RealEstateAsset.PropertyType (CategoryTypeName, PropertyTypeCode).
  • …RealEstateAsset.ContractDetails: ContractPriceAmount, DepositPaid (the borrower's funds to complete), EstimatedSettlementDate. The Valuation.Value is still what drives LVR.