Interest Only Loan Module - Request
The fields of the Data object supported by a InterestOnly module request are defined
in alphabetical order below:
🟥 Data
| Type | Required |
|---|---|
| Object | yes |
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,🔹TotalDownObjects:
🟦 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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Alpha-2 or Numeric-3 code | US |
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
| Type | Required | Values |
|---|---|---|
| String | yes | Number 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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | YYYY-MM-DD | same 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
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-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
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | 1, 2, 4, 6, 12, 24, 26, 52 | 12 |
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
| Type | Required | Values | Default |
|---|---|---|---|
| String | yes | Currency > 0 | n/a |
The proceeds specified indicate the amount of money the borrower is requesting, and does not include financed fees, financed insurances, etc.
🔹 Data.TotalDown
| Type | Required | Values |
|---|---|---|
| String | no | Currency > 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
| Type | Required | Values |
|---|---|---|
| String | yes | Integer > 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
| Type | Required |
|---|---|
| Object | no |
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,🔹UseMAPRObjects:
None
🔹 Data.Apr.MAPR_Max
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Number 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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | default, actuarial, eu, ca, xirr, xirr360, irr | default |
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
| Type | Required | Values | Default |
|---|---|---|---|
| Boolean | no | true, false | false |
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
| Type | Required |
|---|---|
| Object | no |
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,🔸TermObjects:
None
🔹 Data.Construction.HalfCommitment
| Type | Required | Values | Default |
|---|---|---|---|
| Boolean | no | true, false | false |
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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | 1, 2, 4, 6, 12, 24, 26, 52 | 12 |
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
| Type | Required | Values | Default |
|---|---|---|---|
| String | yes | Number 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
| Type | Required | Values | Default |
|---|---|---|---|
| String | yes | Integer > 0 | n/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[]
| Type | Required |
|---|---|
| Array of Fee Objects | no |
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,🔹NameObjects:
None
🔹 Data.Fees[].AddToFinChg
| Type | Required | Values | Default |
|---|---|---|---|
| Boolean | no | true, false | false |
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
| Type | Required | Values | Default |
|---|---|---|---|
| Boolean | no | true, false | true |
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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Currency | 0 |
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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Dollar, OnProceeds, OnPrincipal, OnAmtFin | Dollar |
This field specifies how the fee is to be computed, as described in the following table.
| Fee Calc Type | Description |
|---|---|
Dollar | The Entry field is understood as a flat dollar amount. |
OnProceeds | The 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. |
OnPrincipal | The 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. |
OnAmtFin | The 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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Number >= 0 | 0 |
How this field is interpreted depends upon the Fee.CalcType field.
Please see the documentation for this field for further information.
🔹 Data.Fees[].IsLoanCost
| Type | Required | Values | Default |
|---|---|---|---|
| Boolean | no | true, false | false |
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
| Type | Required | Values | Default |
|---|---|---|---|
| Boolean | no | true, false | false |
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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Currency > 0 | 0 |
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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Currency > 0 | 0 |
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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Text | empty |
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
| Type | Required |
|---|---|
| Object | no |
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,🔹ThousandSeparatorObjects:
None
🔹 Data.Format.CurrencyDecimals
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | 0 or 2 | 2 |
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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | YMD, MDY, or DMY | YMD |
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 asYYYY-MM-DD.MDY- All dates should be formated asMM-DD-YYYY.DMY- All dates should be formated asDD-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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | empty 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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | empty 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
| Type | Required | Values | Default |
|---|---|---|---|
| Boolean | no | true, false | false |
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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | empty or a single character | empty |
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
| Type | Required |
|---|---|
| Object | no |
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,🔹TypeObjects:
🟦 Periodic,🟥 Rates[],🟦 UpFront
🔹 Data.MI.CashDown
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Currency >= 0 | 0 |
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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Currency >= 0 | 0 |
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
| Type | Required | Values |
|---|---|---|
| String | yes | Currency >= 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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | fha, pmi | pmi |
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
| Type | Required |
|---|---|
| Object | no |
The fields of this object determine the conditions when MI is no longer included.
Fields:
🔹DropLTV,🔹Term,🔹WarnLTVObjects:
None
🔹 Data.MI.Periodic.DropLTV
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Number >= 0 | 0 |
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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Integer >= 0 | 0 |
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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Number >= 0 | 0 |
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[]
| Type | Required |
|---|---|
| Array of Rate Objects | yes |
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.
Objects:
None
🔸 Data.MI.Rates[].Rate
| Type | Required | Values |
|---|---|---|
| String | yes | Number>= 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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Integer >= 0 | 0 |
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
| Type | Required |
|---|---|
| Object | no |
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,🔹ValueObjects:
None
🔹 Data.MI.UpFront.Paid
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | atclosing, bylender, financed | atclosing |
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
| Type | Required | Values | Default |
|---|---|---|---|
| Boolean | no | true, false | true |
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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | months, points, years | months |
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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Currency >= 0 | 0 |
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
| Type | Required |
|---|---|
| Object | no |
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,🔹UseNegODIObjects:
None
🔹 Data.ODI.AccrualCode
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | 204, 205, 210, 211, 220, 221, 230, 231, 250 | default |
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 Code | Description |
|---|---|
204 | True360/360 |
205 | True360/365 |
210 | Actual/360 |
211 | True365/360 |
220 | Actual/365 |
221 | True365/365 |
230 | Actual/Actual |
231 | Midnight 366 |
250 | Actual/Variable Days Per Year |
🔹 Data.ODI.AddToPmt
| Type | Required | Values | Default |
|---|---|---|---|
| Boolean | no | true, false | false |
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
| Type | Required | Values | Default |
|---|---|---|---|
| Boolean | no | true, false | false |
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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | BackUnitPeriod, BackDaysPerPeriod | BackUnitPeriod |
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
| Type | Required | Values | Default |
|---|---|---|---|
| Boolean | no | true, false | true |
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
| Type | Required | Values | Default |
|---|---|---|---|
| Boolean | no | true, false | false |
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
| Type | Required | Values | Default |
|---|---|---|---|
| Boolean | no | true, false | false |
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
| Type | Required | Values | Default |
|---|---|---|---|
| Boolean | no | true, false | false |
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
| Type | Required |
|---|---|
| Object | no |
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,🔹ShowCapsObjects:
🟦 Disability,🟦 Life,🟦 Unemployment
🔹 Data.Protection.Birthday1
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | YYYY-MM-DD | n/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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | YYYY-MM-DD | n/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
| Type | Required | Values | Default |
|---|---|---|---|
| Boolean | no | true, false | true |
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
| Type | Required | Values | Default |
|---|---|---|---|
| Boolean | no | true, false | false |
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
| Type | Required | Values | Default |
|---|---|---|---|
| Boolean | no | true, false | false |
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
| Type | Required | Values | Default |
|---|---|---|---|
| Boolean | no | true, false | false |
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
| Type | Required | Values | Default |
|---|---|---|---|
| Boolean | no | true, false | false |
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
| Type | Required |
|---|---|
| Object | no |
The Disability object determines what type of disability coverage is
requested for the loan.
Fields:
🔹Benefit,🔹Covers,🔹CovTerm,🔹TableObjects:
None
🔹 Data.Protection.Disability.Benefit
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Currency >= 0 | 0 |
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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | none, borrower1, both, borrower2 | borrower1 |
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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Integer >= 0 | 0 |
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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Integer 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
| Type | Required |
|---|---|
| Object | no |
The Life object determines what type of life coverage is
requested for the loan.
Fields:
🔹CovAmount,🔹Covers,🔹CovTerm,🔹Dismemberment,🔹Method,🔹UseLevelRatesObjects:
None
🔹 Data.Protection.Life.CovAmount
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Currency >= 0 | 0 |
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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | none, borrower1, both, borrower2 | borrower1 |
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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Integer >= 0 | 0 |
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
| Type | Required | Values | Default |
|---|---|---|---|
| Boolean | no | true, false | false |
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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Default, Gross, Net | Default |
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
| Type | Required | Values | Default |
|---|---|---|---|
| Boolean | no | true, false | false |
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
| Type | Required |
|---|---|
| Object | no |
The Unemployment object determines what type of unemployment coverage is
requested for the loan.
Fields:
🔹Benefit,🔹Covers,🔹CovTermObjects:
None
🔹 Data.Protection.Unemployment.Benefit
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Currency >= 0 | 0 |
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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | none, borrower1, both, borrower2 | borrower1 |
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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Integer >= 0 | 0 |
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
| Type | Required |
|---|---|
| Object | no |
The Settings object allows the calling application to alter the default
loan calculation options.
Fields:
🔹Account,🔹AccrualCode,🔹ConMethod,🔹DataPath,🔹Lastday,🔹PmtDollarRound,🔹PmtRound,🔹ShowAmTable,🔹TILARESPA2015,🔹YieldPPYObjects:
None
🔹 Data.Settings.Account
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Integer 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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | see table | default |
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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | default, simple, interestonly | default |
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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Text | default 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
| Type | Required | Values | Default |
|---|---|---|---|
| Boolean | no | true, false | as 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
| Type | Required | Values | Default |
|---|---|---|---|
| Boolean | no | true, false | false |
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
| Type | Required | Values | Default |
|---|---|---|---|
| Boolean | no | true, false | false |
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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | default, nearest, up, down, best | default |
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
| Type | Required | Values | Default |
|---|---|---|---|
| Boolean | no | true, false | true |
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
| Type | Required | Values | Default |
|---|---|---|---|
| Boolean | no | true, false | false |
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
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | 0, 2, 4, 6, 12 | 0 |
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.