Hcm Module - Response

The Data object for a response from the Hcm module is defined below, in the order the fields are returned:

🟥 Data

TypeRequired
Objectyes

The Data object encapsulates the response data for a given module, and will always be present.

Fields: 🔸IsHcm

Objects: 🟥 Errors[], 🟥 Warnings[], 🟥 Triggers, 🟥 AprTrigger, 🟥 PointsFeesTrigger, 🟥 PrepaymentTrigger

🔸 Data.IsHcm

TypeRequiredValues
Booleanyestrue, false

The value of this field will either be true or false, and will indicated whether or not the submitted loan is a high cost mortgage.


🟥 Data.Errors[]

TypeRequired
Array of Stringyes

The Errors[] field contains an array of Strings which describe any errors encountered while handling the request. If the length of the Errors[] Array is zero (0), then the module processed the request successfully, and the Data object can be further processed by the calling application for the returned data.

On the other hand, if the length of the Errors[] Array is greater than zero (0), then this indicates that an error condition has been detected, and the calling application should not process the respons Data object further. In this case, the contents of the Errors[] array will describe the error(s) encountered.

Typical errors include the omission of 🟥 required fields, invalid field values, etc.


🟥 Data.Warnings[]

TypeRequired
Array of Stringyes

The Warnings[] field contains an array of Strings which describe any warnings generated by the module handling the request. The most common warnings returned by modules inform the calling application that the module does not recognize a specified field (which may help to isolate a field name spelling error in the calling application's code). Note that field names which start with "//" will bre treated as comment fields by the SCE, and no warnings will be generated for these unrecognized fields.

Example - Request and response illustrating warnings when passing unrecognized fields:

{
  "Module" : "Hcm",
  "Data" : {
    "//" : "This is a comment.",
    "Hello" : "Friend!",
    "How" : "are you?"
  }
}
{
    "Result": 200,
    "Module": "Hcm",
    "Data": {
        "Errors": [
            "Data.LockInDate (StringDate) not found.",
            "Data.LienType (String) not found.",
            "Data.RateType (String) not found.",
            "Data.Dwelling (String) not found.",
            "Data.LoanAmount (StringFloat) not found.",
            "Data.AmountFinanced (StringFloat) not found.",
            "Data.Apr (StringFloat) not found.",
            "Data.FinanceCharge (StringFloat) not found.",
            "Data.InterestCharge (StringFloat) not found."
        ],
        "Warnings": [
            "Request field Data.Hello (String) not recognized.",
            "Request field Data.How (String) not recognized."
        ]
    }
}

🟥 Data.Triggers

TypeRequired
Objectyes

This object informs the calling application about that status of the three possible triggers that can cause a loan to be classified as high cost.

Fields: 🔹Apr, 🔹PointsFees, 🔹Prepayment

Objects: None

🔹 Data.Triggers.Apr

TypeRequiredValues
Booleanyestrue, false

If the Apr test was triggered, then the value of this field will be true.

🔹 Data.Triggers.PointsFees

TypeRequiredValues
Booleanyestrue, false

If the Points and Fees test was triggered, then the value of this field will be true.

🔹 Data.Triggers.Prepayment

TypeRequiredValues
Booleanyestrue, false

If the Prepayment test was triggered, then the value of this field will be true.


🟥 Data.AprTrigger

TypeRequired
Objectyes

This object provides further information on the high cost mortgage Apr test, which may be of interest to the calling application.

Fields: 🔸Date, 🔸Apor, 🔸Spread, 🔸Difference

Objects: None

🔸 Data.AprTrigger.Date

TypeRequiredValues
StringyesYYYY-MM-DD

The Date field contains the date on which the APOR data was effective. As an example, if the lock in date was 2013-05-09, then the date returned should be 2013-05-06 (if the APOR files are up to date).

🔸 Data.AprTrigger.Apor

TypeRequiredValues
StringyesNumber in [-99.999...600]

The value of this field contains the Average Prime Offer Rate for the submitted loan. This value is retrieved from the appropriate APOR file (fixed or adjustable).

🔸 Data.AprTrigger.Spread

TypeRequiredValues
StringyesNumber in [-99.999...600]

The spread value depends upon the type of lien, loan amount, and dwelling type. The resulting spread will either be 6.5 or 8.5.

🔸 Data.AprTrigger.Difference

TypeRequiredValues
StringyesNumber in [-99.999...600]

The value of this field returns the difference between the submitted APR applicable to the transaction, and the APOR plus the spread. If the difference is greater than zero (which means that the APR is greater than the APOR plus spread), then the loan is a HCM.


🟥 Data.PointsFeesTrigger

Fields: 🔸TotalLoanAmount, 🔸TotalPointsFees, 🔸MaxPointsFees

Objects: None

TypeRequired
Objectyes

This object provides further information on the high cost mortgage points and fees test, which may be of interest to the calling application.

🔸 Data.PointsFeesTrigger.TotalLoanAmount

TypeRequiredValues
StringyesCurrency

The total loan amount is defined in Section 1026.32(b)(4). It is calculated by taking the Regulation Z Amount Financed and deducting some of the financed fees and charges which are provided as inputs to the calculation.

🔸 Data.PointsFeesTrigger.TotalPointsFees

TypeRequiredValues
StringyesCurrency

The total points and fees value is defined in Section 1026.32(b)(1). It is calculated by taking the Regulation Z Finance Charge and deducting some portions of the Finance Charge, and then adding other fees and charges which are provided as inputs to the calculation.

🔸 Data.PointsFeesTrigger.MaxPointsFees

TypeRequiredValues
StringyesCurrency

If the computed total points and fees value for the submitted loan exceeds this value, then the loan is a high cost mortgage. The maximum points and fees value calculation is defined in Section 1026.32(a)(1)(ii).


🟥 Data.PrepaymentTrigger

TypeRequired
Objectyes

This object provides further information on the prepayment test, which may be of interest to the calling application.

Fields: 🔸After36Months, 🔸Total, 🔸Max

Objects: None

🔸 Data.PrepaymentTrigger.After36Months

TypeRequiredValues
Booleanyestrue, false

If the creditor can charge a prepayment penalty more than 36 months after consummation, then the loan is a high cost mortgage.

🔸 Data.PrepaymentTrigger.Total

TypeRequiredValues
StringyesCurrency

This field returns the total potential amount of prepayment penalties.

🔸Data.PrepaymentTrigger.Max

TypeRequiredValues
StringyesCurrency

The maximum prepayment penalty is computed acording to Section 1026.32(a)(1)(iii), and is equal to 2% of the specified AmountPrepaid. If the Total amount exceeds this value, then the loan is a high cost mortgage.