Skip to main content

Create Session

The Create Session endpoint accepts data about a customer's finances and lending scenario, which it stores in the database as a "session" and returns a SessionID parameter that can be used to load the data from that session in the Mortgage Recommendation Engine's UI.

Request


Type: POST
Path: /sessions/create


Endpoint

The Create Session endpoint can be accessed from the following URLs:

Environment Endpoint URL
Test https://api.mre.test.blackfin.tools/sessions/create
Production https://api.mre.blackfin.tools/sessions/create


Authentication

An API_Key is required to call this endpoint. HTTP Bearer Token authentication is used.


JSON Schema

The request payload is sent as HTTP JSON body using the following schema:

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$defs": {
    "Lender": {
      "type": [
        "string",
        "null"
      ],
      "description": "The [lender (bank)](https://docs.blackfin.tools/books/mortgagerecenginemycrm/page/lenders) which the existing loan is with/from - eg. 'Westpac' this field is only present if LoanType=Existing",
      "enum": [
        null,
        "AbodeMortgagesLimited",
        "AccessHomeLoansLimited",
        "Accuro",
        "AIA",
        "AlliedDunbar",
        "AMBL",
        "AMPLifetrack",
        "AMPRPP",
        "ANZ",
        "Argosy",
        "ASAPFinanceLimited",
        "ASB",
        "AscendFinance",
        "AssetFinanceSelect",
        "AsteronLife",
        "AvantiFinance",
        "BankofChinaNewZealandLimited",
        "BasecorpFinance",
        "BasecorpFinance",
        "Bluestone",
        "BNZ",
        "CBS",
        "CFML",
        "ChinaConstructionBankNewZealandLimited",
        "Cigna",
        "CommixGroupLimited",
        "CressidaCapital",
        "DBR",
        "DBRLimited",
        "EconomyHomeLoans",
        "FamilyFinance",
        "FidelityLife",
        "FirstMortgageTrust",
        "FreedomMortgages",
        "FreedomMortgagesLtd",
        "GEMoney",
        "GemHomeLoans",
        "GeneralFinance",
        "GoldBandFinance",
        "Greenwich",
        "HeartlandBank",
        "HeartlandBankONHOLD",
        "HomeTrustMortgagesCentralWestLtd",
        "HSBC",
        "IndustrialandCommercialBankofChinaNewZealandLimited",
        "Kiwibank",
        "KMMHO",
        "LibertyFinancial",
        "LibertyFinancialLimited",
        "MARAC",
        "MetroMoneyLtd",
        "MortgageNorth",
        "MTF",
        "MutualFinanceLimited",
        "NationalBank",
        "NBS",
        "Neo",
        "NIB",
        "NZFinance",
        "NZGuardianTrust",
        "NZCUSouth",
        "NZF",
        "OriginANZ",
        "Other",
        "OtherLenders",
        "OtherNonBankLenders",
        "Oxford",
        "PacificHomeLoans",
        "PacificRetailFinance",
        "PartnersLife",
        "Pepper",
        "PFS",
        "PinnacleLife",
        "Pioneer",
        "Presto",
        "PropertyEquityFinance",
        "PropertyFinanceSecuritiesLimited",
        "PROSPA",
        "Provident",
        "PublicTrust",
        "RESIMAC",
        "SBSBank",
        "SCF",
        "SelectHomeLoan",
        "Simplify",
        "SouthernCross",
        "SouthernCross",
        "SouthernCrossBuildingSociety",
        "SouthernCrossFinanceLtd",
        "Sovereign",
        "SuperBank",
        "TasmanMortgages",
        "TheCooperativeBank",
        "Tower",
        "TrustUs",
        "TSB",
        "UDCFinance",
        "UnitedHomeLoans",
        "Unity",
        "Westpac",
        "WizardHomeloans",
        "XEMoneyTransfer",
        "ZipBusiness"
      ],
      "default": null
    },
    "Frequency": {
      "type": "string",
      "enum": [
        "Yearly",
        "HalfYearly",
        "Quarterly",
        "Monthly",
        "Fortnightly",
        "Weekly"
      ]
    },
    "FrequencyOrNull": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        null,
        "Yearly",
        "HalfYearly",
        "Quarterly",
        "Monthly",
        "Fortnightly",
        "Weekly"
      ]
    }
  },
  "title": "Request JSON Payload",
  "type": "object",
  "properties": {
    "Session": {
      "type": "object",
      "properties": {
        "ExternalID": {
          "type": "string",
          "description": "External ID, for example a user ID to link the session to"
        }
      },
      "required": [
        "ExternalID"
      ]
    },
    "Details": {
      "type": "object",
      "description": "Contains details for mortgage calculation",
      "properties": {
        "Loan": {
          "description": "Array of Loan objects",
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "LoanId": {
                "type": "integer",
                "description": "Numerical identifier for the Loan, typically an incremental ID starting with 1",
                "minimum": 1
              },
              "LoanType": {
                "type": "string",
                "description": "Defines whether the applicant already has this loan or if it's a new loan",
                "enum": [
                  "Existing",
                  "New"
                ]
              },
              "Lender": {
                "$ref": "#/$defs/Lender"
              },
              "LendingAction": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Defines what action the applicant wants to take on an existing loan, only set if LoanType=Existing",
                "enum": [
                  null,
                  "None",
                  "Refinance",
                  "TopUp"
                ],
                "default": null
              },
              "LiabilityType": {
                "type": "string",
                "description": "The type of loan being applied for",
                "enum": [
                  "HomeLoan"
                ],
                "default": "HomeLoan"
              },
              "LoanAmount": {
                "type": [
                  "number"
                ],
                "description": "The amount of the loan (in $) being requested"
              },
              "TopUpAmount": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "The amount of the 'proposed increase' to the loan (in $) being requested",
                "default": null
              },
              "TotalTermMonths": {
                "type": "integer",
                "description": "The new loan's overall total term (expressed in months)",
                "minimum": 1
              },
              "InterestOnlyTermMonths": {
                "type": "integer",
                "description": "The new loan's optional 'Interest-Only' term (expressed in months)",
                "minimum": 0,
                "default": 0
              },
              "Security": {
                "type": "object",
                "description": "Security for the Loan",
                "properties": {
                  "Value": {
                    "type": "number",
                    "description": "The value of the property (in $)"
                  },
                  "IsRBNZExempt": {
                    "type": "boolean",
                    "description": "Inidicates someone who is eligible for 90% lending. Default = false.  [See also](https://www.rbnz.govt.nz/regulation-and-supervision/banks/macro-prudential-policy/loan-to-valuation-ratio-restrictions#:~:text=Loans%20to%20people%20building%20a,occupiers%20and%20residential%20property%20investors.)",
                    "default": false
                  },
                  "Location": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Address of the property",
                    "default": null
                  },
                  "PropertyType": {
                    "type": "array",
                    "description": "Up to three levels of property categorisation. [0] array item is level 1, [1] is level 2, [2] is level 3. See [property type](https://docs.blackfin.tools/books/mortgagerecenginemycrm/page/loan-security-property-types) table",
                    "items": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "enum": [
                        null,
                        "ResidentialProperty",
                        "FreeHoldResidential",
                        "TerracedHousing",
                        "FeeSimpleCrossLease",
                        "UnitTitle",
                        "Townhouse",
                        "LifestyleBlock",
                        "0to10ha",
                        "over10ha",
                        "LeaseholdResidential",
                        "Apartments",
                        "FreeholdApartment",
                        "over50sqm",
                        "40to50sqm",
                        "38to40sqm",
                        "under38sqm",
                        "LeaseholdApartment",
                        "ServicedApartment",
                        "StudentAccommodation",
                        "BedsitterStudioWarehouseApartments",
                        "NewBuildConstruction",
                        "FixedPriceContracts",
                        "LabourOnlySelfOwnerBuild",
                        "Relocations",
                        "VacantLand",
                        "ServicedVacantLand",
                        "UnservicedVacantLand",
                        "LifestyleWithoutDwelling",
                        "Other",
                        "MultipleDwellingsOnOneTitle",
                        "3Dwellings",
                        "4Dwellings",
                        "5Dwellings",
                        "6Dwellings",
                        "7OrMoreDwellings"
                      ]
                    },
                    "default": []
                  },
                  "SecurityType": {
                    "type": "string",
                    "description": "Defines whether the Security is already owned by the Applicant or not",
                    "enum": [
                      "Existing",
                      "Proposed"
                    ]
                  },
                  "UsageType": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "How the property will be used - eg. 'Owner Occupied'",
                    "enum": [
                      null,
                      "OwnerOccupied",
                      "InvestmentProperty"
                    ],
                    "default": null
                  },
                  "ValuationType": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "The source of the valuation of the property. (Calculation logic coming soon)",
                    "enum": [
                      null,
                      "CouncilValuation",
                      "EVal",
                      "FullRegisteredValuation",
                      "SalePurchaseAgreement"
                    ],
                    "default": null
                  }
                },
                "required": [
                  "Value",
                  "SecurityType"
                ]
              }
            },
            "required": [
              "LoanId",
              "LoanType",
              "LoanAmount",
              "TotalTermMonths"
            ]
          }
        },
        "ApplicantParty": {
          "type": "array",
          "description": "One or more parties (eg. married couple) who are applying for the home loan",
          "items": {
            "type": "object",
            "properties": {
              "Applicant": {
                "type": "array",
                "description": "One or more individuals belonging to the Applicant Party",
                "items": {
                  "type": "object",
                  "properties": {
                    "ApplicantId": {
                      "type": "integer",
                      "description": "Numerical identifier for the individual Applicant, typically an incremental ID starting with 1",
                      "minimum": 1
                    },
                    "Name": {
                      "type": "string",
                      "description": "Full name of the individual Applicant"
                    }
                  },
                  "required": [
                    "ApplicantId"
                  ]
                }
              },
              "NumberOfDependents": {
                "type": "integer",
                "description": "Number of dependents of this applicant party",
                "minimum": 0,
                "default": 0
              },
              "NumberOfVehicles": {
                "type": "integer",
                "description": "Number of owned vehicles by this applicant party",
                "minimum": 0,
                "default": 0
              },
              "Expense": {
                "type": "array",
                "description": "One or more regular expenses being declared by the applicant party",
                "items": {
                  "type": "object",
                  "properties": {
                    "ApplicantId": {
                      "type": "integer",
                      "description": "The ID of the individual applicant who the expense belongs to",
                      "minimum": 1
                    },
                    "ExpenseType": {
                      "type": "string",
                      "description": "The type of expense being declared - eg. 'Groceries'",
                      "enum": [
                        "ChildCare",
                        "ChildMaintenance",
                        "HigherEducationAndVocationalTraining",
                        "OtherEducation",
                        "PrivateSchoolCosts",
                        "PublicSchoolCosts",
                        "Groceries",
                        "OtherGroceries",
                        "BuildingInsurance",
                        "ContentsInsurance",
                        "HealthInsurance",
                        "IncomeProtection",
                        "LifeInsurance",
                        "OtherInsurance",
                        "VehicleInsurance",
                        "BodyCorporateInvestmentProperty",
                        "BuildingInsuranceInvestmentProperty",
                        "CouncilRatesInvestmentProperty",
                        "ElectricityAndGasInvestmentProperty",
                        "OtherInvestmentPropertyExpense",
                        "RepairsAndMaintenanceInvestmentProperty",
                        "RunningCostsInvestmentProperty",
                        "WaterAndSewerInvestmentProperty",
                        "MedicalAndHealth",
                        "NaturalTherapies",
                        "OtherMedical",
                        "Board",
                        "OtherOngoingRent",
                        "Rent",
                        "Kiwisaver",
                        "Other",
                        "RegularDonations",
                        "VoluntarySaving",
                        "VoluntarySuper",
                        "ClothingAndFootwear",
                        "Cosmetics",
                        "DryCleaning",
                        "OtherPersonalCare",
                        "PersonalCare",
                        "BodyCorporatePrimaryResidence",
                        "CouncilRatesPrimaryResidence",
                        "ElectricityAndGasPrimaryResidence",
                        "FurnishingsAndElectrical",
                        "HomeOperation",
                        "HomeRepairs",
                        "OtherPrimaryResidenceExpense",
                        "WaterAndSewerPrimaryResidence",
                        "AlcoholTobacco",
                        "CinemaConcertsMemberships",
                        "DiningOut",
                        "Gambling",
                        "Gambling2",
                        "GiftsAndMiscellaneous",
                        "GymSports",
                        "OtherRecreationalAndEntertainment",
                        "Pets",
                        "TravelAndHolidays",
                        "ContentsInsuranceSecondaryResidence",
                        "BodyCorporateSecondaryResidence",
                        "BuildingInsuranceSecondaryResidence",
                        "CouncilRatesSecondaryResidence",
                        "ElectricityAndGasSecondaryResidence",
                        "OtherSecondaryResidenceExpense",
                        "RepairsAndMaintenanceSecondaryResidence",
                        "RunningCostsSecondaryResidence",
                        "WaterAndSewerSecondaryResidence",
                        "HomeMobilePhone",
                        "InternetPayTVAndMediaStreamingSubscriptions",
                        "OtherTelephoneAndInternet",
                        "Petrol",
                        "PublicTransport",
                        "Registration",
                        "TaxiRideSharing",
                        "TollsParking",
                        "VehicleMaintenance"
                      ]
                    },
                    "Frequency": {
                      "$ref": "#/$defs/Frequency",
                      "description": "The frequency with which the applicant pays the expense - eg. 'Weekly'"
                    },
                    "Amount": {
                      "type": "number",
                      "description": "The amount of the expense (in $)"
                    }
                  },
                  "required": [
                    "ExpenseType",
                    "Amount",
                    "Frequency"
                  ]
                },
                "default": []
              },
              "Income": {
                "type": "array",
                "description": "One or more incomes being declared by the Applicant Party",
                "items": {
                  "type": "object",
                  "properties": {
                    "ApplicantId": {
                      "type": "integer",
                      "description": "The ID of the individual applicant who the income belongs to",
                      "minimum": 0
                    },
                    "IncomeType": {
                      "type": "string",
                      "description": "The type of income being declared - eg. 'Salary'",
                      "enum": [
                        "CarAllowance",
                        "Companycar",
                        "DisabilityAllowance",
                        "WorkAllowance",
                        "Bonus",
                        "Commission",
                        "CompanyProfitBeforeTax",
                        "ChildSupport",
                        "FamilyAllowance",
                        "Other",
                        "UnemployedAllowance",
                        "WidowAllowance",
                        "Annuities",
                        "Dividends",
                        "Interest",
                        "OtherIncome",
                        "OtherNetIncome",
                        "WorkersCompensation",
                        "RegularOvertime",
                        "BoarderIncome",
                        "RentalIncome",
                        "ForeignIncome",
                        "SalaryWages",
                        "PrivatePension",
                        "Superannuation"
                      ]
                    },
                    "Frequency": {
                      "$ref": "#/$defs/Frequency",
                      "description": "The frequency with which the applicant receives the income - eg. 'Monthly'"
                    },
                    "Amount": {
                      "type": "number",
                      "description": "The amount of the income (in $)"
                    },
                    "AmountType": {
                      "type": "string",
                      "enum": [
                        null,
                        "Gross",
                        "Net"
                      ],
                      "description": "Type of income amount - Net or Gross, defaults to Gross",
                      "default": "Gross"
                    },
                    "Attributes": {
                      "type": "array",
                      "description": "Additional information about the income",
                      "items": {
                        "anyOf": [
                          {
                            "title": "Kiwisaver",
                            "type": "object",
                            "description": "Kiwisaver (set on SalaryWages)",
                            "properties": {
                              "name": {
                                "const": "Kiwisaver"
                              },
                              "value": {
                                "type": "boolean",
                                "default": false
                              }
                            }
                          },
                          {
                            "title": "KiwisaverContribution",
                            "type": "object",
                            "description": "KiwisaverContribution (set on SalaryWages, if Kiwisaver=true)",
                            "properties": {
                              "name": {
                                "const": "KiwisaverContribution"
                              },
                              "value": {
                                "type": "number",
                                "description": "Percentage value represented as a float - 0.06 for 6% contribution"
                              }
                            }
                          },
                          {
                            "title": "PropertyCountry",
                            "type": "object",
                            "description": "PropertyCountry (set on RentalIncome)",
                            "properties": {
                              "name": {
                                "const": "PropertyCountry"
                              },
                              "value": {
                                "type": "string",
                                "enum": [
                                  "NZ",
                                  "Offshore"
                                ]
                              }
                            }
                          },
                          {
                            "title": "PropertyBuildDate",
                            "type": "object",
                            "description": "PropertyBuildDate (set on RentalIncome)",
                            "properties": {
                              "name": {
                                "const": "PropertyBuildDate"
                              },
                              "value": {
                                "type": "string",
                                "format": "YYYY-MM-DD",
                                "description": "Date in ISO format: YYYY-MM-DD"
                              }
                            }
                          },
                          {
                            "title": "SalePurchaseDate",
                            "type": "object",
                            "description": "SalePurchaseDate (set on RentalIncome)",
                            "properties": {
                              "name": {
                                "const": "SalePurchaseDate"
                              },
                              "value": {
                                "type": "string",
                                "format": "YYYY-MM-DD",
                                "description": "Date in ISO format: YYYY-MM-DD"
                              }
                            }
                          },
                          {
                            "title": "IsTaxExempt",
                            "type": "object",
                            "description": "IsTaxExempt (set on RentalIncome)",
                            "properties": {
                              "name": {
                                "const": "IsTaxExempt"
                              },
                              "value": {
                                "type": "boolean"
                              }
                            }
                          },
                          {
                            "title": "BoarderIncomeType",
                            "type": "object",
                            "description": "BoarderIncomeType (set on BoarderIncome)",
                            "properties": {
                              "name": {
                                "const": "BoarderIncomeType"
                              },
                              "value": {
                                "type": "string",
                                "enum": [
                                  "AllInclusive",
                                  "RoomChargeOnly"
                                ]
                              }
                            }
                          }
                        ]
                      }
                    }
                  },
                  "required": [
                    "ApplicantId",
                    "IncomeType",
                    "Frequency",
                    "Amount"
                  ]
                },
                "default": []
              },
              "Liability": {
                "type": "array",
                "description": "One or more existing liabilities (debts) being declared by the applicant party.",
                "items": {
                  "type": "object",
                  "properties": {
                    "ApplicantId": {
                      "type": "integer",
                      "description": "The ID of the individual applicant who the liability belongs to. \n\nRequired when `LiabilityType` is StudentLoan."
                    },
                    "LoanId": {
                      "type": [
                        "integer",
                        "null"
                      ],
                      "description": "The ID of the connected loan"
                    },
                    "LiabilityType": {
                      "type": "string",
                      "description": "The type of liability being declaired - eg. 'Mortgage' or 'CreditCard'",
                      "enum": [
                        "ATOCentrelinkDebt",
                        "ChargeCard",
                        "CommercialBill",
                        "ContingentLiability",
                        "CourtRuledChildMaintenance",
                        "CourtRuledOtherDebt",
                        "CreditCard",
                        "StudentLoan",
                        "HirePurchase",
                        "Lease",
                        "LineOfCredit",
                        "LoanAsGuarantor",
                        "Maintenance",
                        "Other",
                        "Loan",
                        "OutstandingTaxAU",
                        "Overdraft",
                        "PersonalLoan",
                        "CarLoan",
                        "StoreCard",
                        "Mortgage",
                        "HomeLoan",
                        "BusinessLoan",
                        "OutstandingTaxNZ",
                        "BuyNowPayLater"
                      ]
                    },
                    "RepaymentAmount": {
                      "type": [
                        "number",
                        "null"
                      ],
                      "description": "The amount (in $) which is being regularly repaid.\n\nRequired when `LiabilityType` is one of `BuyNowPayLater`, `StudentLoan`, `Overdraft`, `BusinessLoan`, `CarLoan`, `PersonalLoan`, `HomeLoan`, `LineOfCredit`, `LoanAsGuarantor`, `Mortgage`, or `Other`.",
                      "default": null
                    },
                    "RepaymentFrequency": {
                      "$ref": "#/$defs/FrequencyOrNull",
                      "description": "The frequency with which the applicant pays the liability - eg. 'Weekly'\n\nRequired when `LiabilityType` is one of `BuyNowPayLater`, `StudentLoan`, `Overdraft`, `BusinessLoan`, `CarLoan`, `PersonalLoan`, `HomeLoan`, `LineOfCredit`, `LoanAsGuarantor`, `Mortgage`, or `Other`."
                    },
                    "Limit": {
                      "type": [
                        "number",
                        "null"
                      ],
                      "description": "The amount of the liability's limi (in $) - eg. the credit card limit.\n\nRequired when `LiabilityType` is one of `BuyNowPayLater` or `Overdraft`",
                      "default": null
                    },
                    "Balance": {
                      "type": [
                        "number",
                        "null"
                      ],
                      "description": "The amount of the liability's balance (in $) - ie. the remaining amount owed.\n\nRequired when `LiabilityType` is one of `BuyNowPayLater`, `StudentLoan`, `BusinessLoan`, `CarLoan`, `PersonalLoan`, `HomeLoan`, `LineOfCredit`, `LoanAsGuarantor`, `Mortgage`, or `Other`.",
                      "default": null
                    },
                    "InterestRate": {
                      "type": [
                        "number",
                        "null"
                      ],
                      "description": "The rate of interest being charged (in %) on the liability - eg. 0.05 (=5%).\n\nRequired when `LiabilityType` is one of `HomeLoan`, `LineOfCredit`, `LoanAsGuarantor`, or `Mortgage`.",
                      "default": null
                    },
                    "RepaymentType": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "enum": [null, "PrincipalInterest", "InterestOnly"],
                      "description": "The repayment structure - either 'Principal & Interest' (default) or 'Interest Only'",
                      "default": null
                    },
                    "StartDate": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "YYYY-MM-DD",
                      "description": "Start date of the loan",
                      "default": null
                    },
                    "TotalTermMonths": {
                      "type": [
                        "integer",
                        "null"
                      ],
                      "description": "The loan's total term in months.\n\nRequired when `LiabilityType` is one of `HomeLoan`, `LineOfCredit`, `LoanAsGuarantor`, or `Mortgage`. ",
                      "default": null
                    },
                    "InterestOnlyTermMonths": {
                      "type": [
                        "integer",
                        "null"
                      ],
                      "description": "The loan's interest only total term in months",
                      "default": null
                    },
                    "Lender": {
                      "$ref": "#/$defs/Lender"
                    },
                    "IsRevolvingCredit": {
                      "type": [
                        "boolean",
                        "null"
                      ],
                      "description": "Indicates whether the liability is a revolving credit",
                      "default": false
                    }
                  },
                  "required": [
                    "LiabilityType"
                  ],
                  "allOf": [
                    {
                      "if": {
                        "properties": {
                          "LiabilityType": {
                            "const": "BuyNowPayLater"
                          }
                        }
                      },
                      "then": {
                        "required": [
                          "RepaymentAmount",
                          "RepaymentFrequency",
                          "Balance",
                          "Limit"
                        ],
                        "properties": {
                          "RepaymentAmount": {
                            "type": "number"
                          },
                          "RepaymentFrequency": {
                            "type": "string"
                          },
                          "Balance": {
                            "type": "number"
                          },
                          "Limit": {
                            "type": "number"
                          }
                        }
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "LiabilityType": {
                            "const": "StudentLoan"
                          }
                        }
                      },
                      "then": {
                        "required": [
                          "ApplicantId",
                          "RepaymentAmount",
                          "RepaymentFrequency",
                          "Balance"
                        ],
                        "properties": {
                          "RepaymentAmount": {
                            "type": "number"
                          },
                          "RepaymentFrequency": {
                            "type": "string"
                          },
                          "Balance": {
                            "type": "number"
                          }
                        }
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "LiabilityType": {
                            "const": "Overdraft"
                          }
                        }
                      },
                      "then": {
                        "required": [
                          "RepaymentAmount",
                          "RepaymentFrequency",
                          "Limit"
                        ],
                        "properties": {
                          "RepaymentAmount": {
                            "type": "number"
                          },
                          "RepaymentFrequency": {
                            "type": "string"
                          },
                          "Limit": {
                            "type": "number"
                          }
                        }
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "LiabilityType": {
                            "enum": [
                              "BusinessLoan",
                              "CarLoan",
                              "PersonalLoan",
                              "Other"
                            ]
                          }
                        }
                      },
                      "then": {
                        "required": [
                          "RepaymentAmount",
                          "RepaymentFrequency",
                          "Balance"
                        ],
                        "properties": {
                          "RepaymentAmount": {
                            "type": "number"
                          },
                          "RepaymentFrequency": {
                            "type": "string"
                          },
                          "Balance": {
                            "type": "number"
                          }
                        }
                      }
                    },
                    {
                      "if": {
                        "properties": {
                          "LiabilityType": {
                            "enum": [
                              "HomeLoan",
                              "LineOfCredit",
                              "LoanAsGuarantor",
                              "Mortgage"
                            ]
                          }
                        }
                      },
                      "then": {
                        "required": [
                          "RepaymentAmount",
                          "RepaymentFrequency",
                          "Balance",
                          "InterestRate",
                          "TotalTermMonths"
                        ],
                        "properties": {
                          "RepaymentAmount": {
                            "type": "number"
                          },
                          "RepaymentFrequency": {
                            "type": "string"
                          },
                          "Balance": {
                            "type": "number"
                          },
                          "InterestRate": {
                            "type": "number"
                          },
                          "TotalTermMonths": {
                            "type": "integer"
                          }
                        }
                      }
                    }
                  ]
                },
                "default": []
              }
            }
          }
        }
      },
      "required": [
        "Loan",
        "ApplicantParty"
      ]
    },
    "Lenders": {
      "type": "array",
      "description": "[Lender codes](https://docs.blackfin.tools/books/mortgagerecenginemycrm/page/lenders) to include in calculation. If no Lenders are passed (empty array), the calc will return ASB, ANZ, BNZ, AIA and Westpac by default",
      "items": {
        "type": "string",
        "description": "",
        "enum": [
          "aia",
          "anz",
          "asb",
          "bnz",
          "co-op",
          "kiwibank",
          "liberty",
          "sbs",
          "tsb",
          "westpac"
        ]
      }
    }
  },
  "required": [
    "Details",
    "Lenders"
  ]
}


Examples

Example request payload:

JSON Request Body
{
  "Session": {
    "ExternalID": ""
  },
  "Details": {
    "Loan": [
      {
        "LoanType": "New",
        "Lender": null,
        "LendingAction": null,
        "LiabilityType": "HomeLoan",
        "LoanAmount": 250000,
        "TopUpAmount": null,
        "TotalTermMonths": 180,
        "InterestOnlyTermMonths": 180,
        "Security": {
          "Value": 300000,
          "IsRBNZExempt": true,
          "Location": null,
          "PropertyType": [
            "ResidentialProperty",
            "FreeHoldResidential",
            null
          ],
          "SecurityType": "Proposed",
          "UsageType": "OwnerOccupied"
        },
        "LoanId": 1
      },
      {
        "LoanType": "Existing",
        "Lender": null,
        "LendingAction": "TopUp",
        "LiabilityType": "HomeLoan",
        "LoanAmount": 250000,
        "TopUpAmount": 50000,
        "TotalTermMonths": 183,
        "InterestOnlyTermMonths": 219,
        "Security": {
          "Value": 300000,
          "isRBNZExempt": false,
          "Location": null,
          "PropertyType": [
            "ResidentialProperty",
            "FreeHoldResidential",
            null
          ],
          "SecurityType": "Existing",
          "UsageType": "OwnerOccupied"
        },
        "LoanId": 2
      },
      {
        "LoanType": "Existing",
        "Lender": null,
        "LendingAction": "Refinance",
        "LiabilityType": "HomeLoan",
        "LoanAmount": 260000,
        "TopUpAmount": null,
        "TotalTermMonths": 180,
        "InterestOnlyTermMonths": 216,
        "Security": {
          "Value": 300000,
          "isRBNZExempt": false,
          "Location": null,
          "PropertyType": [
            "ResidentialProperty",
            "FreeHoldResidential",
            null
          ],
          "SecurityType": "Proposed",
          "UsageType": "OwnerOccupied"
        },
        "LoanId": 3
      },
      {
        "LoanType": "Existing",
        "Lender": null,
        "LendingAction": "Refinance",
        "LiabilityType": "HomeLoan",
        "LoanAmount": 370000,
        "TopUpAmount": null,
        "TotalTermMonths": 144,
        "InterestOnlyTermMonths": 0,
        "Security": {
          "Value": 410000,
          "isRBNZExempt": false,
          "Location": null,
          "PropertyType": [
            null,
            null,
            null
          ],
          "SecurityType": "Proposed",
          "UsageType": null
        },
        "LoanId": 4
      },
      {
        "LoanType": "Existing",
        "Lender": null,
        "LendingAction": "TopUp",
        "LiabilityType": "HomeLoan",
        "LoanAmount": 200000,
        "TopUpAmount": 50000,
        "TotalTermMonths": 180,
        "InterestOnlyTermMonths": 0,
        "Security": {
          "Value": 210000,
          "isRBNZExempt": false,
          "Location": null,
          "PropertyType": [
            null,
            null,
            null
          ],
          "SecurityType": "Proposed",
          "UsageType": null
        },
        "LoanId": 5
      }
    ],
    "ApplicantParty": [
      {
        "Applicant": [
          {
            "ApplicantId": 1,
            "Name": "Terence"
          },
          {
            "ApplicantId": 2,
            "Name": "Eve"
          }
        ],
        "Expense": [
          {
            "ApplicantId": 1,
            "ExpenseType": "ChildCare",
            "Frequency": "Monthly",
            "Amount": 300
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "ChildMaintenance",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "HigherEducationAndVocationalTraining",
            "Frequency": "Monthly",
            "Amount": 200
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "OtherEducation",
            "Frequency": "Monthly",
            "Amount": 100
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "PrivateSchoolCosts",
            "Frequency": "Monthly",
            "Amount": 300
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "PublicSchoolCosts",
            "Frequency": "Monthly",
            "Amount": 150
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "Groceries",
            "Frequency": "Monthly",
            "Amount": 200
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "OtherGroceries",
            "Frequency": "Monthly",
            "Amount": 150
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "BodyCorporatePrimaryResidence",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "CouncilRatesPrimaryResidence",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "ElectricityAndGasPrimaryResidence",
            "Frequency": "Monthly",
            "Amount": 100
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "FurnishingsAndElectrical",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "HomeOperation",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "HomeRepairs",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "OtherPrimaryResidenceExpense",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "WaterAndSewerPrimaryResidence",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "BuildingInsurance",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "ContentsInsurance",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "HealthInsurance",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "IncomeProtection",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "LifeInsurance",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "OtherInsurance",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "VehicleInsurance",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "BodyCorporateInvestmentProperty",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "BuildingInsuranceInvestmentProperty",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "CouncilRatesInvestmentProperty",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "ElectricityAndGasInvestmentProperty",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "OtherInvestmentPropertyExpense",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "RepairsAndMaintenanceInvestmentProperty",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "RunningCostsInvestmentProperty",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "WaterAndSewerInvestmentProperty",
            "Frequency": "Monthly",
            "Amount": 200
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "ContentsInsuranceSecondaryResidence",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "BodyCorporateSecondaryResidence",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "BuildingInsuranceSecondaryResidence",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "CouncilRatesSecondaryResidence",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "ElectricityAndGasSecondaryResidence",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "OtherSecondaryResidenceExpense",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "RepairsAndMaintenanceSecondaryResidence",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "RunningCostsSecondaryResidence",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "WaterAndSewerSecondaryResidence",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "MedicalAndHealth",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "NaturalTherapies",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "Board",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "DryCleaning",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "AlcoholTobacco",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "CinemaConcertsMemberships",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "GymSports",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "OtherRecreationalAndEntertainment",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "Pets",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "HomeMobilePhone",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "InternetPayTVAndMediaStreamingSubscriptions",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "PublicTransport",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "Registration",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "TaxiRideSharing",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "TollsParking",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "Kiwisaver",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "RegularDonations",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "VoluntarySaving",
            "Frequency": "Monthly",
            "Amount": 10
          },
          {
            "ApplicantId": 1,
            "ExpenseType": "VoluntarySuper",
            "Frequency": "Monthly",
            "Amount": 10
          }
        ],
        "Income": [
          {
            "ApplicantId": 1,
            "Frequency": "Yearly",
            "Amount": 50000,
            "AmountType": "Gross",
            "IncomeType": "SalaryWages",
            "Attributes": []
          },
          {
            "ApplicantId": 1,
            "Frequency": "Yearly",
            "Amount": 5000,
            "AmountType": "Gross",
            "IncomeType": "RentalIncome",
            "Attributes": [
              {
                "name": "PropertyBuildDate",
                "value": "2018-11-06"
              },
              {
                "name": "PropertyCountry",
                "value": "NZ"
              },
              {
                "name": "IsTaxExempt",
                "value": true
              },
              {
                "name": "SalePurchaseDate",
                "value": "2019-11-11"
              }
            ]
          },
          {
            "ApplicantId": 2,
            "Frequency": "Yearly",
            "Amount": 40000,
            "AmountType": "Gross",
            "IncomeType": "SalaryWages",
            "Attributes": []
          },
          {
            "ApplicantId": 2,
            "Frequency": "Yearly",
            "Amount": 5000,
            "AmountType": "Gross",
            "IncomeType": "WorkAllowance",
            "Attributes": []
          },
          {
            "ApplicantId": 1,
            "Frequency": "Yearly",
            "Amount": 10000,
            "AmountType": "Gross",
            "IncomeType": "Bonus",
            "Attributes": []
          },
          {
            "ApplicantId": 1,
            "Frequency": "Yearly",
            "Amount": 4000,
            "AmountType": "Gross",
            "IncomeType": "BoarderIncome",
            "Attributes": [
              {
                "name": "BoarderIncomeType",
                "value": "AllInclusive"
              }
            ]
          },
          {
            "ApplicantId": 1,
            "Frequency": "Yearly",
            "Amount": 3000,
            "AmountType": "Gross",
            "IncomeType": "CarAllowance",
            "Attributes": []
          },
          {
            "ApplicantId": 1,
            "Frequency": "Yearly",
            "Amount": 5000,
            "AmountType": "Gross",
            "IncomeType": "FamilyAllowance",
            "Attributes": []
          }
        ],
        "Liability": [
          {
            "ApplicantId": 1,
            "LiabilityType": "HomeLoan",
            "RepaymentAmount": 2000,
            "RepaymentFrequency": "Monthly",
            "Limit": 4000,
            "Balance": 10000,
            "InterestRate": 0.02,
            "RepaymentType": "PrincipalInterest",
            "StartDate": "2017-11-15",
            "TotalTermMonths": 228,
            "InterestOnlyTermMonths": 228,
            "Lender": "Kiwibank",
            "IsRevolvingCredit": true
          },
          {
            "ApplicantId": 1,
            "LiabilityType": "CreditCard",
            "RepaymentAmount": null,
            "RepaymentFrequency": null,
            "Limit": 30000,
            "Balance": null,
            "InterestRate": null,
            "RepaymentType": null,
            "StartDate": null,
            "TotalTermMonths": null,
            "InterestOnlyTermMonths": null,
            "Lender": null,
            "IsRevolvingCredit": null
          },
          {
            "ApplicantId": 1,
            "LiabilityType": "PersonalLoan",
            "RepaymentAmount": 2000,
            "RepaymentFrequency": "Monthly",
            "Limit": 4000,
            "Balance": 30000,
            "InterestRate": 0.02,
            "RepaymentType": null,
            "StartDate": "2019-11-07",
            "TotalTermMonths": 220,
            "InterestOnlyTermMonths": null,
            "Lender": null,
            "IsRevolvingCredit": true
          },
          {
            "ApplicantId": 1,
            "LiabilityType": "Other",
            "RepaymentAmount": 200,
            "RepaymentFrequency": "Monthly",
            "Limit": 4000,
            "Balance": 10000,
            "InterestRate": 0.01,
            "RepaymentType": null,
            "StartDate": "2018-11-07",
            "TotalTermMonths": 183,
            "InterestOnlyTermMonths": null,
            "Lender": "Kiwibank",
            "IsRevolvingCredit": true
          },
          {
            "ApplicantId": 1,
            "LiabilityType": "HirePurchase",
            "RepaymentAmount": 2000,
            "RepaymentFrequency": "Monthly",
            "Limit": null,
            "Balance": 20000,
            "InterestRate": null,
            "RepaymentType": null,
            "StartDate": null,
            "TotalTermMonths": null,
            "InterestOnlyTermMonths": null,
            "Lender": null,
            "IsRevolvingCredit": null
          },
          {
            "ApplicantId": 1,
            "LiabilityType": "Overdraft",
            "RepaymentAmount": 2000,
            "RepaymentFrequency": "Monthly",
            "Limit": 4000,
            "Balance": 20000,
            "InterestRate": 0.02,
            "RepaymentType": null,
            "StartDate": null,
            "TotalTermMonths": null,
            "InterestOnlyTermMonths": null,
            "Lender": null,
            "IsRevolvingCredit": null
          },
          {
            "LoanId": 2,
            "Lender": null,
            "Balance": 195000,
            "Limit": 250000,
            "InterestRate": 1,
            "RepaymentAmount": 15000,
            "RepaymentFrequency": "Monthly",
            "RepaymentType": null,
            "TotalTermMonths": 183,
            "StartDate": null,
            "IsRevolvingCredit": null,
            "InterestOnlyTermMonths": 216,
            "ApplicantId": 1,
            "LiabilityType": "HomeLoan"
          },
          {
            "Lender": null,
            "Balance": 200000,
            "Limit": 260000,
            "InterestRate": 2,
            "RepaymentAmount": 10000,
            "RepaymentFrequency": "Monthly",
            "RepaymentType": "PrincipalInterest",
            "TotalTermMonths": 180,
            "StartDate": null,
            "IsRevolvingCredit": null,
            "InterestOnlyTermMonths": 216,
            "ApplicantId": 1,
            "LiabilityType": "HomeLoan",
            "LoanId": 3
          }
        ],
        "NumberOfDependents": 1,
        "NumberOfVehicles": 1
      }
    ]
  },
  "Lenders": []
}

 


Validation

The API performs basic validation on the structure of the request payload but does not impose strict rules based on what is required for generating a calculation. This means that a successfully created session does not guarantee the data is complete for actual calculation in the UI. Data is loaded on a best-effort basis in the UI and the user is required to address any missing items, as needed.


Response


Success

200:If Successthe Create Session completes successfully:

JSON Body

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "Response JSON Body",
  "type": "object",
  "properties": {
    "SessionID": {
      "type": "string",
      "description": "20 characters in length, random generated alphanumeric string, mixed case",
      "example": "BYWSw2DTUBuHVMW4ZdhK"
    },
    "SessionURL": {
      "type": "string",
      "description": "Fully constructed URL to load up the session in the matching environment MRE UI.",
      "example": "https://mre.test.blackfin.tools/?session_id=BYWSw2DTUBuHVMW4ZdhK"
    }
  }
}

Examples

Example200: response payload:Success

Success Response
{
  "SessionID": "BYWSw2DTUBuHVMW4ZdhK",
  "SessionURL": "https://mre.test.blackfin.tools/?session_id=BYWSw2DTUBuHVMW4ZdhK"
}


 

Error

If errors are encountered during the Create Session operation:

 

❌ Error

JSON Body
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "description": "Error information",
      "properties": {
        "message": {
          "type": "string",
          "description": "Human readable error message"
        },
        "status": {
          "type": "string",
          "description": "Error code in uppercase letters and _ as space",
          "enum": ["INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","INTERNAL","UNAVAILABLE","DATA_LOSS","UNAUTHENTICATED"]
        },
        "details": {
          "type": "object",
          "description": "Additional error details",
          "properties": {
            "validation_errors": {
              "type": "array",
              "description": "Errors thrown when validating input data",
              "items": {
                "type": "object",
                "properties": {
                  "path": {
                    "type": "array",
                    "description": "An array of property keys or array offsets, indicating where inside objects or arrays the instance was found.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "property": {
                    "type": "string",
                    "description": "Describes the property path. Starts with `instance`, and is delimited with a dot (.)."
                  },
                  "message": {
                    "type": "string",
                    "description": "A human-readable message for debugging use. Provided in English and subject to change."
                  },
                  "schema": {
                    "type": "object",
                    "description": "The schema containing the keyword that failed",
                    "properties": {
                      "type": {
                        "type": "string"
                      },
                      "description": {
                        "type": "string"
                      }
                    },
                    "required": ["type"]
                  },
                  "instance": {
                    "description": "The instance (value) that failed",
                    "type": ["null", "object"]
                  },
                  "name": {
                    "type": "string",
                    "description": "The keyword within the schema that failed."
                  },
                  "argument": {
                    "type": "array",
                    "description": "Provides information about the keyword that failed.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "stack": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "required": ["path", "property", "message", "schema", "instance", "name", "argument", "stack"]
}
 

Examples

401: Missing API Key

Missing API Key (Status: 401)
{
    "error": {
        "message": "Missing API Key",
        "status": "UNAUTHENTICATED"
    }
}

 

401: Invalid API Key

Invalid API Key (Status: 401)
{
    "error": {
        "message": "Invalid API Key",
        "status": "UNAUTHENTICATED"
    }
}

 

400: Invalid data

Invalid data (Status: 400)
{
    "error": {
        "message": "Invalid data",
        "status": "INVALID_ARGUMENT",
        "details": {
            "validation_errors": [
                {
                    "path": [
                        "Details",
                        "Loan",
                        0,
                        "LoanType"
                    ],
                    "property": "instance.Details.Loan[0].LoanType",
                    "message": "is not one of enum values: Existing,Proposed",
                    "schema": {
                        "type": "string",
                        "description": "Defines whether the applicant already has this loan or if it's a new loan",
                        "enum": [
                            "Existing",
                            "New"
                        ]
                    },
                    "instance": "Proposed",
                    "name": "enum",
                    "argument": [
                        "Existing",
                        "Proposed"
                    ],
                    "stack": "instance.Details.Loan[0].LoanType is not one of enum values: Existing,Proposed"
                }
            ]
        }
    }
}

 

Invalid data: Invalid LoanId specified on Liability (Status: 400)

Thrown when loan id specified on liability does not match a loan.

{
    "error": {
        "message": "Invalid data: Invalid LoanId specified on Liability",
        "status": "INVALID_ARGUMENT",
        "details": {
        }
    }
}