Interest Only Loan Module - Request

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

🟥 Data

TypeRequired
Objectyes

The Data object encapsulates the request data for a given module, and must always be provided.

Fields: 🔹Country, 🔸IntRate, 🔹IntStartDate, 🔸LoanDate, 🔸PmtDate, 🔹PPY, 🔸Proceeds, 🔸Term, 🔹TotalDown

Objects: 🟦 Apr, 🟦 Construction, 🟦 Fees[], 🟦 Format, 🟦 MI, 🟦 ODI, 🟦 Protection, 🟦 Settings

The fields of the Data object supported by an Equal Pmt module request are defined in alphabetical order below:

🔹 Data.Country

TypeRequiredValuesDefault
StringnoAlpha-2 or Numeric-3 codeUS

This field allows the calling application to specify a two (2) character or three (3) digit country code. If none is provided, then a default value of US will be used. Please see the Countries Appendix for the list of supported countries and their associated codes.

Specifying the Country will also set the default value for the APR.Method and Format.CurrencyDecimals fields, as appropriate for the country specified.

🔸 Data.IntRate

TypeRequiredValues
StringyesNumber in [-99.999...600]

Determine the interest rate used for the loan. The interest rate should be expressed as a percentage. For example, a loan computed with a rate of 5.125% would be specified as "IntRate" : "5.125".

🔹 Data.IntStartDate

TypeRequiredValuesDefault
StringnoYYYY-MM-DDsame value as LoanDate

This field contains the date on which interest begins to accrue on the loan's principal balance. If this field is not specified, then the interest start date is set equal the loan date. Also note that the interest start date must be equal to the loan date when computing a construction loan.

The interest start date (when specified) must be on or after the loan date, as well as on or before the first payment date.

🔸 Data.LoanDate

TypeRequiredValues
StringyesYYYY-MM-DD

This field holds the date on which the loan amount is disbursed and interest begins to accrue. All dates must be in the form of YYYY-MM-DD, and be 10 characters long.

🔸 Data.PmtDate

TypeRequiredValues
StringyesYYYY-MM-DD

This field specifies the first (and for single payment notes, only) payment date in the loan's repayment schedule. All dates must be in the form of YYYY-MM-DD, and be 10 characters long.

🔹 Data.PPY

TypeRequiredValuesDefault
Stringno1, 2, 4, 6, 12, 24, 26, 5212

PPY is an abbreviation for payments per year, and determines the payment frequency for the requested loan. The default value of 12 will result in a loan with 12 payments per year. If you require a loan with a payment frequency other than monthly, specify it using this field.

🔸 Data.Proceeds

TypeRequiredValuesDefault
StringyesCurrency > 0n/a

The proceeds specified indicate the amount of money the borrower is requesting, and does not include financed fees, financed insurances, etc.

🔹 Data.TotalDown

TypeRequiredValues
StringnoCurrency > 0

This optional field represents the total down payment that the borrower has applied to reduce the requested proceeds. It may consist of a cash down payment, net trade-in value, or rebate. You only need to specify a total down payment if the loan needs to disclose a total sale price. Typical examples of these loan types are auto and boat loans.

🔸 Data.Term

TypeRequiredValues
StringyesInteger > 1

The Term field indicates the the number of payments to be made at the specified payment frequency (see the PPY field above), after which the loan is scheduled to be paid off.


🟦 Data.Apr

TypeRequired
Objectno

Settings related to the computed effective rate returned by the SCE (most commonly, the Regulation Z APR in the United States of America) are contained in the fields of this object.

Fields: 🔹MAPR_Max, 🔹Method, 🔹UseMAPR

Objects: None

🔹 Data.Apr.MAPR_Max

TypeRequiredValuesDefault
StringnoNumber in [-99.999...600]36.0

If you are computing the Military APR (see UseMAPR below) and wish to override the default maximum APR value of 36%, then specify the desired maximum as the value of this field.

🔹 Data.Apr.Method

TypeRequiredValuesDefault
Stringnodefault, actuarial, eu, ca, xirr, xirr360, irrdefault

This field allows the calling application to specify an APR calculation method which will override the default value found in the setup file for the given Account. If this field is set to a valid value, then the specified method will be used to compute the APR for this loan calculation.

If the Country field has been set by the calling application and this field is not set, then the APR method used will be determined by the specified country. For the United States of America, the default APR method is actuarial. For a country in the European Union, the default value is eu (European Union APR). For Canada, the default APR method is ca (Canadian APR).

The xirr value implements the internal rate of return method as implemented in Microsoft\textregistered Excel via the XIRR() function, and is based on an actual day calendar with a 365 day divisor.

The xirr360 value implements the internal rate of return method based upon a unit period calendar with a 360 day divisor.

The irr value implements a common spreadsheet internal rate of return method which assumes strict regular periods. Deviating from a strict regular periodicity may produce unreliable results.

If this field is not specified and the Country field is not specified, then the value of default will be used which informs the SCE to use the APR method defined in the setup file for the specified Account.

🔹 Data.Apr.UseMAPR

TypeRequiredValuesDefault
Booleannotrue, falsefalse

If this field is set to a value of true, then the SCE will compute the Military APR in addition to the Regulation Z APR. The MAPR object will be included in the loan response.


🟦 Data.Construction

TypeRequired
Objectno

The Construction object determines if this loan is a construction to permanent loan request. If you wish to compute a construction loan without an attached permanent loan, you will need to use either the Construction or Loan modules.

Fields: 🔹HalfCommitment, 🔹PPY, 🔸Rate, 🔸Term

Objects: None

🔹 Data.Construction.HalfCommitment

TypeRequiredValuesDefault
Booleannotrue, falsefalse

During the term of the construction loan, the estimated interest for disclosure purposes may be either computed on the full or half commitment amounts. By setting this field to true, interest will be estimated using half of the initial commitment amount (i.e. the principal balance). The default value of false will cause interest to be estimated using the entire initial commitment amount.

🔹 Data.Construction.PPY

TypeRequiredValuesDefault
Stringno1, 2, 4, 6, 12, 24, 26, 5212

The PPY field allows the calling application to specify the payment frequency during the construction period. The default value of 12 will result in a construction loan with 12 payments per year. If you require a payment frequency during the construction period other than monthly, then specify it using this field. Note that the permanent loan's payment frequency may differ from the construction period's payment frequency.

🔸 Data.Construction.Rate

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

This field determines the rate applied to the appropriate commitment amount during the term of the construction loan.

🔸 Data.Construction.Term

TypeRequiredValuesDefault
StringyesInteger > 0n/a

The term of the construction loan (in payments) is specified using this field. Please note that the term may not exceed five years.


🟦 Data.Fees[]

TypeRequired
Array of Fee Objectsno

This array of Fee objects allows the calling application to specify one ore more Fee objects to be included with the loan.

Fields: 🔹AddToFinChg, 🔹AddToPrin, 🔹Adjust, 🔹CalcType, 🔹Entry, 🔹IsLoanCost, 🔹MAPR, 🔹Max, 🔹Min, 🔹Name

Objects: None

🔹 Data.Fees[].AddToFinChg

TypeRequiredValuesDefault
Booleannotrue, falsefalse

If this fee should be included in the computed Finance Charge (and hence, affect the APR), then set this field to true. The default value of false indicates that the fee does not affect the Finance Charge nor APR.

🔹 Data.Fees[].AddToPrin

TypeRequiredValuesDefault
Booleannotrue, falsetrue

If this fee should be added to the principal balance (e.g. the fee is financed along with the advance(s)), then set this field to true. If set to false, then the fee is paid up front out of the borrower's pocket.

🔹 Data.Fees[].Adjust

TypeRequiredValuesDefault
StringnoCurrency0

The optional Adjust field allows the calling application to increase or decrease the base amount on which a fee is calculated. If a negative value is specified and this adjustment would produce a negative base amount, then a value of zero is returned for the given fee. This field has no effect on fees with a CalcType of Dollar.

As an example, in Tennessee you may need to define a financed, non-APR affecting fee to be computed by decreasing the amount financed by $2,000, and then multiplying this reduced amount by 0.115. The way to accomplish this in the SCE is as follows:

{
  "Fees" : [
    {
      "Name" : "TN Fee",
      "CalcType" : "OnAmtFin",
      "Adjust" : "-2000.00",
      "Entry" : "0.115",
      "AddToPrin" : true,
      "AddToFinChg" : false
    }
  ]
}

🔹 Data.Fees[].CalcType

TypeRequiredValuesDefault
StringnoDollar, OnProceeds, OnPrincipal, OnAmtFinDollar

This field specifies how the fee is to be computed, as described in the following table.

Fee Calc TypeDescription
DollarThe Entry field is understood as a flat dollar amount.
OnProceedsThe Entry field is understood as a percentage value, to be applied to the loan's proceeds, defined as the sum of advances. An Entry of 0.25 would represent a fee of 0.25% of the total proceeds.
OnPrincipalThe Entry field is understood as a percentage value, to be applied to the loan's principal balance. An Entry of 0.125 would represent a fee of 0.125% of the principal balance.
OnAmtFinThe Entry field is understood as a percentage value, to be applied to the loan's Regulation Z Amount Financed. An Entry of 0.33 would represent a fee of 0.33% of the amount financed.

🔹 Data.Fees[].Entry

TypeRequiredValuesDefault
StringnoNumber >= 00

How this field is interpreted depends upon the Fee.CalcType field. Please see the documentation for this field for further information.

🔹 Data.Fees[].IsLoanCost

TypeRequiredValuesDefault
Booleannotrue, falsefalse

When requesting TILA RESPA outputs (via the Settings.TILARESPA2015 field), the SCE needs to know which fees need to be considered "borrower paid loan costs", as defined in the rule. Please note that if the fee is paid by a lender or other third party, then the fee does not affect the loan calculation and should not be sent to the SCE. If it is sent, then the value of this field should be set to false.

🔹 Data.Fees[].MAPR

TypeRequiredValuesDefault
Booleannotrue, falsefalse

If you wish to compute the Military APR, then certain fees may not be considered Regulation Z APR affecting fees, but are considered Military APR affecting fees. In this case, you will need to set the value of this field to true.

Fees which are added to the finance charge (e.g. "AddToFinChg" : true) are always considered MAPR fees, regardless of the stated value of this field.

Note that debt protection products are automatically included in the calculation of the Military APR, no matter what method is used for payment (e.g. single premium vs. monthly outstanding balance).

🔹 Data.Fees[].Max

TypeRequiredValuesDefault
StringnoCurrency > 00

If a maximum value for the fee is specified and is greater than zero, then if the computed fee exceeds this maximum value, then the maximum value will be used instead. If no maximum value is specified or is set to a value of zero, then no maximum will be enforced. Please note that this field is applied to all fee types supported. Also, note that a specified maximum value is checked after enforcing a specified minimum value, and hence a specified maximum value trumps a specified minimum.

🔹 Data.Fees[].Min

TypeRequiredValuesDefault
StringnoCurrency > 00

If a minimum value for the fee is specified and is greater than zero, then if the computed fee is less than this minimum value, then the minimum value will be used instead. If no minimum value is specified or is set to a value of zero, then no minimum will be enforced. Please note that this field is applied to all fee types supported. Also, note that a specified minimum value is checked before enforcing a specified maximum value, and hence a specified maximum value trumps a specified minimum.

🔹 Data.Fees[].Name

TypeRequiredValuesDefault
StringnoTextempty

This field is for convenience purposes only, and does not affect the calculation of the fee in any manner. However, the value of this field will be used to identify the fee in the response, and hence it is highly recommended that you name your fees accordingly.


🟦 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. If this field is not included, the default value will be determined by the value of the Country field. For most countries, the default value is 2. If no country code is specified, then the default value for this field is 2.

🔹 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.


🟦 Data.MI

TypeRequired
Objectno

The MI object determines if this loan includes one of the supported types of mortgage insurance (MI): PMI or FHA. This object contains fields which further specify mortgage insurance options.

Fields: 🔹CashDown 🔹LoanAmt, 🔸PropertyValue, 🔹Type

Objects: 🟦 Periodic, 🟥 Rates[], 🟦 UpFront

🔹 Data.MI.CashDown

TypeRequiredValuesDefault
StringnoCurrency >= 00

The CashDown field represents a cash down payment made at closing. If specified and greater than zero, this amount will be deducted from the principal balance. If not specified, the cash down payment will default to zero.

🔹 Data.MI.LoanAmt

TypeRequiredValuesDefault
StringnoCurrency >= 00

This field represents the amount by which the PMI rates are multiplied to produce a level PMI premium. If not specified, then the principal balance will be used to compute the annual premium.

🔸 Data.MI.PropertyValue

TypeRequiredValues
StringyesCurrency >= 0

This field's value represents the appraised property value, and will be used in the calculation of the loan to value ratio.

🔹 Data.MI.Type

TypeRequiredValuesDefault
Stringnofha, pmipmi

This field determines the type of mortgage insurance to include with the loan. If the value of this field is set to fha, then a different MI premium is computed every twelve months based upon the average outstanding principal balance during that same term. The MI calculation adheres strictly to the HUD regulation.

If the value of this field is set to pmi, then each defined MI rate produces a level MI premium based upon the inital loan amount.


🟦 Data.MI.Periodic

TypeRequired
Objectno

The fields of this object determine the conditions when MI is no longer included.

Fields: 🔹DropLTV, 🔹Term, 🔹WarnLTV

Objects: None

🔹 Data.MI.Periodic.DropLTV

TypeRequiredValuesDefault
StringnoNumber >= 00

The value of this field determines the loan to value ratio at which MI should be removed, and is expressed as a percentage. For example, if you wish to automatically drop MI when the loan to value ratio first equals or falls below 78%, then you would specify "DropLTV" : "78.0".

🔹 Data.MI.Periodic.Term

TypeRequiredValuesDefault
StringnoInteger >= 00

The value of this field represents the the term (in payments) beyond which MI will be removed.

As an example, if mortgage insurance must be removed after the 180th payment, then the calling application should specify

{
  "MI" : {
    "Periodic" : { "Term" : "180"}
 }
}

🔹 Data.MI.Periodic.WarnLTV

TypeRequiredValuesDefault
StringnoNumber >= 00

The value of this field determines the loan to value ratio at which a warning should be issued, and is expressed as a percentage of LTV (loan to value). For example,if you wish to know when the loan to value ratio first equals or falls below 80%, then you would specify "WarnLTV" : "80.0".


🟥 Data.MI.Rates[]

TypeRequired
Array of Rate Objectsyes

This array if Rate objects defines the rates used to compute MI on the loan. There must be at least one Rate object in the Rates[] array, and there can be more than one if rates are set to switch at a specified payment number.

Fields: 🔸Rate, 🔹Switch

Objects: None

🔸 Data.MI.Rates[].Rate

TypeRequiredValues
StringyesNumber>= 0.0

The value of this field specifies the cost of mortgage insurance per $100 of the loan amount. As an example, a loan computed with a MI rate of $1.50 per $100 would be specified as

{
  "MI" : {
    "Rates" : [
      { "Rate" : "1.50"}
    ]
 }
}

🔹 Data.MI.Rates[].Switch

TypeRequiredValuesDefault
StringnoInteger >= 00

This optional field defines the payment number beyond which the associated MI rate will apply. If not specified, the value will default to zero.

Thus, if there is only a single MI rate, one may omit this field (see example above).

Example of a MI multiple rate structure (use a rate of $1.50 for the first 10 years, with a rate of $0.20 for coverage beyond 10 years):

{
  "MI" : {
    "Rates" : [
      { "Rate" : "1.50"},
      { "Rate" : "0.20" , "Switch" : "120"}
    ]
 }
}

🟦 Data.MI.UpFront

TypeRequired
Objectno

This object determines if there is an up front fee for mortgage insurance, and if so, how it is computer. If this object is not present in the request, then no up front fee will be computed. Note that ZOMP (zero option monthly premium) products do not have an up front fee, which means that this object should be omitted.

Fields: 🔹Paid, 🔹Reduce, 🔹Units, 🔹Value

Objects: None

🔹 Data.MI.UpFront.Paid

TypeRequiredValuesDefault
Stringnoatclosing, bylender, financedatclosing

If the value of this field is set to financed, then the computed up front fee will be added to the principal balance and the finance charge. A value of atclosing will cause the value of the fee to be added to the finance charge alone. Finally, a value of bylender means that the up front fee is to be paid by the lender, hence the value of the fee is not added to either the principal balance nor the finance charge.

🔹 Data.MI.UpFront.Reduce

TypeRequiredValuesDefault
Booleannotrue, falsetrue

If the specified number of periodic premiums to include as an up front fee is greater than zero, then this field determines if the term of coverage for PMI will be reduced by the same amount.

🔹 Data.MI.UpFront.Units

TypeRequiredValuesDefault
Stringnomonths, points, yearsmonths

If the Units field is set to months, then UpFront.Value represents the number of periodic MI premiums to be paid at closing.

If the Units field is set to Years, then UpFront.Value represents the number of annual MI premiums to be paid at closing. Many single premium products define the up front fee as a number of years of MI to be paid up front.

Finally, if the Units field is set to Points, then UpFront.Value represents the percentage of principal to be paid up front. As of October 3, 2011, FHA loans use points.

🔹 Data.MI.UpFront.Value

TypeRequiredValuesDefault
StringnoCurrency >= 00

If part of the MI fees are to be paid up front, then value of this field must be grater than zero. How the value of this field is interpreted depends upon the Units field (see below).

The default value of zero means that no up front fee will be computed.


🟦 Data.ODI

TypeRequired
Objectno

If odd days should be treated as a prepaid finance charge or added to the first payment in a manner different from how interest is accruing, then the request needs to define how odd days interest is computed and handled using the fields of this object.

Fields: 🔹AccrualCode, 🔹AddToPmt, 🔹AddToPrin, 🔹AnchorDate, 🔹ForceUnitPeriod, 🔹NoCap, 🔹UseDailyCost, 🔹UseNegODI

Objects: None

🔹 Data.ODI.AccrualCode

TypeRequiredValuesDefault
Stringno204, 205, 210, 211, 220, 221, 230, 231, 250default

The accrual code defines how the odd days interest is computed. The meaning of the allowed accrual codes is defined below.

Note that accrual code 250 ("Variable Days Per Year") defines the basis divisor days to be equal to 12 multiplied by the number of days in the month of the date on which interest begins to accrue. Thus, if the interest start date falls in November, then the number of basis days is 360. If the interest start date falls in a month with 31 days, then the number of basis days is 372. For an interest start date in February, the number of basis days will either be 336 or 348, depending upon whether or not it is a leap year.

Accrual CodeDescription
204True360/360
205True360/365
210Actual/360
211True365/360
220Actual/365
221True365/365
230Actual/Actual
231Midnight 366
250Actual/Variable Days Per Year

🔹 Data.ODI.AddToPmt

TypeRequiredValuesDefault
Booleannotrue, falsefalse

If the calling application wants the odd days interest to be added to the first payment, then set the value of this field to true. A value of false indicates that the odd days interest will be treated as a prepaid finance charge.

🔹 Data.ODI.AddToPrin

TypeRequiredValuesDefault
Booleannotrue, falsefalse

If any odd days interest should be treated as a financed prepaid fee, then set the value of this field to true. Note that if both AddToPmt and AddToPrin are set to true, then a warning message will be returned by the SCE and the value of AddToPrin will be set to false.

🔹 Data.ODI.AnchorDate

TypeRequiredValuesDefault
StringnoBackUnitPeriod, BackDaysPerPeriodBackUnitPeriod

The computed number of odd days is the number of days between the loan date and the anchor date. This field determines how to arrive at the anchor date. A value of BackUnitPeriod means that the anchor date is one unit period prior to the specified first payment date. A value of BackDaysPerPeriod means that the anchor date is the number of days per period prior to the first payment date. Please note that for both of these methods, the period used will be that associated with the payment stream in which the first payment occurs.

🔹 Data.ODI.ForceUnitPeriod

TypeRequiredValuesDefault
Booleannotrue, falsetrue

Some unit period methods will not use a strict unit period interest accrual factor in the period to the first payment. For example, code 302 will count the days to the first payment and divide by 365. For a monthly loan, setting this field to true will use a 1/12 factor instead of Days/365.

🔹 Data.ODI.NoCap

TypeRequiredValuesDefault
Booleannotrue, falsefalse

When the odd days interest is financed, setting this field to true prevents interest from being computed on interest. The default is false, which means interest will be computed on interest.

🔹 Data.ODI.UseDailyCost

TypeRequiredValuesDefault
Booleannotrue, falsefalse

If the total odd days prepaid fee is computed by first generating a rounded (to the nearest penny) daily cost and then multiplying this value by the computed number of odd days, then set the value of this property to true.

A value of false means that the daily cost is left unrounded, and the total prepaid fee is rounded after the computation is complete.

🔹 Data.ODI.UseNegODI

TypeRequiredValuesDefault
Booleannotrue, falsefalse

If there are negative odd days in the loan, then the value of this field determines if a negative odd days interest fee is computed. If the value of this field is false, then negative odd days fees are not allowed, the SCE will return a value of zero in this situation, and the computed payment will be adjusted to take into account the negative odd days. A value of true will return a negative odd days interest fee (in effect, it then becomes and odd days interest credit) when there are negative odd days in a loan.


🟦 Data.Protection

TypeRequired
Objectno

The Protection object is used by the calling application to request one or more payment protection products (e.g. life, disability, involuntary unemployment, or personal property) be included in the loan calculation. Each of these products is requested by including its own child object, along with the borrower birthdays.

Fields: 🔹Birthday1, 🔹Birthday2, 🔹LineOfCredit, 🔹Mandatory, 🔹ShowBorrowerInfo, 🔹ShowCaps

Objects: 🟦 Disability, 🟦 Life, 🟦 Unemployment

🔹 Data.Protection.Birthday1

TypeRequiredValuesDefault
StringnoYYYY-MM-DDn/a

This field holds the date of birth for the secondary borrower. All dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a birthday of April 9, 1972 would be specified as "Birthday2" : "1972-04-09". Note that this element must be set if the Covers field of any of the four payment protection objects is set to borrower2 or both.

🔹 Data.Protection.Birthday2

TypeRequiredValuesDefault
StringnoYYYY-MM-DDn/a

This field holds the date of birth for the primary borrower. All dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a birthday of April 9, 1972 would be specified as "Birthday1" : "1972-04-09". Note that this element must be set if the Covers field of any of the four payment protection objects is set to borrower1 or both.

🔹 Data.Protection.Financed

TypeRequiredValuesDefault
Booleannotrue, falsetrue

If the computed premiums for single premium debt protection products should be financed along with the proceeds, then this field should be set to true (which is the default value if not specified). A value of false indicates that the computed premiums will not be financed with the proceeds, and hence will be paid out of pocket by the borrower. Note that this applies to single premium insurance products only!

🔹 Data.Protection.LineOfCredit

TypeRequiredValuesDefault
Booleannotrue, falsefalse

If this is an account using TruStage's MOB insurance, and if this loan is a line of credit where product term caps should be ignored, then set this field to true. Otherwise, omit this field or set it to false.

🔹 Data.Protection.Mandatory

TypeRequiredValuesDefault
Booleannotrue, falsefalse

If the value of this field is set to true, then any computed payment protection premium or fee will be considered a mandatory fee which will be included as a part of the Finance Charge, and hence affect the disclosed APR.

If the Mandatory field is set to false, then the loan will treat any premiums / fees as normal.

🔹 Data.Protection.ShowBorrowerInfo

TypeRequiredValuesDefault
Booleannotrue, falsefalse

If the calling application would like to have data returned for each specified borrower instead of a single Term object, then set the value of this field to true. Otherwise, omit this field or set it to false. See the Borrower and Term objects defined in the response section for more information.

🔹 Data.Protection.ShowCaps

TypeRequiredValuesDefault
Booleannotrue, falsefalse

If the calling application would like to have cap information (e.g. maximum terms, coverage amounts, ages, etc.) returned for each product offered, set the value of this field to true. Otherwise, omit this field or set it to false. See the Caps object defined in the response section for more information.


🟦 Data.Protection.Disability

TypeRequired
Objectno

The Disability object determines what type of disability coverage is requested for the loan.

Fields: 🔹Benefit, 🔹Covers, 🔹CovTerm, 🔹Table

Objects: None

🔹 Data.Protection.Disability.Benefit

TypeRequiredValuesDefault
StringnoCurrency >= 00

If you wish to specify a benefit amount less than the maximum allowed, then do so with this field. Omitting this field will ensure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user-specified benefit amounts for the product in question, then this field will be ignored.

🔹 Data.Protection.Disability.Covers

TypeRequiredValuesDefault
Stringnonone, borrower1, both, borrower2borrower1

The value of this field determines what type of coverage is being requested on the loan. The values borrower1 and borrower2 represent single coverage on the appropriate borrower (whose birthdays are contained in appropriate Birthday objects described above). A request for joint coverage on both borrowers is indicated by a value of both. Finally, if no coverage is desired, simple omit the Disability object altogether or specify a value of none.

🔹 Data.Protection.Disability.CovTerm

TypeRequiredValuesDefault
StringnoInteger >= 00

If you need to specify a coverage term (in months or payments) less than the maximum allowed, then do so using this field. If this field is omitted, then the loan will be covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user specified coverage terms for this product, then this field will be ignored.

🔹 Data.Protection.Disability.Table

TypeRequiredValuesDefault
StringnoInteger in [0...19]0

If the specified account has been set up with multiple disability or debt cancellation plans, then this field determines which plan number will be used. If no table number is specified, the first table (table zero) will be used.


🟦 Data.Protection.Life

TypeRequired
Objectno

The Life object determines what type of life coverage is requested for the loan.

Fields: 🔹CovAmount, 🔹Covers, 🔹CovTerm, 🔹Dismemberment, 🔹Method, 🔹UseLevelRates

Objects: None

🔹 Data.Protection.Life.CovAmount

TypeRequiredValuesDefault
StringnoCurrency >= 00

If you wish to specify a coverage amount less than the maximum allowed, then do so with this field. Omitting this field will ensure that the maximum coverage amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified coverage amounts for the product in question, then this field will be ignored.

🔹 Data.Protection.Life.Covers

TypeRequiredValuesDefault
Stringnonone, borrower1, both, borrower2borrower1

The value of this field determines what type of coverage is being requested on the loan. The values borrower1 and borrower2 represent single coverage on the appropriate borrower (whose birthdays are contained in appropriate Birthday objects described above). A request for joint coverage on both borrowers is indicated by a value of both. Finally, if no coverage is desired, simple omit the Life object altogether or specify a value of none.

🔹 Data.Protection.Life.CovTerm

TypeRequiredValuesDefault
StringnoInteger >= 00

If you need to specify a coverage term (in months or payments) less than the maximum allowed, then do so using this field. If this field is omitted, then the loan will be covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user specified coverage terms for this product, then this field will be ignored.

🔹 Data.Protection.Life.Dismemberment

TypeRequiredValuesDefault
Booleannotrue, falsefalse

If the account specified has been set up to offer life protection products with optional dismemberment coverage, and if the optional dismemberment coverage is desired, then set this field's value to true. Otherwise, use the default value of false.

🔹 Data.Protection.Life.Method

TypeRequiredValuesDefault
StringnoDefault, Gross, NetDefault

Some accounts are configured to offer different types of credit life products (usually gross and net). In these accounts, this field allows the calling application to specify which method to use for a given loan. If no method is present in the request, then the default method will be used.

🔹 Data.Protection.Life.UseLevelRates

TypeRequiredValuesDefault
Booleannotrue, falsefalse

If the account specified has been set up to offer single premium credit life using level rates instead of the normal decreasing rates, and if you wish to use level rates instead of decreasing, then set this field's value to true. Otherwise, use the default value of false.


🟦 Data.Protection.Unemployment

TypeRequired
Objectno

The Unemployment object determines what type of unemployment coverage is requested for the loan.

Fields: 🔹Benefit, 🔹Covers, 🔹CovTerm

Objects: None

🔹 Data.Protection.Unemployment.Benefit

TypeRequiredValuesDefault
StringnoCurrency >= 00

If you wish to specify a benefit amount less than the maximum allowed, then do so with this field. Omitting this field will ensure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user-specified benefit amounts for the product in question, then this field will be ignored.

🔹 Data.Protection.Unemployment.Covers

TypeRequiredValuesDefault
Stringnonone, borrower1, both, borrower2borrower1

The value of this field determines what type of coverage is being requested on the loan. The values borrower1 and borrower2 represent single coverage on the appropriate borrower (whose birthdays are contained in appropriate Birthday objects described above). A request for joint coverage on both borrowers is indicated by a value of both. Finally, if no coverage is desired, simple omit the Unemployment object altogether or specify a value of none.

🔹 Data.Protection.Unemployment.CovTerm

TypeRequiredValuesDefault
StringnoInteger >= 00

If you need to specify a coverage term (in months or payments) less than the maximum allowed, then do so using this field. If this field is omitted, then the loan will be covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user specified coverage terms for this product, then this field will be ignored.


🟦 Data.Settings

TypeRequired
Objectno

The Settings object allows the calling application to alter the default loan calculation options.

Fields: 🔹Account, 🔹AccrualCode, 🔹ConMethod, 🔹DataPath, 🔹Lastday, 🔹PmtDollarRound, 🔹PmtRound, 🔹ShowAmTable, 🔹TILARESPA2015, 🔹YieldPPY

Objects: None

🔹 Data.Settings.Account

TypeRequiredValuesDefault
StringnoInteger in [1..9999]1

The Account field specifies the numeric setup file account number that will be used to compute the requested loan. Each account is numbered from 1 to 9,999, and each account corresponds to a set of setup file which define numerous settings which may affect the loan calculation, such as the accrual method, insurance methods / rates / caps, etc.

🔹 Data.Settings.AccrualCode

TypeRequiredValuesDefault
Stringnosee tabledefault

The method of interest accrual is defined by this field. A value of default informs the SCE to use the interest accrual method defined in the setup file for the specified Account. All other valid accrual codes are described in the table below.

🔹 Data.Settings.ConMethod

TypeRequiredValuesDefault
Stringnodefault, simple, interestonlydefault

When computing a construction loan, there are two supported methods for computing interest during the constrcution period:

If the value of this field is simple, then the estimated construction interets will be computed and disclosed as a lup-sum prepaid fee (see the Moneys.ConstructInterest response field).

If the value of this field is interestonly, then the construction and permanent loans are combined into a single loan, with the construction (and permanent) loan's interest being reflected in the Moneys.Interest field, and both loans reflected in a single, combined amortization schedule.

A value of default instructs the SCE to use the construction method specified in the setup file for the given account.

🔹 Data.Settings.DataPath

TypeRequiredValuesDefault
StringnoTextdefault data path

If this field is set, the SCE will look for a /data folder containing the setup files in the path specified. Thus, if the DataPath is set to /etc/sce, the SCE will look for the setup files in /etc/sce/data.

If the calling application wishes to specify the data directory path in its entirety (e.g. the calling app does not want the SCE to append /data to the provided path), then simply terminate the specified DataPath with an asterisk (*). Thus, if the DataPath is set to /etc/sce/bank1/*, the SCE will look for the setup files in /etc/sce/bank1/.

If this field is not set, the SCE will attempt to located the /data folder in the default data directory path location, which can be retrieved using the Version module.

This field is useful if you wish to use only a single installation of the SCE, but have many different setup file groupings. By specifying a different DataPath for each grouping, you can easily separate the groups from one another instead of grouping them all together in a single directory.

🔹 Data.Settings.Lastday

TypeRequiredValuesDefault
Booleannotrue, falseas configured in setup file

If present, this field overrides the Last Day setting in the setup files, which only applies to loans computed with an actual day accrual calendar where the first payment date falls at the end of a month with fewer than 31 days. As an example, if the first payment date is on April 30, should the following payment dates be made on the 30th of each month, or on the last day of the month?

If no value is specified for this field, then the setup file setting will be used. If true is specified, then conditions triggering a last day situation will result in payments which fall at the end of the month. A value of false indicates that when dictated, subsequent payment dates will not be moved to the last day of the month.

🔹 Data.Settings.OddFinal

TypeRequiredValuesDefault
Booleannotrue, falsefalse

Following the last payment of an amortization schedule, the ending balance is unlikely to be zero due to the rounding of the payment. In order to assure perfect amortization, lenders will use an odd final payment to perfectly amortize the loan.

Set OddFinal to true to ensure perfect amortization with a payment that pays off the loan.

🔹 Data.Settings.PmtDollarRound

TypeRequiredValuesDefault
Booleannotrue, falsefalse

Payments are normally rounded to the penny, according to the method specified by in the setup file, or vy theSettings.PmtRound field. If the payment should be rounded to the dollar instead of the penny, then set the value of this field to true.

Note that for some loans (such as those with longer terms or relatively small proceeds), rounding the payment up or to the nearest dollar may require a shortened loan term to prevent one or more negative payments at the end of the loan.

🔹 Data.Settings.PmtRound

TypeRequiredValuesDefault
Stringnodefault, nearest, up, down, bestdefault

How are calculated payments to be rounded at and beyond this event? best means to choose the payment that returns a minimal ending balance at the end of amortization. If two payments result in the same minimal error magnitude, the smaller payment is chosen. default means that the setting should be configured as specified in the setup file.

🔹 Data.Settings.ShowAmTable

TypeRequiredValuesDefault
Booleannotrue, falsetrue

To supress the entire amortization schedule from the response, set value of this field to false; otherwise, the amortization schedule will be returned with the response.

🔹 Data.Settings.TILARESPA2015

TypeRequiredValuesDefault
Booleannotrue, falsefalse

If the value of this field is true, then the SCE will include data for the Integrated Mortgage Disclosures under the Real Estate Settlement Procedures Act (Regulation X) and the Truth In Lending Act (Regulation Z) rule, which is required as of August 1st, 2015. If the field is omitted or set to false, then the TILA RESPA outputs will not be generated.

Note that this field is supported for equal payment loans, balloon payment loans, single payment notes, interest only loans, fixed principal plus interest loans, skips, pickups and irregulars, and ARMs.

🔹 Data.Settings.YieldPPY

TypeRequiredValuesDefault
Stringno0, 2, 4, 6, 120

Canadian mortgages may compute periodic interest using a fractional power of a periodic yield. If set to a value other than `0', this field determines the period. Please contact us for further information if you support mortgage calculations in Canada. Note that when using this field with a value other than zero, the calling application must include an odd days prepaid fee in the request.