Update Rate Lock
An integration listed in the PPE category can update a rate lock by creating a transaction with a response that returns the required field values, and with a response result
object with the action UPDATE
. In addition, within the same transaction response, the integration can also send additional loan data to be updated in Encompass. The specific fields that are sent as part of the response loan data follow the standard data entitlement model and process. However, not all of the loan data fields that are send inside the loan attribute are saved as part of the lock snapshot.
{
"status": "completed",
"loanFormat": "application/vnd.plm-2.0.0+json",
"loan": {
... // Additional loan data, sent as part of standard transaction loan update
},
"result": {
"format": "application/vnd.productpricing-update-1.0.0.json",
"action": "UPDATE",
"details": {
... //Update rate lock action details
},
"partnerStatus": "partner status",
"respondingParty": {
"name": "PPE partner",
"address": "P.O. BOX 509124, SUITE 300",
"city": "SAN DIEGO",
"state": "CA",
"postalCode":" 92150",
"pointOfContact": {
"fax": "8002376526",
"phone": "8009864343",
"email": "[email protected]"
}
},
"referenceNumber": "000901"
}
The full list of supported fields in the update rate lock request action details
are captured in the JSON-schema
object definition below. There are several resources available online, such as https://www.jsonschemavalidator.net/
, where a result details
objects content can be manually validated.
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"validationMessage": {
"oneOfAdditionalFields": "fieldName and one of stringValue, numericValue and dateValue is required.",
"datePattern": "Date should be in the format MM/DD/YYYY.",
"uuidPattern": "UUID. It must be a valid UUID format"
},
"properties": {
"lockId": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"validationMessage": {
"$ref": "#/validationMessage/uuidPattern"
}
},
"buySide": {
"type": "object",
"properties": {
"commitment": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"Best Efforts",
"Mandatory"
]
},
"number": {
"type": "string",
"description": "Commitment number associated with the trade."
},
"date": {
"$ref": "#/definitions/datePattern",
"description": ""
},
"masterCommitmentNumber": {
"type": "string",
"description": "Master commitment number associated with the trade."
},
"investorCommitment": {
"type": "string",
"description": ""
}
},
"additionalProperties": false
},
"onrpDate": {
"$ref": "#/definitions/datePattern",
"description": ""
},
"onrpEligible": {
"type": "boolean",
"description": ""
},
"tpoName": {
"type": "string",
"description": ""
},
"tpoId": {
"type": "string",
"description": ""
},
"orgId": {
"type": "string",
"description": ""
},
"daysToExtend": {
"$ref": "#/definitions/integerField"
},
"extendedLockExpirationDate": {
"$ref": "#/definitions/datePattern"
},
"lockExtendPriceAdjustment": {
"$ref": "#/definitions/numericField"
},
"expirationDate": {
"$ref": "#/definitions/datePattern",
"description": ""
},
"originalLockExpirationDate": {
"$ref": "#/definitions/datePattern"
},
"investor": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the investor."
}
},
"additionalProperties": false
},
"delivery": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": ""
},
"expirationDate": {
"$ref": "#/definitions/datePattern",
"description": ""
}
},
"additionalProperties": false
},
"totalBuyPrice": {
"$ref": "#/definitions/numericField",
"description": ""
},
"totalPrice": {
"$ref": "#/definitions/numericField",
"description": ""
},
"startingAdjustPrice": {
"$ref": "#/definitions/numericField",
"description": ""
},
"unDiscountedRate": {
"$ref": "#/definitions/numericField",
"description": ""
},
"totalRateAdjustments": {
"$ref": "#/definitions/numericField",
"description": ""
},
"netRate": {
"$ref": "#/definitions/numericField",
"description": ""
},
"totalPriceAdjustments": {
"$ref": "#/definitions/numericField",
"description": ""
},
"netPrice": {
"$ref": "#/definitions/numericField",
"description": ""
},
"totalMarginAdjustments": {
"$ref": "#/definitions/numericField",
"description": ""
},
"netMarginRate": {
"$ref": "#/definitions/numericField",
"description": ""
},
"startingAdjustRate": {
"$ref": "#/definitions/numericField",
"description": ""
},
"branch": {
"type": "object",
"properties": {
"approvalDate": {
"$ref": "#/definitions/datePattern",
"description": ""
},
"approvedBy": {
"type": "string",
"description": ""
},
"price": {
"$ref": "#/definitions/numericField",
"description": ""
},
"reasonForApproval": {
"type": "string",
"description": ""
},
"approvalDate2": {
"$ref": "#/definitions/datePattern",
"description": ""
},
"approvedBy2": {
"type": "string",
"description": ""
},
"price2": {
"$ref": "#/definitions/numericField",
"description": ""
},
"reasonForApproval2": {
"type": "string",
"description": ""
},
"approvalDate3": {
"$ref": "#/definitions/datePattern",
"description": ""
},
"approvedBy3": {
"type": "string",
"description": ""
},
"price3": {
"$ref": "#/definitions/numericField",
"description": ""
},
"reasonForApproval3": {
"type": "string",
"description": ""
},
"approvalDate4": {
"$ref": "#/definitions/datePattern",
"description": ""
},
"approvedBy4": {
"type": "string",
"description": ""
},
"price4": {
"$ref": "#/definitions/numericField",
"description": ""
},
"reasonForApproval4": {
"type": "string",
"description": ""
},
"approvalDate5": {
"$ref": "#/definitions/datePattern",
"description": ""
},
"approvedBy5": {
"type": "string",
"description": ""
},
"price5": {
"$ref": "#/definitions/numericField",
"description": ""
},
"reasonForApproval5": {
"type": "string",
"description": ""
}
},
"additionalProperties": false
},
"corporate": {
"type": "object",
"properties": {
"approvalDate": {
"$ref": "#/definitions/datePattern",
"description": ""
},
"approvedBy": {
"type": "string",
"description": ""
},
"price": {
"$ref": "#/definitions/numericField",
"description": ""
},
"reasonForApproval": {
"type": "string",
"description": ""
},
"approvalDate2": {
"$ref": "#/definitions/datePattern",
"description": ""
},
"approvedBy2": {
"type": "string",
"description": ""
},
"price2": {
"$ref": "#/definitions/numericField",
"description": ""
},
"reasonForApproval2": {
"type": "string",
"description": ""
},
"approvalDate3": {
"$ref": "#/definitions/datePattern",
"description": ""
},
"approvedBy3": {
"type": "string",
"description": ""
},
"price3": {
"$ref": "#/definitions/numericField",
"description": ""
},
"reasonForApproval3": {
"type": "string",
"description": ""
},
"approvalDate4": {
"$ref": "#/definitions/datePattern",
"description": ""
},
"approvedBy4": {
"type": "string",
"description": ""
},
"price4": {
"$ref": "#/definitions/numericField",
"description": ""
},
"reasonForApproval4": {
"type": "string",
"description": ""
},
"approvalDate5": {
"$ref": "#/definitions/datePattern",
"description": ""
},
"approvedBy5": {
"type": "string",
"description": ""
},
"price5": {
"$ref": "#/definitions/numericField",
"description": ""
},
"reasonForApproval5": {
"type": "string",
"description": ""
}
},
"additionalProperties": false
},
"profitMarginAdjustedBuyPrice": {
"$ref": "#/definitions/numericField"
},
"correspondent": {
"type": "object",
"properties": {
"tradeId": {
"type": "string",
"description": ""
},
"tradeNumber": {
"type": "string",
"description": ""
}
},
"additionalProperties": false
},
"lockDate": {
"$ref": "#/definitions/datePattern",
"description": ""
},
"lockExpirationDate": {
"$ref": "#/definitions/datePattern",
"description": ""
},
"lockNumberOfDays": {
"$ref": "#/definitions/integerField",
"description": ""
},
"baseRate": {
"$ref": "#/definitions/numericField",
"description": ""
},
"basePrice": {
"$ref": "#/definitions/numericField"
},
"baseMarginRate": {
"$ref": "#/definitions/numericField",
"description": ""
},
"srpPaidOut": {
"$ref": "#/definitions/numericField",
"description": ""
},
"rateSheetId": {
"type": "string",
"description": ""
},
"lastRateSetDate": {
"$ref": "#/definitions/datePattern",
"description": ""
},
"comments": {
"type": "string",
"description": ""
},
"adjustments": {
"type": "array",
"items": {
"$ref": "#/definitions/adjustmentItem"
},
"minItems": 1,
"description": ""
}
},
"additionalProperties": false
},
"sellSide": {
"type": "object",
"properties": {
"srp": {
"$ref": "#/definitions/numericField"
},
"servicing": {
"$ref": "#/definitions/servicingItem"
},
"actual": {
"type": "object",
"properties": {
"amount": {
"$ref": "#/definitions/numericField"
},
"price": {
"$ref": "#/definitions/numericField"
},
"srp": {
"$ref": "#/definitions/numericField"
}
},
"additionalProperties": false
},
"diff": {
"type": "object",
"properties": {
"amount": {
"$ref": "#/definitions/numericField"
},
"price": {
"$ref": "#/definitions/numericField"
},
"srp": {
"$ref": "#/definitions/numericField"
}
},
"additionalProperties": false
},
"netAmount": {
"$ref": "#/definitions/numericField"
},
"paidMiPremium": {
"$ref": "#/definitions/numericField"
},
"tradeMgmtPrevConfirmedLockGuid": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"validationMessage": {
"$ref": "#/validationMessage/uuidPattern"
}
},
"correspondent": {
"type": "object",
"properties": {
"escrowDisbursementsToBePaid": {
"$ref": "#/definitions/numericField"
},
"tradeId": {
"type": "string"
},
"tradeNumber": {
"type": "string"
}
},
"additionalProperties": false
},
"daysToExtend": {
"$ref": "#/definitions/integerField"
},
"extendedLockExpirationDate": {
"$ref": "#/definitions/datePattern"
},
"commitmentDate": {
"$ref": "#/definitions/datePattern"
},
"lockExtendPriceAdjustment": {
"$ref": "#/definitions/numericField"
},
"discountYsp": {
"$ref": "#/definitions/numericField"
},
"masterContractNumber": {
"type": "string"
},
"gainLossPercentage": {
"$ref": "#/definitions/numericField"
},
"gainLossPrice": {
"$ref": "#/definitions/numericField"
},
"gainLossTotalPrice": {
"$ref": "#/definitions/numericField"
},
"rateSheetId": {
"type": "string"
},
"lastRateSetDate": {
"$ref": "#/definitions/datePattern"
},
"lockNumberOfDays": {
"$ref": "#/definitions/integerField"
},
"lockExpirationDate": {
"$ref": "#/definitions/datePattern"
},
"lockDate": {
"$ref": "#/definitions/datePattern"
},
"baseRate": {
"$ref": "#/definitions/numericField"
},
"totalRateAdjustments": {
"$ref": "#/definitions/numericField"
},
"netRate": {
"$ref": "#/definitions/numericField"
},
"basePrice": {
"$ref": "#/definitions/numericField"
},
"totalPriceAdjustments": {
"$ref": "#/definitions/numericField"
},
"netPrice": {
"$ref": "#/definitions/numericField"
},
"baseMarginRate": {
"$ref": "#/definitions/numericField"
},
"totalMarginAdjustments": {
"$ref": "#/definitions/numericField"
},
"netMarginRate": {
"$ref": "#/definitions/numericField"
},
"originalLockExpirationDate": {
"$ref": "#/definitions/datePattern"
},
"comments": {
"type": "string"
},
"srpPaidOut": {
"$ref": "#/definitions/numericField"
},
"investor": {
"type": "object",
"properties": {
"loanNumber": {
"type": "string"
},
"mersNumber": {
"type": "string"
},
"lockedDate": {
"$ref": "#/definitions/datePattern"
},
"deliveryDate": {
"$ref": "#/definitions/datePattern"
},
"targetDeliveryDate": {
"$ref": "#/definitions/datePattern"
},
"name": {
"type": "string"
},
"contact": {
"type": "string"
},
"phone": {
"type": "string"
},
"email": {
"type": "string"
},
"address": {
"type": "string"
},
"city": {
"type": "string"
},
"state": {
"type": "string",
"maxLength": 2
},
"postalCode": {
"type": "string"
},
"website": {
"type": "string"
},
"lockType": {
"type": "string"
},
"programCode": {
"type": "string"
},
"status": {
"type": "string"
},
"statusDate": {
"$ref": "#/definitions/datePattern"
},
"tradeNumber": {
"type": "string"
},
"commitment": {
"type": "string"
},
"templateName": {
"type": "string"
}
},
"additionalProperties": false
},
"adjustments": {
"type": "array",
"items": {
"$ref": "#/definitions/adjustmentItem"
},
"minItems": 1,
"description": ""
}
},
"additionalProperties": false
},
"comparison": {
"type": "object",
"properties": {
"servicingType": {
"type": "string",
"enum": [
"Service Retained",
"Service Released"
]
},
"discountYsp": {
"$ref": "#/definitions/numericField"
},
"masterContractNumber": {
"type": "string"
},
"gainLossPercentage": {
"$ref": "#/definitions/numericField"
},
"gainLossPrice": {
"$ref": "#/definitions/numericField"
},
"gainLossTotalPrice": {
"$ref": "#/definitions/numericField"
},
"rateSheetId": {
"type": "string"
},
"lastRateSetDate": {
"$ref": "#/definitions/datePattern"
},
"lockNumberOfDays": {
"$ref": "#/definitions/integerField"
},
"lockExpirationDate": {
"$ref": "#/definitions/datePattern"
},
"lockDate": {
"$ref": "#/definitions/datePattern"
},
"baseRate": {
"$ref": "#/definitions/numericField"
},
"totalRateAdjustments": {
"$ref": "#/definitions/numericField"
},
"netRate": {
"$ref": "#/definitions/numericField"
},
"basePrice": {
"$ref": "#/definitions/numericField"
},
"totalPriceAdjustments": {
"$ref": "#/definitions/numericField"
},
"netPrice": {
"$ref": "#/definitions/numericField"
},
"baseMarginRate": {
"$ref": "#/definitions/numericField"
},
"totalMarginAdjustments": {
"$ref": "#/definitions/numericField"
},
"netMarginRate": {
"$ref": "#/definitions/numericField"
},
"comments": {
"type": "string"
},
"originalLockExpirationDate": {
"$ref": "#/definitions/datePattern"
},
"srpPaidOut": {
"$ref": "#/definitions/numericField"
},
"investor": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"contact": {
"type": "string"
},
"phone": {
"type": "string"
},
"email": {
"type": "string"
},
"address": {
"type": "string"
},
"city": {
"type": "string"
},
"state": {
"type": "string",
"maxLength": 2
},
"postalCode": {
"type": "string"
},
"website": {
"type": "string"
},
"lockType": {
"type": "string"
},
"programCode": {
"type": "string"
},
"status": {
"type": "string"
},
"statusDate": {
"$ref": "#/definitions/datePattern"
},
"tradeNumber": {
"type": "string"
},
"commitment": {
"type": "string"
},
"templateName": {
"type": "string"
}
},
"additionalProperties": false
},
"adjustments": {
"type": "array",
"items": {
"$ref": "#/definitions/adjustmentItem"
},
"minItems": 1,
"description": ""
}
},
"additionalProperties": false
},
"additionalFields": {
"type": "array",
"items": {
"$ref": "#/definitions/additionalFieldItem"
},
"minItems": 1,
"description": "Additional fields in the rate lock."
}
},
"additionalProperties": false,
"definitions": {
"integerField": {
"type": "integer",
"minimum": 1
},
"numericField": {
"type": "number",
"multipleOf": 0.001
},
"adjustmentNumericField": {
"type": "number",
"multipleOf": 0.001
},
"datePattern": {
"type": "string",
"pattern": "^^(?:(?:(?:0?[13578]|1[02])(\\/)31)\\1|(?:(?:0?[1,3-9]|1[0-2])(\\/)(?:29|30)\\2))(?:(?:1[6-9]|[2-9]\\d)?\\d{2})$|^(?:0?2(\\/)29\\3(?:(?:(?:1[6-9]|[2-9]\\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:(?:0?[1-9])|(?:1[0-2]))(\\/)(?:0?[1-9]|1\\d|2[0-8])\\4(?:(?:1[6-9]|[2-9]\\d)?\\d{2})$",
"validationMessage": {
"$ref": "#/validationMessage/datePattern"
}
},
"servicingItem": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"Service Retained",
"Service Released"
],
"description": ""
},
"servicer": {
"type": "string"
},
"fee": {
"type": "object",
"properties": {
"servicing": {
"$ref": "#/definitions/numericField"
},
"guarantyBase": {
"$ref": "#/definitions/numericField"
},
"guarantee": {
"$ref": "#/definitions/numericField"
}
},
"additionalProperties": false
},
"pool": {
"type": "object",
"properties": {
"number": {
"type": "string"
},
"id": {
"type": "string"
}
},
"additionalProperties": false
},
"commitmentContractNumber": {
"type": "string"
},
"productName": {
"type": "string"
},
"msrValue": {
"$ref": "#/definitions/numericField"
}
},
"additionalProperties": false
},
"adjustmentItem": {
"type": "object",
"properties": {
"adjustmentType": {
"type": "string",
"enum": [
"Adjustment",
"LockExtensionAdjustment",
"ReLockFeeAdjustment",
"CustomPriceAdjustment"
],
"description": ""
},
"description": {
"type": "string",
"description": ""
},
"priceAdjustmentType": {
"type": "string",
"enum": [
"BasePrice",
"BaseMargin",
"BaseRate",
"ProfitMargin"
],
"description": ""
},
"adjustment": {
"$ref": "#/definitions/adjustmentNumericField",
"description": ""
}
},
"required": [
"adjustmentType",
"description",
"priceAdjustmentType"
],
"additionalProperties": false
},
"additionalFieldItem": {
"type": "object",
"properties": {
"fieldName": {
"type": "string",
"minLength": 1,
"pattern": "^[a-zA-Z0-9.]*$",
"description": "Identifier of the additional field in encompass"
},
"numericValue": {
"type": "number",
"multipleOf": 0.001,
"description": "Numeric value for the additional field"
},
"stringValue": {
"type": "string",
"minLength": 1,
"description": "String value for the additional field"
},
"dateValue": {
"$ref": "#/definitions/datePattern",
"description": "Date value for the additional field."
}
},
"oneOf": [
{
"required": [
"fieldName",
"stringValue"
],
"validationMessage": {
"$ref": "#/validationMessage/oneOfAdditionalFields"
}
},
{
"required": [
"fieldName",
"numericValue"
],
"validationMessage": {
"$ref": "#/validationMessage/oneOfAdditionalFields"
}
},
{
"required": [
"fieldName",
"dateValue"
],
"validationMessage": {
"$ref": "#/validationMessage/oneOfAdditionalFields"
}
}
],
"additionalProperties": false
}
}
}
Below is a sample update rate lock request payload with most of the fields supported in the update rate lock request operation:
{
"status": "Completed",
"loanFormat": "application/vnd.plm-2.0.0+json",
"loan": {
"property": {
"loanPurposeType": "",
"addressLineText": "",
"city": "",
"state": "",
"postalCode": "",
"county": "",
"landEstimatedValueAmount": "",
"propertyUsageType": "",
"financedNumberOfUnits": "",
"condotelIndicator": "",
"nonwarrantableProjectIndicator": "",
"streetAddress": ""
},
"hudLoanData": {
"loanFor203KIndicator": "",
"totalForLesserOfSumAsIs": ""
},
"loanProductData": {
"lienPriorityType": "",
"fnmProductPlanIdentifier": "",
"borrowerEstimatedClosingDate": "",
"balloonLoanMaturityTermMonthsCount": "",
"gsePropertyType": "",
"loanDocumentationType": ""
},
"gfe": {
"fundingAmount": "",
"lockField": ""
},
"freddieMac": {
"helocActualBalance": ""
},
"regulationZ": {
"lenderPaidMortgageInsuranceIndicator": ""
},
"creditScoreToUse": "",
"firstTimeHomebuyersIndicator": "",
"twelveMonthMortgageRentalHistoryIndicator": "",
"mortgageType": "",
"loanAmortizationType": "",
"otherAmortizationTypeDescription": "",
"noClosingCostOption": "",
"ltv": "",
"combinedLtv": "",
"mipPaidInCashAmount": "",
"loanAmortizationTermMonths": "",
"baseLoanAmount": "",
"borrowerRequestedLoanAmount": "",
"firstSubordinateLienAmount": "",
"secondSubordinateAmount": "",
"totalSubordinateFinancingAmount": "",
"propertyAppraisedValueAmount": "",
"purchasePriceAmount": ""
},
"result": {
"format": "application/vnd.productpricing-update-1.0.0+json",
"action" : "UPDATE",
"details": {
"lockDate": "",
"lockNumberOfDays": 12,
"baseRate": 7.5,
"lockExpirationDate": "",
"requestedDate": "",
"comments": "",
"programNotes": "",
"expectedNetPrice": "",
"onrpDate": "",
"onrpEligible": "",
"correspondentCommitmentType": "",
"correspondentDeliveryType": "",
"onrpLock": "",
"hedging": "",
"penaltyTerm": "",
"prepayPenalty": "",
"isDeliveryType": "",
"rateSheetId": "",
"lastRateSetDate": "",
"totalRateAdjustments": "",
"netRate": "",
"basePrice": "",
"totalPriceAdjustments": "",
"netPrice": "",
"baseMarginRate": "",
"totalMarginAdjustments": "",
"netMarginRate": "",
"originalLockExpirationDate": "",
"loanProgram": "",
"planCode": "",
"currentAcquisition": "",
"currentConstructionRefi": "",
"gpmRate": "",
"gpmYears": "",
"requestImpoundWaived": "",
"requestImpoundType": "",
"adjustments": [
{
"adjustmentType": "Base",
"description": "",
"value": 102.66,
"rate": 3.65
},
{
"adjustmentType": "Adjustment",
"description": "PPP Term AMtrix",
"price": 0,
"rate": 0.3
}
]
}
}
}
Updated about 1 year ago