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
PersonApplicantblocks 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 itsGrossSalaryFrequency(Annual,Monthly,Fortnightly,Weekly), then sums the annualised components into one gross. The result equals the JSONannualAmount, which the partner pre-annualises. - Government / Rental:
…OtherIncome.Amount/Type(OI1.1/OI1.4). - Self-employed: the repurposed
Related CompanyblockRC2.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_ResidentialAddressthenaddressType.AustralianPostCode(AD1.6). Residential, not security.
scenario.loan
amountfrom…LoanDetails.AmountRequested(LD1.1);termYearsfrom…LoanDetails.Term.TotalTermDuration(LD4.1).
scenario.security
estimatedValuefrom…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.DateOfBirthand…PersonApplicant.Gender.- Current address
addressTypemay carryAustralianStatealongsideAustralianPostCode; the postcode is what feedsscenario.postcode(above), the state is descriptive.
PersonApplicant.Employment
…Employment.EmploymentType(e.g.PAYG); role from…Employment.PAYG.Occupation. Income is the sameGrossSalaryAmountthe serviceability check reads.
Household.Dependant
- One
Dependantblock 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. TheValuation.Valueis still what drives LVR.