Hcm Module - Response
The Data object for a response from the Hcm module is defined below, in the
order the fields are returned:
| Object | Fields |
|---|---|
🟥 Data | 🔸IsHcm |
🟥 Errors[] | |
🟥 Warnings[] | |
🟥 Triggers | 🔹Apr, 🔹PointsFees, 🔹Prepayment |
🟥 AprTrigger | 🔸Date, 🔸Apor, 🔸Spread, 🔸Difference |
🟥 PointsFeesTrigger | 🔸TotalLoanAmount, 🔸TotalPointsFees, 🔸MaxPointsFees |
🟥 PrepaymentTrigger | 🔸After36Months, 🔸Total, 🔸Max |
🟥 Data
| Type | Required |
|---|---|
| Object | yes |
The Data object encapsulates the response data for a given module, and will
always be present.
Fields:
🔸IsHcmObjects:
🟥 Errors[],🟥 Warnings[],🟥 Triggers,🟥 AprTrigger,🟥 PointsFeesTrigger,🟥 PrepaymentTrigger
🔸 Data.IsHcm
| Type | Required | Values |
|---|---|---|
| Boolean | yes | true, 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[]
| Type | Required |
|---|---|
| Array of String | yes |
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[]
| Type | Required |
|---|---|
| Array of String | yes |
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
| Type | Required |
|---|---|
| Object | yes |
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,🔹PrepaymentObjects:
None
🔹 Data.Triggers.Apr
| Type | Required | Values |
|---|---|---|
| Boolean | yes | true, false |
If the Apr test was triggered, then the value of this field will be true.
🔹 Data.Triggers.PointsFees
| Type | Required | Values |
|---|---|---|
| Boolean | yes | true, false |
If the Points and Fees test was triggered, then the value of this field will be
true.
🔹 Data.Triggers.Prepayment
| Type | Required | Values |
|---|---|---|
| Boolean | yes | true, false |
If the Prepayment test was triggered, then the value of this field will be
true.
🟥 Data.AprTrigger
| Type | Required |
|---|---|
| Object | yes |
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,🔸DifferenceObjects:
None
🔸 Data.AprTrigger.Date
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-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
| Type | Required | Values |
|---|---|---|
| String | yes | Number 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
| Type | Required | Values |
|---|---|---|
| String | yes | Number 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
| Type | Required | Values |
|---|---|---|
| String | yes | Number 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,🔸MaxPointsFeesObjects:
None
| Type | Required |
|---|---|
| Object | yes |
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
| Type | Required | Values |
|---|---|---|
| String | yes | Currency |
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
| Type | Required | Values |
|---|---|---|
| String | yes | Currency |
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
| Type | Required | Values |
|---|---|---|
| String | yes | Currency |
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
| Type | Required |
|---|---|
| Object | yes |
This object provides further information on the prepayment test, which may be of interest to the calling application.
Fields:
🔸After36Months,🔸Total,🔸MaxObjects:
None
🔸 Data.PrepaymentTrigger.After36Months
| Type | Required | Values |
|---|---|---|
| Boolean | yes | true, 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
| Type | Required | Values |
|---|---|---|
| String | yes | Currency |
This field returns the total potential amount of prepayment penalties.
🔸Data.PrepaymentTrigger.Max
| Type | Required | Values |
|---|---|---|
| String | yes | Currency |
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.