Pricing Request
The pricing request specifies the search terms for the pricing search. It contains over 200 fields to fine tune the search as desired.
Many of the request fields are organized into containers, the most important of which are:
criteria-- contains Borrower Criteria such as loan amount, purchase price, and other fields related to the loan borrower.property-- contains fields relating to the property such as address, number of rooms, and others.brokerCriteria-- contains fields pertaining to the broker such as the lock terms.closingCost-- contains fields related to the Closing Cost such as title services and third party services.miCriteria-- contains fields related to the loan type.
The request also contains fields to handle rates, filter results, select the mortgage type, lock terms, and more. Refer to Pricing a Loan for details on setting fields for common tasks.
Pricing Request Breakdown
curl --location -g --request POST '{{protocol}}{{pricingApiHost}}/rest/pricing/multisearch/{{userId}}' \
--header 'secret: {{token}}' \
--header 'companyid: {{companyId}}' \
--data-raw '{
"companyId": "{{companyId}}",
"criteria": {//all search criteria pertainint to the borrower
},
"rateRange": {//set a rate range using the to and from fields here
},
"property": {//all search criteria pertaining to the property
},
"brokerCriteria": {//all search criteria pertaining to the loan broker
},
"accessCriteria": {//internal fields used to tailor the search and not required by the client.
},
"filter": {//options to filter search results by program name or product code
},
"miCriteria": {//search criteria pertaining to the loan
},
"closingCost": {//all search criteria pertaining to the closing cost
},
"termsCriteria": [{{the loan term in years}}],
"loanPurposeCriteria": [{{loan purpose}}],
"loanTypeCriteria": [{{loan type}}],
//additional search fields are listed at this level
}'
Required and Suggested Fields
Certain input fields are required for all requests, and others are suggested.
The following fields are required for every pricing search:
- Multi Criteria Search Model
loanPurposeCriteria(required)loanTypeCriteria(required)companyId(required)termsCriteria(required)maxListingPerRate(required)- Access Criteria:
companyIds(required, can be empty)
- Broker Criteria:
ausList(required)dayLocks(required)
- Borrower Criteria:
appraisedValue(required if purchase)escrowWaiver(recommended, defaults to false if empty or null)fundingFeeFinanced(recommended, defaults to false if empty or null)guranteeFeeFinanced(recommended, defaults to false if empty or null)firstTimeHomeBuyer(recommended, defaults to false if empty or null)pmiType(required, can be set to default to BPMI, will only run for MI scenario)mortgageTypes(required)mortgageType(can be left empty ifmortgageTypesis given, if not, will default to Conventional)Fico(required)loanAmount(required)loanPurpose(optional ifloanPurposeCriteriais given)loanType(required)loanYear(optional iftermsCriteriais empty)monthlyDebt(required)monthlyIncome(required)propertyUse(required)purchasePrice(required)specialMortgageOptions(optional, depends on client configuration)variableLoanTypes(required, can be left empty)
- MiCriteria:
miCompanyName(required for MI)
- Property:
Address(required, zip and state minimum)numberOfUnit(required)propertyType(required)
The following fields are not required but are suggested:
- Multi Criteria Search Model:
showDisqualifyshowDisqualifyRulestermsCriteria
Example Recommended Minimum Payload with Minimum Field Response
The fields section filters out the amount of fields coming back in the response for each qualified program. Only the fields listed in fields will return. Lender Price recommends implementing the fields section after the client has done its due diligence and mapping with a full response. Removing the fields section will return the full response for each qualified product.
curl --location \
'https://{{protocol}}{{pricingApiHost}}/rest/pricing/multisearch/{{userId}}' \
--header 'secret: {{token}}' \
--header 'companyId: {{companyId}}' \
--header 'Content-Type: application/json' \
--data '{
"companyId": "{{companyId}}",
"accessCriteria": {
"userContext": null
},
"brokerCriteria": {
"ausList": ["None", "GUS", "MUW", "LP", "DU"],
"dayLocks": "30"
},
"criteria": {
"loanAmount": "400000",
"purchasePrice": "600000",
"appraisedValue": "600000",
"monthlyIncome": "150000",
"monthlyDebt": "3000",
"escrowWaiver": "false",
"fico": "740",
"firstTimeHomeBuyer": "false",
"fundingFeeFinanced": "YES",
"guranteeFeeFinanced": "YES",
"loanPurpose": "Purchase",
"loanType": "Fixed",
"mortgageType": "Conventional",
"mortgageTypes": ["Conventional"],
"pmiType": "BPMI",
"propertyUse": "PrimaryResidence"
},
"loanPurposeCriteria": ["Purchase"],
"loanTypeCriteria": ["Fixed"],
"maxListingPerRate": "3",
"miCriteria": {
"miCompanyName": null
},
"property": {
"address": {
"state": "CA",
"zip": "91101"
},
"numberofUnit": "1",
"propertyType": "SingleFamily"
},
"termsCriteria": ["30"],
"fields": [
"resultMap.resultRates.data._ANY_.rateGrid.productCode",
"resultMap.resultRates.data._ANY_.rateGrid.name",
"resultMap.resultRates.data._ANY_.basePoints",
"resultMap.resultRates.data._ANY_.adjustedRates",
"resultMap.resultRates.data._ANY_.rawAdjustmentPoints",
"resultMap.resultRates.data._ANY_.adjustedPoints",
"resultMap.resultRates.data._ANY_.borrowerPaid",
"resultMap.resultRates.data._ANY_.finalClosingCost",
"resultMap.resultRates.data._ANY_.apr",
"resultMap.resultRates.data._ANY_.miPriceDetail.miPayment",
"resultMap.resultRates.data._ANY_.monthlyPayment.monthlyPI",
"resultMap.resultRates.data._ANY_.monthlyPayment.total",
"resultMap.resultRates.data._ANY_.monthlyPayment.mi",
"resultMap.resultRates.data._ANY_.monthlyPayments.mi",
"resultMap.resultRates.data._ANY_.borrowerPaidDetails.amount",
"resultMap.resultRates.data._ANY_.borrowerPaidDetails.code",
"resultMap.resultRates.data._ANY_.borrowerPaidDetails.name",
"resultMap.resultRates.data._ANY_.borrowerPaidDetails.isOrigination",
"resultMap.resultRates.data._ANY_.borrowerPaidDetails.aprRelated",
"resultMap.resultRates.data._ANY_.groupAdjustmentProperties.disqualifyAdjustments"
]
}'
Example Pricing Request
curl --location -g --request POST \
'{{protocol}}{{pricingApiHost}}/rest/pricing/multisearch/{{userId}}' \
--header 'secret: {{token}}' \
--header 'companyid: {{companyId}}' \
--data-raw '{
"date": null,
"companyId": "{{companyId}}",
"criteria": {
"purchasePrice": 500000,
"loanAmount": 400000,
"lineAmount": 0,
"rehabBudget": 0,
"drawAmount": 0,
"subordinateLoanAmount": 0,
"pmiType": "None",
"monthlyIncome": "5000.00",
"monthlyDebt": "2150.00",
"loanYear": 30,
"loanPurpose": "Purchase",
"loanType": "Fixed",
"mortgageType": null,
"mortgageTypes": ["Conventional"],
"propertyUse": "PrimaryResidence",
"ownProperties": 0,
"specialMortgageOptions": [],
"fundingFeeFinanced": "YES",
"inclusive": false,
"varaiableLoanTypes": [],
"fico": 760,
"downPaymentAmount": 0,
"isFirstLienSame": "",
"escrowWaiver": false,
"lenderFeeWaiver": true,
"compensationType": "LenderCompPlan",
"lienPriorityType": "FirstLien"
},
"rateRange": {
"@class": "com.cre8techlabs.entity.range.DoubleRangeLeGt",
"from": null,
"to": null
},
"property": {
"address": {
"longitude": null,
"latitude": null,
"censustract": "06037",
"street": "",
"streetCont": "",
"city": "Pasadena",
"zip": "91101",
"zipExt": "",
"state": "CA",
"province": "",
"county": "06037",
"countyName": "",
"country": "US"
},
"propertyType": "SingleFamily",
"numberOfUnit": 1,
"attachmentType": null
},
"brokerCriteria": {
"displayConventionalRate": false,
"minimunCompensation": null,
"maxCompensation": null,
"overrideExistingComplan": false,
"compPlan": null,
"qmFilterLimit": null,
"rateTypes": [],
"sortView": "LenderPaid",
"businessSourceType": "BST_NA",
"divisionSourceType": null,
"feeServicer": null,
"feeServicerList": [],
"dayLocks": 30,
"dayLocksList": [14, 15, 21, 30, 45, 60, 90],
"ausList": ["None", "LP", "DU"],
"closingCostRange": {
"@class": "com.cre8techlabs.entity.broker.BrokerCriteria$RangeClosingCost",
"from": null,
"to": null,
"closestToPar": false,
"infinite": true
},
"searchContext": {}
},
"accessCriteria": {
"marketPlaceSearch": false,
"companyIds": []
},
"filter": {
"programNames": [],
"productCode": []
},
"showDisqualify": false,
"showDisqualifyRules": true,
"showUnmatchCompPlan": false,
"rateGridIds": [],
"ratePeriodIds": [],
"miCriteria": {
"miCompanyId": null,
"miCompanyName": null,
"amortizationType": "FullyAmmortized",
"loanType": "Fixed",
"duLpDecision": "DU_Approve_Eligible",
"buyDownPercent": "None",
"originationChannel": "Retail",
"loanProgram": null,
"renewalType": "Constant",
"paymentPlan": "EZMonthly",
"paymentType": "Monthly",
"coBorrowerFicoScore": null,
"varaiableLoanType": null,
"numberOfDeferredPayments": 0
},
"closingCost": {
"closingCostGroup": [],
"settlementCost": {
"origination": {
"othersLabel": "Fee",
"others": 0,
"underwritingLabel": "Underwriting",
"underwriting": 0,
"administrationLabel": "Administration Fee",
"administration": null,
"lenderCreditLabel": "Lender Credit",
"lenderCredit": null,
"total": 0
},
"titleService": {
"overrideTitle": false,
"titleInsuranceLabel": "Title Insurance Cost",
"titleInsurance": null,
"borrowerTitlePaidPercentLabel": "Borrower Title Insurance Percent",
"borrowerTitlePaidPercent": 0.5,
"overrideEscrow": false,
"escrowCostLabel": "Escrow Cost",
"escrowCost": null,
"borrowerEscrowPaidPercentLabel": "Borrower Escrow Cost Percent",
"borrowerEscrowPaidPercent": 0.5,
"notarySignLabel": "Notary Sign",
"notarySign": 145,
"total": 145
},
"thirdPartyServices": {
"appraisalLabel": "Appraisal",
"appraisal": 500,
"taxServiceLabel": "Tax Service",
"taxService": 0,
"creditReportLabel": "Credit Report",
"creditReport": 0,
"floodCertificationLabel": "Floor Certification",
"floodCertification": 12,
"overnightLabel": "Overnight",
"overnight": 16,
"recordingLabel": "Recording",
"recording": 85,
"total": 613
},
"closingCostGroup": [],
"total": 758
},
"useClosingCost": false,
"useCompanyDefaultClosingCost": false,
"useErnstCost": false,
"allowErnstQuote": false,
"total": 758
},
"rate": null,
"maxListingPerRate": -1,
"skipAdjustments": false,
"name": null,
"termsCriteria": [30],
"loanPurposeCriteria": ["Purchase"],
"loanTypeCriteria": ["Fixed"],
"varLoanTypeCriteria": [],
"code": "FLEX"
}'