Product and Pricing: Setting the Rate and Price Adjuster Details

This knowledge article describes how to set the rate and price adjuster details in the Lock Request Form under ‘Detailed Lock’ using the Update a Rate Lock Request API.

PATCH https://api.elliemae.com/encompass/v1/loans/{loanId}/ratelockRequests/{requestId}

Using the PATCH Update a Rate Lock Request API, is there a way to bulk-clear all existing adjustment fields when updating the existing values?

No. Adjusters are seen as a group, which must be updated with explicit guidance. To clear any existing undesirable adjustment values, you must explicitly pass blanks for “description” and “price”|”rate” for all possible rows in each table. If you only pass the rateLock.lockRequestAdjustments[] you are updating, then any lockRequestAdjustments not passed remain unchanged.

For example:

The following rate lock request form has two Loan Level Pricing Adjustments of 0.500 and 0.375 respectively. If the updated pricing request needs to reflect only the ARM LTV adjustment of 0.500, the Update a Rate Lock Request API should be called with the following payload:

{
  "lockRequest": {
    "lockNumberOfDays": 365,
    "lockExpirationDate": "2024-01-20",
    "lockDate": "2023-01-20",
    "adjustments": [
      {
        "adjustmentType": "Adjustment",
        "description": "15 Day Lock Period",
        "priceAdjustmentType": "BaseRate",
        "adjustment": 1
      },
      {
        "adjustmentType": "Adjustment",
        "description": "45 Day Lock Period",
        "priceAdjustmentType": "BaseRate",
        "adjustment": 2
      },
      {
        "adjustmentType": "Adjustment",
        "description": "60 Day Lock Period",
        "priceAdjustmentType": "BaseRate",
        "adjustment": 3
      },
      {
        "adjustmentType": "Adjustment",
        "description": "Fixed: LTV <= 70.00%",
        "priceAdjustmentType": "BaseRate",
        "adjustment": 4
      },
      {
        "adjustmentType": "Adjustment",
        "description": "ARM: LTV 80.01 - 85.00%",
        "priceAdjustmentType": "BaseRate",
        "adjustment": 5
      },
      {
        "adjustmentType": "Adjustment",
        "description": "ARM: LTV 85.01 - 90.00%",
        "priceAdjustmentType": "BaseRate",
        "adjustment": 6
      }
    ],
    "totalRateAdjustments": 21,
    "netRate": 21
  }
}

An intentional constraint is in place wherein a check validates if the fields are modified and only then update the modified fields with blanks/values specified in the payload.