High Cost Mortgage (HCM) - Request
Please see the Legend to understand the conventions used to document each element and attribute. Note that for requests, the XML elements are documented in alphabetical order by parent element.
🟥 <inHCM>
Element Type | Data Type |
---|---|
Parent | - |
This is the root element of the HCM query input message, and is required. This
contains child elements which specify the particulars of the already computed
loan which is being examined to see if it is a HCM. The following attributes of
the <inHCM>
element are defined:
Attributes:
🔹DataDirPath
🔹 DataDirPath
Data Type | Values | Default |
---|---|---|
Text | See below | See below |
If this attribute is set, the SCEX will look for a data folder containing the
APOR and hcm.ini
files in the path specified. Thus, in the example above where
DataDirPath is set to C:\SCEX\
, the SCEX will look for the APOR and hcm.ini
files in C:\SCEX\data
. Note that the APOR files must be named as follows:
YieldTableFixed.txt
and YieldTableAdjustable.txt
.
If the calling application wishes to specify the data directory path in its
entirety (e.g. the calling app does not want the SCEX to append \data
to the
provided path), then simply terminate the specified DataDirPath with an asterisk
(*
). Thus, if the DataDirPath is set to C:\SCEX\bank1\*
, the SCEX will look
for the APOR files in C:\SCEX\bank1\
.
If this attribute is not set, the SCEX will attempt to locate the data folder in
the default data directory path location, which can be retrieved using the
<inVERSION>
query, and set via the SCEX API.
Since the APOR and hcm.ini
files are global in nature, you only need to have
one copy of these files available even if your installation hosts multiple data
paths for different clients. The APOR files are identical to those needed for
the HIPML module, and thus a single location containing the APOR files can be
used for both modules.
🟥 <AmountFinanced>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | > 0 |
As defined in Regulation Z (Section 1026.18(b)), the amount of credit provided
to the borrower or on the borrower’s behalf. As an example, the SCEX returns the
loan’s Amount Financed under <outLOANTYPE>
→<FedBox>
→<AmtFin>
.
Attributes: None
🟥 <APR>
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | [-99.999...600] |
This element contains the APR applicable to the transaction, which is not the same as the Regulation Z APR. The APR applicable to the transaction is determined as follows (from Section 1026.32(a)(3)):
- If the rate plan is fixed, then the APR equals the interest rate in effect as of the date the interest rate for the transaction is set.
- If the rate plan varies based on an index, then the APR equals the maximum margin allowed during the term of the loan plus the value of the index rate in effect as of the date the interest rate for the transaction is set.
- If the rate plan varies and is not based on an index (case 2 above), then the APR equals the maximum interest rate that may be imposed during the term of the loan.
Attributes: None
🟦 <CreditInsurance>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
Any premiums or other charges payable at or before consummation for any credit life, credit disability, credit unemployment, or credit property insurance, or any other life, accident, health, or loss-of-income insurance for which the creditor is a beneficiary. See Section 1026.32(b)(1)(iv).
Attributes:
🔹FinanceAmt
🔹 FinanceAmt
Data Type | Values | Default |
---|---|---|
Currency | >=0 | 0 |
The value of this attribute specifies the amount of the above specified premiums and/or fees which were financed.
🟦 <DiscountPoints>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Decimal | [0...600] | 0 |
This element specifies the number of bona fide discount points paid by the borrower. According to Section 1026.32(b)(3)(i)(D), a bona fide discount point “means an amount equal to 1 percent of the loan amount paid by the customer that reduces the interest rate”.
🔹 Fee
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
The total fee due for the discounted interest rate.
🔹 FullRate
Data Type | Values | Default |
---|---|---|
Decimal | >= 0 | 0 |
The value of this attribute specifies the non-discounted rate, or the interest rate without any discount.
🟦 <FederalStatePremiumsFees>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | > 0 | 0 |
The value of this element is the sum of all federal and state mortgage insurance premiums and guarantee fees that are included in the Finance Charge. See Section 1026.32(b)(1)(i)(B).
Attributes: None
🟥 <FinanceCharge>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | any |
As defined in Regulation Z (Section 1026.4), the dollar amount that the credit
will cost the borrower. As an example, the SCEX returns the loan’s Finance
Charge under <outLOANTYPE>
→<FedBox>
→<FinChg>
.
Attributes: None
🟦 <Format>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | see attribute defaults |
The <Format>
element is one of the first elements parsed from a request, as the
attributes of this empty element affect how date and numeric values are parsed
and validated.
Attributes:
🔹CurrencyDecimals
,🔹DateFormat
,🔹DateSeparator
,🔹DecimalSeparator
,🔹StrictDP
,🔹ThousandSeparator
🔹 CurrencyDecimals
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 | 2 |
When displaying and parsing Currency values, the value of this attribute
determines the maximum number of decimal places allowed after the
DecimalSeparator
.
🔹 DateFormat
Data Type | Values | Default |
---|---|---|
Enum | YMD , MDY , DMY | YMD |
When displaying and parsing Date values, this field determines the expected
format for all Date fields. The following DateFormat
options are allowed:
YMD
- All dates should be formatted as YYYY-MM-DD.MDY
- All dates should be formatted as MM-DD-YYYY.DMY
- All dates should be formatted as DD-MM-YYYY.
Note that the character which separates the individual month, day, and year
portions of the date is configurable via the
DateSeparator
attribute.
🔹 DateSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | - |
When displaying and parsing Date values, this attribute determines the character used to separate the individual month, day, and year portions of a date.
🔹 DecimalSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | . |
When displaying and parsing Currency or Decimal numeric values, this attribute determines the character used to separate the fractional part from the whole.
🔹 StrictDP
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the value of this attribute is true
, then the SCE will strictly verify the
number of decimal places allowed for currency input values. Thus, if the calling
application sends in a request with a currency amount of 1000.005
, the SCE
will return an error code.
If the value of this attribute is false
, then currency values sent in with an
invalid number of decimal places will be rounded to the correct number of
decimal places by the SCE (using five/four rounding), and a warning message with
this information will be returned with the response.
🔹 ThousandSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | , |
When displaying numeric values, this attribute determines the character used to separate the thousands places from the hundreds. Note that when parsing numeric values, the value of this attribute is ignored.
🟥 <InterestCharge>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | any |
This element contains the total interest accrued during the term of the loan,
assuming the borrower will make all scheduled payments. See Section
1026.32(b)(1)(i)(A). As an example, the SCEX returns the loan’s Interest Charge
under <outLOANTYPE>
→<Moneys>
→<Interest>
.
Attributes: None
🟥 <Lien>
Element Type | Data Type |
---|---|
Empty | - |
This element itself contains no data. Instead, all of the information used to determine the type of lien is contained in the following attribute of the element:
🔹 Dwelling
Data Type | Values | Default |
---|---|---|
Enum | personal_property, other | personal_property |
If this is a first Lien, then if the dwelling type is personal property and the loan amount is less than fifty thousand, then the rate spread is 8.5%. For all other first lien loans, the rate spread is 6.5%.
🔹 Rate
Data Type | Values | Default |
---|---|---|
Enum | fixed, variable | fixed |
The APOR is looked up in one of two tables, determined by the loan’s rate type.
If the loan uses a fixed rate, then the SCEX will look-up the APOR from the
YieldTableFixed.txt
file. If the loan uses a variable or adjustable rate, then
the SCEX will look-up the APOR from the YieldTableAdjustable.txt
file.
🔹 Type
Data Type | Values | Default |
---|---|---|
Enum | first , subordinate | first |
The type of lien plays a part in determining the amount over the APOR (called the rate spread) at which time a loan’s APR is considered a HCM. For first-lien loans, that value is 6.5% or 8.5% (depending upon the loan amount and dwelling type); for subordinate-lien loans, that value is 8.5%.
🟥 <LoanAmount>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | > 0 |
The Loan Amount is the face amount of the note (i.e., the principal balance).
Attributes: None
🟦 <LoanOriginatorFees>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
The value of this element represents all compensation paid directly or indirectly by a consumer or creditor to a loan originator. See Section 1026.32(b)(1)(ii).
Attributes: None
🟥 <LockInDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= 1900-01-01 |
This element contains the date on which the interest rate of the loan was locked
in. All dates must be in the form of YYYY-MM-DD, and be 10 characters long.
Hence, a lock in date of December 29, 2009 would be specified as
<LockInDate>2009-12-29</LockInDate>
.
The lock in date is used to lookup the APOR rate from the appropriate file. Each row of the file begins with a date, and the row which will be used will have a date which is either on the lock in date, or does not precede it by more than 6 days. Since the rates are updated weekly, there should never be more than six days between the date of the row used and the specified lock in date.
If the SCEX can not find a row in the APOR file which is appropriate for use with the specified lock in date, then an error message will be returned informing the calling application.
Attributes: None
🟦 <PMI>
Element Type | Data Type |
---|---|
Empty | - |
This element itself contains no data. Instead, all of the information used to specify PMI information is contained in the following attribute of the element:
Attributes:
🔹After
,🔹AtOrBefore
,🔹MaxAllowedAtOrBefore
🔹 After
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
This attribute specifies the private mortgage insurance premiums payable after consummation. See Section 1026.32(b)(1)(i)(C)(1).
🔹 AtOrBefore
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
The value of this attribute represents private mortgage insurance premiums paid at or before consummation. See Section 1026.32(b)(1)(i)(C)(2).
🔹 MaxAllowedAtOrBefore
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
The maximum private mortgage insurance premium paid at or before consummation allowable under section 203(c)(2)(A) of the National Housing Act. See Section 1026.32(b)(1)(i)(C)(2).
🟦 <PrepaymentPenalty>
Element Type | Data Type |
---|---|
Empty | - |
This element itself contains no data. Instead, all of the information used to specify any prepayment penalty information is contained in the following attribute of the element:
Attributes:
🔹After36Months
,🔹AmountPrepaid
,🔹FinanceAmt
,🔹Max
,🔹Total
🔹 After36Months
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
If, under the terms of the loan contract, the creditor can charge a prepayment penalty more than 36 months after consummation, then the calling application should set the value of this attribute to true.
Setting this value to true will trigger the prepayment penalty test, and his classify the specified loan as a HCM.
🔹 AmountPrepaid
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If the maximum prepayment penalty exceeds 2% of this attribute’s value, then the prepayment penalty test will be triggered.
🔹 FinanceAmt
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
The value of this attribute specifies the amount of the total prepayment penalty which was financed by the creditor.
🔹 Max
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
The maximum prepayment penalty that may be charged or collected under the terms of the mortgage loan. See Section 1026.32(b)(1)(v).
🔹 Total
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
The total prepayment penalty incurred by the consumer if the consumer refinances the existing mortgage loan with the current holder of the existing loan, a servicer acting on behalf of the current holder, or an affiliate of either. See Section 1026.32(b)(1)(vi).
🟦 <RealEstateFees>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | any | 0 |
Please see Section 1026.32(b)(1)(iii) for a discussion of the real estate fees and other charges which should be included here.
Attributes:
🔹FinanceAmt
🔹 FinanceAmt
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
The value of this attribute specifies the amount of the above specified real estate fees and other charges which were financed.
🟦 <Term>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Integer | >= 0 | 0 |
The <Term>
element holds the number of payments in the initial fixed rate
period of the loan. If the loan uses a fixed rate, then this is equal to the
total number of payments in the loan term.
Note that the calling application must specify either the <Term>
or
<TermInYears>
element.
Attributes:
🔹PPY
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | 1 , 2 , 4 , 6 , 12 , 24 , 26 , 52 , annual , semiannual , quarterly , bimonthly , monthly , semimonthly , biweekly , weekly | 12 |
PPY is an abbreviation for ‘payments per year’, and specifies the payment frequency for the initial fixed rate period of the given loan. The default value of monthly will result in a loan with an initial fixed rate period of 12 payments per year. If the loan in question uses a payment frequency other than monthly, specify it using this attribute.
🟦 <TermInYears>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Integer | [1..50] | 0 |
The <TermInYears>
element holds the term of the initial fixed rate period of the
loan, in whole years. Valid terms range from 1 year to 50 years, inclusive.
Note that the calling application must specify either the <Term>
or
<TermInYears>
element.
Attributes: None
🟦 <ThirdPartyCharges>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
This element holds the sum of all bona fide third-party charges included in the Finance Charge, as defined in Section 1026.32(b)(1)(i)(D).
Attributes: None