Skip to navigation

Find where a deal can be approved

Evaluates a deal against every financier’s approval criteria and returns the approvals that are not ruled out, grouped by financier.

Only cost and asset_value are required. Every other field is a criterion, and the three outcomes are:

  • confirmed — every criterion the approval checks was supplied and satisfied.
  • possible — a checked criterion had no input. The approval is still returned, with the outstanding answers in missing_fields. A blank input is never a violation.
  • dropped — a supplied input violates a criterion. The approval is omitted from the response entirely.

A criterion left blank on the approval is not checked at all and can never disqualify a deal.

Requires the matrix.enabled entitlement (Pro and above), and surfaces.matrix on GET /api/v1/feature-flags to be available. Runs are metered against the same daily allowance whether they come from a session or an API token.

Authentication

AuthorizationBearer

JWT access token obtained from POST /api/v1/auth/login, or a finput_sk_... API token

Headers

X-Finput-ClientenumOptional

Which client is asking, so every message in the response is worded for it. ios and android get sentences that state a fact and nothing more: no plan, no price, no link. Absent means web, which keeps its existing wording. An unrecognised value is treated like ios and android.

Allowed values:

Request

This endpoint expects an object.
coststringRequired

Asset cost. Compared GST-inclusive against an approval's min_asset_cost / max_asset_cost. A negative cost is rejected.

asset_valueintegerRequired>=1

Asset ID from GET /api/v1/assets/search.

cost_gstbooleanOptionalDefaults to false

Whether cost already includes GST.

abn_ageinteger or nullOptional>=0

ABN age (months).

gst_ageinteger or nullOptional>=0

GST registration age (months).

asset_ageinteger or nullOptional>=0

Asset age (months). Derived from year_model when that is sent instead.

terminteger or nullOptional>=1

Requested term in months, matching the calculator's payload. Optional here where the calculator requires it: a repayment cannot be computed without a term, but a destination can still be found. Omitting it returns approvals that bound the term as possible, with term listed in missing_fields.

year_modelinteger or nullOptional>=0

Build year, used to derive asset_age.

borrower_age_youngestinteger or nullOptional>=0

Youngest borrower's age (years). Tested against the approval's minimum — every borrower has to sit inside the band.

borrower_age_oldestinteger or nullOptional>=0

Oldest borrower's age (years), tested against the maximum. A single-borrower deal can send borrower_age instead and the API mirrors it into both ends.

borrower_ageinteger or nullOptional>=0

Shorthand for a single-borrower deal.

file_ageinteger or nullOptional>=0

Age of the borrower's credit file, in months — not the deal file. Months to match every other age criterion on the form (ABN age, GST age, asset age); it was days until the unit was unified.

credit_scoreinteger or nullOptional>=0

The borrower's credit score. A different criterion from file_age: this is the score, that is how long the file has existed, and an approval can gate on either or both.

industrystring or nullOptional

ANZSIC division. See GET /api/v1/approvals/options.

asset_stateenumOptional
Allowed values:
transaction_typeenumOptional
Allowed values:
home_ownerboolean or nullOptional
private_saleboolean or nullOptional
sale_hire_backboolean or nullOptional
preferred_financierlist of integersOptional

Restrict results to these organisation (financier) IDs.

Response

Approvals grouped by financier
financierslist of objectsOptional

Errors

400
Bad Request Error
403
Forbidden Error
429
Too Many Requests Error