Hpml Module - Request

The fields of the Data object supported by a Hpml module request are defined in alphabetical order below:

🟥 Data

TypeRequired
Objectyes

The fields of the Data object supported by a Hcm module request are defined in alphabetical order below:

Fields: 🔹DataPath, 🔸IsJumbo, 🔸LienType, 🔸LockInDate, 🔸RateType, 🔸RegZApr, 🔸TermInYears

Objects: 🟦 Format

🔹 Data.DataPath

TypeRequiredValuesDefault
StringnoText - See belowsee below

If this field is set, the SCE will look for a data folder containing the APOR files in the path specified. Note that the APOR files must be named as follows: YieldTableFixed.txt and YieldTableAdjustable.txt.

If this field is not set, the SCE will attempt to locate the file in the default data directory. Note that the AWS hosted version of the SCE API server places the necessary files in the correct default directory, and hence specifying this field is not required.

Since the APOR 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 Hcm module, and thus a single location containing the APOR files can be used for both modules.

🔸 Data.IsJumbo

TypeRequiredValuesDefault
Booleanyestrue, falsen/a

Effective June 1, 2013, first-lien loans that exceed the maximum principal obligation eligible for purchase by Freddie Mac (i.e., a "jumbo" loan) have a rate spread of 2.5% instead of the normal first-lien value of 1.5%.

Note that the value of this field will be ignored for subordinate-lien loans.

🔸 Data.LienType

TypeRequiredValuesDefault
StringyesFirst, Subordinaten/a

The type of lien determines the amount over the APOR at which time a loan's Regulation Z APR is considered a HPML. For first-lien loans, that value is 1.5% (or 2.5% for first-lien jumbo loans as of 6/01/2013); for subordinate-lien loans, that value is 3.5%.

🔸 Data.LockInDate

TypeRequiredValuesDefault
StringyesYYYY-MM-DDn/a

The value of this field holds 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.

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 preceed 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 SCE 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.

🔸 Data.RateType

TypeRequiredValuesDefault
StringyesAdjustable, Fixedn/a

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 SCE will look-up the APOR from the YieldTableFixed.txt file. If the loan uses a variable or adjustable rate, then the SCE will look-up the APOR from the YieldTableAdjustable.txt file.

🔸 Data.RegZApr

TypeRequiredValuesDefault
StringyesNumber in [-99.999...600]n/a

The value of this field holds the computed Regulation Z APR for the loan we are checking. The Regulation Z APR should be expressed as a percentage.

🔸 Data.TermInYears

TypeRequiredValuesDefault
StringyesIntegern/a

The TermInYears field holds the term of the loan, in whole years. Valid terms range from 1 year to 50 years, inclusive. If the loan's RateType is Adjustable, then the value of this element represents the initial, fixed rate term of the adjustable rate loan.


🟦 Data.Format

TypeRequired
Objectno

The Format object is one of the first objects parsed from a request, as various fields affect how date and numeric fields are parsed and validated.

Fields: 🔹CurrencyDecimals, 🔹DateFormat, 🔹DateSeparator, 🔹DecimalSeparator, 🔹StrictDP, 🔹ThousandSeparator

Objects: None

🔹 Data.Format.CurrencyDecimals

TypeRequiredValuesDefault
Stringno0 or 22

When displaying and parsing Currency fields, this field determines the maximum number of decimal places allowed after the DecimalSeparator.

🔹 Data.Format.DateFormat

TypeRequiredValuesDefault
StringnoYMD, MDY, or DMYYMD

When displaying and parsing Date fields, this field determines the expected format for all Date fields. The following DateFormat options are allowed:

  • YMD - All dates should be formated as YYYY-MM-DD.
  • MDY - All dates should be formated as MM-DD-YYYY.
  • DMY - All dates should be formated 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 field.

🔹 Data.Format.DateSeparator

TypeRequiredValuesDefault
Stringnoempty or a single character-

When displaying and parsing Date fields, this field determines the character used to separate the individual month, day, and year portions of a date field.

🔹 Data.Format.DecimalSeparator

TypeRequiredValuesDefault
Stringnoempty or a single character.

When displaying and parsing Currency, Percentage, or Floating numeric fields, this field determines the character used to separate the fractional part from the whole.

🔹 Data.Format.StrictDP

TypeRequiredValuesDefault
Booleannotrue, falsefalse

If the value of this field 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 field is set to 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.

🔹 Data.Format.ThousandSeparator

TypeRequiredValuesDefault
Stringnoempty or a single characterempty

When displaying numeric fields, this field determines the character used to separate the thousands places from the hundreds. When parsing a numeric request field, if a thousand separator is specified in the request, then the SCE will now remove all occurrences of the specified thousand separator from the numeric field string before attempting to convert it to a number.