Skip, Pickup, and Irregular Payment Loan Module - Response
The Data object for a response from the Irregular module is defined below, in the
order the fields are returned:
🟥 Data
| Type | Required |
|---|---|
| Object | yes |
The Data object encapsulates the response data for a given module, and will
always be present.
Fields:
🔹CountryObjects:
🟥 Errors[],🟥 Warnings[],🟥 Results,🟦 FedBox,🟦 TILARESPA2015,🟦 Moneys,🟦 Accrual,🟦 PmtStreams[],🟦 Protection,🟦 AmTable
🔹 Data.Country
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Alpha-2 or Numeric-3 code | US |
If the request specified a two-character or three-digit Country code, then
this field will be present and will contain the full name of the country
associated with the specified code. Please see the Countries
Appendix for the list of supported countries and their
associated codes.
🟥 Data.Errors[]
| Type | Required |
|---|---|
| Array of String | yes |
The Errors[] field contains an array of Strings which describe any errors
encountered while handling the request. If the length of the Errors[] Array is
zero (0), then the module processed the request successfully, and the Data
object can be further processed by the calling application for the returned
data.
On the other hand, if the length of the Errors[] Array is greater than zero
(0), then this indicates that an error condition has been detected, and the
calling application should not process the respons Data object further. In
this case, the contents of the Errors[] array will describe the error(s)
encountered.
Typical errors include the omission of 🟥 required fields, invalid field values, etc.
🟥 Data.Warnings[]
| Type | Required |
|---|---|
| Array of String | yes |
The Warnings[] field contains an array of Strings which describe any warnings
generated by the module handling the request. The most common warnings returned
by modules inform the calling application that the module does not recognize a
specified field (which may help to isolate a field name spelling error in the
calling application's code). Note that field names which start with "//" will
bre treated as comment fields by the SCE, and no warnings will be generated
for these unrecognized fields.
Example - Request and response illustrating warnings when passing unrecognized fields:
{
"Module" : "Irregular",
"Data" : {
"//" : "This is a comment.",
"Hello" : "Friend!",
"How" : "are you?",
"IntRate" : "4.50",
"Proceeds" : "5000.00",
"Term" : "12"
}
}
{
"Result" : 200,
"Module" : "Irregular",
"Data" : {
"Errors" : [
"Data.LoanDate (StringDate) not found.",
"Data.PmtDate (StringDate) not found."
],
"Warnings" : [
"Request field Data.Hello (String) not recognized.",
"Request field Data.How (String) not recognized."
]
}
}
🟦 Data.Results
| Type | Required |
|---|---|
| Object | no |
This field(s) of this object represent the most important numerical results for the loan request.
Fields:
🔸Payment,🔸Number of Skips,🔸Payments Specified,Objects:
None
🔸 Data.Results.Payment
| Type | Required | Values |
|---|---|---|
| String | yes | Currency |
The regular payment for the irregular payment loan.
🔹 Data.Results.Number of Skips
| Type | Required | Values |
|---|---|---|
| String | no | Integer |
The total number of payments that are skipped are reported here.
🔹 Data.Results.Payments Specified
| Type | Required | Values |
|---|---|---|
| String | no | Integer |
The total number of specified payments are reported here.
🟦 Data.FedBox
| Type | Required |
|---|---|
| Object | no |
This object groups together all fields which contain important numerical information, as defined in the Truth-In-Lending laws (Regulation Z).
Fields:
🔸AmtFin,🔸FinChg,🔸TotPmts,🔹TotalSalePrice
🔸 Data.FedBox.AmtFin
| Type | Required | Value |
|---|---|---|
| String | yes | Currency > 0.0 |
The Regulation Z Amount Financed, which is defined as the amount of credit provided to the borrower or on their behalf.
🔸 Data.FedBox.FinChg
| Type | Required | Value |
|---|---|---|
| String | yes | Currency |
This element contains the Regulation Z Finance Charge, described as the dollar amount the credit extension will cost the borrower.
🔸 Data.FedBox.TotPmts
| Type | Required | Value |
|---|---|---|
| String | yes | Currency > 0.0 |
The amount which the borrower will have paid when the borrower has made all scheduled payments.
🔹 Data.FedBox.TotalSalePrice
| Type | Required | Value |
|---|---|---|
| String | yes | Currency > 0.0 |
The sum of the total of payments plus the total down payment. Please note that
if no TotalDown field was included in
the request, then this element will not be present.
🟥 Data.FedBox.APR
| Type | Required |
|---|---|
| Object | yes |
The APR object contains fields which return the value and APR method used.
Fields:
🔸Value,🔹Max,🔹MaxExceeded,🔸TypeObjects:
None
🔸 Data.FedBox.APR.Value
| Type | Required | Value |
|---|---|---|
| String | yes | Number |
The computed APR, which is the cost of the extension of credit expressed as a yearly rate.
🔹 Data.FedBox.APR.Max
| Type | Required | Value | Default |
|---|---|---|---|
| String | no | Number | n/a |
This field returns the maximum APR as configured in the account's setup files. If no maximum APR has been specified, then this field will not be present in the response. The value of this field should be displayed as a percentage.
🔹 Data.FedBox.APR.MaxExceeded
| Type | Required | Value | Default |
|---|---|---|---|
| Boolean | no | true, false | n/a |
If a maximum APR is configured in the account's setup files, then the value of this field indicates whether or not the current loan exceeds the maximum APR. If no maximum APR has been specified, then this field will not be present in the response.
🔸 Data.FedBox.APR.Type
| Type | Required | Value |
|---|---|---|
| String | yes | Text |
This field returns the APR method used to compute the reported APR.
🟦 Data.FedBox.MAPR
| Type | Required |
|---|---|
| Object | no |
The MAPR (military APR) object is only returned with the response if the value
of the Apr.UseMAPR request field is
true.
Fields:
🔸Value,🔸Advance,🔸Max,🔸MaxExceededObjects:
None
🔸 Data.FedBox.MAPR.Value
| Type | Required | Value |
|---|---|---|
| String | yes | Number |
The computed military APR.
🔸 Data.FedBox.MAPR.Advance
| Type | Required | Value |
|---|---|---|
| String | yes | Currency > 0.0 |
This field returns the equivalent of the Amount Financed for the Military APR. Specifically, it is the principal balance less any MAPR fees, debt protection, etc.
🔸 Data.FedBox.MAPR.Max
| Type | Required | Value |
|---|---|---|
| String | yes | Number |
This field holds the maximum Military APR as specified in the input XML (see
Apr.MAPR_Max). If not specified, a default value
of 36% is assumed. The value of this field should be displayed as a percentage.
As an example, for "Max" :"36.000", you would disclose a maximum Military APR
of 36%.
🔸 Data.FedBox.MAPR.MaxExceeded
| Type | Required | Value |
|---|---|---|
| Boolean | yes | true, false |
The value of this field indicates whether or not the current loan exceeds the
maximum allowed Military APR. As an example, if the maximum APR has been set to
36% and the Military APR for the returned loan was 37.125%, the MAPR object
would be:
{
"MAPR" : {
"Value" : "37.125",
"Advance" : "1350.00",
"Max" : "36.000",
"MaxExceeded" : true
}
}
🟦 Data.TILARESPA2015
| Type | Required |
|---|---|
| Object | no |
This object contains fields which are of interest to fulfilling the 2015 TILA
RESPA rule. It will only be present if the
Settings.TILARESPA2015 field
in the request is set to true.
Fields:
🔸TotalLoanCost,🔸CD_TotPmts,🔸TIPObjects:
🟥 LoanCosts[],🟥 In5Years,🟥 MaxPnIPmt,🟥 MinRate,🟥 MaxRate,🟥 ProjectedPaymentsTable[]
🔸 Data.TILARESPA2015.TotalLoanCost
| Type | Required | Value |
|---|---|---|
| String | yes | Currency > 0.0 |
The value of this field is the sum of all borrower paid loan costs. Since all
LoanCost values are rounded dollar amounts, the value of this
element will also be a rounded dollar amount.
🔸 Data.TILARESPA2015.CD_TotPmts
| Type | Required | Value |
|---|---|---|
| String | yes | Currency > 0.0 |
This field returns the sum of the total of payments, all borrower paid loan costs, and any odd days interest that is prepaid at loan closing. This value should be disclosed on the Closing Disclosure form in the Total of Payments field.
🔸 Data.TILARESPA2015.TIP
| Type | Required | Value |
|---|---|---|
| String | yes | Number |
The total interest percentage, rounded to three or fewer decimal places - as required.
🟥 Data.TILARESPA2015.LoanCosts[]
| Type | Required |
|---|---|
| Array of LoanCost Objects | yes |
For every object in the Fees[] array present in
the request which has its IsLoanCost
field set to true (and hence, is a borrower paid loan cost) and whose amount
is greater than zero (except odd days interest fee types, as explained in the
previous documentation of the Fee and object),
there will be a corresponding LoanCost object.
Fields:
🔹Name,🔹In5Years,🔸ValueObjects:
None
🔹 Data.TILARESPA2015.LoanCosts[].Name
| Type | Required | Value | Default |
|---|---|---|---|
| String | no | Text | n/a |
If a name was provided for the fee, then it will be included here in the disclosure for identification purposes.
🔹 Data.TILARESPA2015.LoanCosts[].In5Years
| Type | Required | Value | Default |
|---|---|---|---|
| String | no | Currency >= 0 | Same as Value |
If the entire amount of the fee is different from the amount collected over the first five years (for example, a service charge), then this field will be present and disclose the portion of this loan coast that is accrued during the first five years.
🔸 Data.TILARESPA2015.LoanCosts[].Value
| Type | Required | Value |
|---|---|---|
| String | yes | Currency >= 0 |
The value of this field is the numerical value of the fee, rounded to the nearest dollar.
🟥 Data.TILARESPA2015.In5Years
| Type | Required |
|---|---|
| Object | yes |
This object contains all important values required for the new "In 5 Years" section of the disclosure.
Fields:
🔸PaidTotal,🔸PaidPrincipalObjects:
None
🔸 Data.TILARESPA2015.In5Years.PaidTotal
| Type | Required | Value |
|---|---|---|
| String | yes | Currency >= 0 |
This field holds the sum of all "principal, interest, mortgage insurance, and borrower paid loan costs scheduled to be paid through the end of the 60th month after the due date of the first periodic payment". Note that this value is rounded to the nearest whole dollar.
🔸 Data.TILARESPA2015.In5Years.PaidPrincipal
| Type | Required | Value |
|---|---|---|
| String | yes | Currency >= 0 |
This field holds "the principal scheduled to be paid through the end of the 60th month after the due date of the first periodic payment". Note that this value is rounded to the nearest whole dollar.
🟥 Data.TILARESPA2015.MaxPnIPmt
| Type | Required |
|---|---|
| Object | yes |
The fields of this object hold the maximum sceduled principal and interest payment during the term of the loan, as well as the date on which that payment is made.
Objects:
None
🔸 Data.TILARESPA2015.MaxPnIPmt.Date
| Type | Required | Value |
|---|---|---|
| String | yes | YYYY-MM-DD |
The value of this field returns the date on which the maximum scheduled principal and interest payment is made. If the maximum scheduled payment occurs more than once, then the date returned is that of the first instance.
🔸 Data.TILARESPA2015.MaxPnIPmt.Amount
| Type | Required | Value |
|---|---|---|
| String | yes | Currency >= 0 |
The maximum sceduled principal and interest payment during the term of the loan.
🟥 Data.TILARESPA2015.MinRate
| Type | Required |
|---|---|
| Object | yes |
The fields of this object hold information regarding the minimum possible interest rate applied during the term of the loan.
Objects:
None
🔸 Data.TILARESPA2015.MinRate.Rate
| Type | Required | Value |
|---|---|---|
| String | yes | Number |
The value of the minimum interest rate applied during the term of the loan.
🔸 Data.TILARESPA2015.MinRate.Idx
| Type | Required | Value |
|---|---|---|
| String | yes | Integer > 0 |
This field returns the payment number for which the minimum rate is first applicable.
🟥 Data.TILARESPA2015.MaxRate
| Type | Required |
|---|---|
| Object | yes |
The fields of this object hold information regarding the maximum possible interest rate applied during the term of the loan.
Objects:
None
🔸 Data.TILARESPA2015.MaxRate.Rate
| Type | Required | Value |
|---|---|---|
| String | yes | Number |
The value of the maximum interest rate applied during the term of the loan.
🔸 Data.TILARESPA2015.MaxRate.Idx
| Type | Required | Value |
|---|---|---|
| String | yes | Integer > 0 |
This field returns the payment number for which the maximum rate is first applicable.
🟥 Data.TILARESPA2015.ProjectedPaymentsTable[]
| Type | Required |
|---|---|
Array of PPCol Objects | yes |
Fields:
🔸Num,🔸Title,🔸YearStart,🔸YearEnd,🔸PnIPmtMin,🔸PnIPmtMax,🔸IntOnly,🔸Balloon,🔸MIPmt,🔸TotalPmtMin,🔸TotalPmtMaxObjects:
None
This field returns an Array of projected payment table columns (PPCol), with
each array member detailing a single column. Per the regulation, there will be a
minimum of one column and a maximum of four columns, depending upon the
parameters of the loan.
🔸 Data.TILARESPA2015.ProjectedPaymentsTable[].Num
| Type | Required | Value |
|---|---|---|
| String | yes | Integer in [1...4] |
The value of this field identifies the number of the column to which the following fields apply. The value will be from 1 to 4.
🔸 Data.TILARESPA2015.ProjectedPaymentsTable[].Title
| Type | Required | Value |
|---|---|---|
| String | yes | Text |
The value of this field is the title for the column. Most of the time, it will
be in the form of Years X - Y, or Year X, or Final Payment in the case of
a final balloon payment.
🔸 Data.TILARESPA2015.ProjectedPaymentsTable[].YearStart
| Type | Required | Value |
|---|---|---|
| String | yes | Integer |
The beginning year number for which this column data applies.
🔸 Data.TILARESPA2015.ProjectedPaymentsTable[].YearEnd
| Type | Required | Value |
|---|---|---|
| String | yes | Integer |
The ending year number for which this column data applies.
🔸 Data.TILARESPA2015.ProjectedPaymentsTable[].PnIPmtMin
| Type | Required | Value |
|---|---|---|
| String | yes | Currency > 0 |
The minimum principal and interest payment for this column.
🔸 Data.TILARESPA2015.ProjectedPaymentsTable[].PnIPmtMax
| Type | Required | Value |
|---|---|---|
| String | yes | Currency > 0 |
The maximum principal and interest payment for this column.
🔸 Data.TILARESPA2015.ProjectedPaymentsTable[].IntOnly
| Type | Required | Value |
|---|---|---|
| String | yes | none, some, all |
If none of the payments associated with this column are interest only payments,
then the value of this field will be none. A value of some means that some
of the payments (but not all) associated with this columnt are interest only.
Finally, a value of all indicates that all payments associated with this
columnt are interest only.
Note that for the purposes of this field, a scheduled payment is considered an interest only payment if the payment amount pays off all interest due at the time of the payment, with no reduction in the principal balance.
🔸 Data.TILARESPA2015.ProjectedPaymentsTable[].Balloon
| Type | Required | Value |
|---|---|---|
| Boolean | yes | true, false |
If any of the payments associated with this column are balloon payments (e.g.
isolated payments that are more than twice the value of a regular periodic
payment), then the value of this field will be true.
🔸 Data.TILARESPA2015.ProjectedPaymentsTable[].MIPmt
| Type | Required | Value |
|---|---|---|
| String | yes | Currency > 0 |
The value of this field holds the mortgage insurance premium associated with this column, rounded to the nearest dollar. If no mortgage insurance is present or coverage has been dropped, a value of zero will be present.
🔸 Data.TILARESPA2015.ProjectedPaymentsTable[].TotalPmtMin
| Type | Required | Value |
|---|---|---|
| String | yes | Currency > 0 |
This field returns the minimum estimated total payment for this column. Note that this value does not include any estimated escrow, as the SCE does not support escrow calculations. The calling application will need to increase these values by the estimated escrow amounts if any are present.
🔸 Data.TILARESPA2015.ProjectedPaymentsTable[].TotalPmtMax
| Type | Required | Value |
|---|---|---|
| String | yes | Currency > 0 |
This field returns the maximum estimated total payment for this column. Note that this value does not include any estimated escrow, as the SCE does not support escrow calculations. The calling application will need to increase these values by the estimated escrow amounts if any are present.
🟦 Data.Moneys
| Type | Required |
|---|---|
| Object | no |
This element groups together those other major cash result amounts not disclosed
under the FedBox object, such as the principal balance, interest charge,
and fee amounts.
Fields:
🔸Principal,🔸Interest,🔹ConstructInterest,🔹FinFees,🔹Prepaid,🔹PocketFees,🔹MAPRFees,🔹MinIntChgAdj,🔹MinFinChgAdjObjects:
🟦 ODI,🟦 Fees[],🟦 ServiceCharges[],🟦 Protection
🔸 Data.Moneys.Principal
| Type | Required | Value |
|---|---|---|
| String | yes | Currency >= 0 |
The principal balance is the amount on which interest is accrued. The principal balance consists of all advances requested by the borrower, as well as any fees and/or protection products which are financed.
🔸 Data.Moneys.Interest
| Type | Required | Value |
|---|---|---|
| String | yes | Currency |
This value of this field holds the total interest accrued during the term of the loan, assuming the borrower will make all scheduled payments.
🔹 Data.Moneys.ConstructInterest
| Type | Required | Value | Default |
|---|---|---|---|
| String | no | Currency >= 0.0 | 0 |
If the requested loan is a construction loan with a permanent loan attached and the account specified is set up to compute construction loans via the "Simple" method, then this field will contain the construction interest for the requested loan.
Note that if a permanent loan is attached to a construction loan and the
account is set up to use the "LaserPro" method, 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.
If the requested loan is a construction loan without a permanent loan
attached, then the construction interest will be disclosed in the
Moneys.Interest field.
If the requested loan was not a construction loan, or if construction loans have not been set up for the given account, then this field will not appear in the response.
🔹 Data.Moneys.FinFees
| Type | Required | Value | Default |
|---|---|---|---|
| String | no | Currency >= 0.0 | 0 |
This field contains the sum of all fees having AddToPrin
set to true and occuring on the date of an advance. If this
value is zero, the field will not appear in the response.
🔹 Data.Moneys.Prepaid
| Type | Required | Value | Default |
|---|---|---|---|
| String | no | Currency >= 0.0 | 0 |
This field represents all prepaid finance charges and contains the sum of all
fees occurring on an advance and having AddToFinChg
set to true. If this value is zero, the field will not be found in the response.
🔹 Data.Moneys.PocketFees
| Type | Required | Value | Default |
|---|---|---|---|
| String | no | Currency >= 0.0 | 0 |
This field holds the sum of all fees which are neither financed, nor added to the finance charge. In essence, they are paid out of the borrower's pocket. If no out of pocket fees were requested, then this field will not show up in the response.
🔹 Data.Moneys.MAPRFees
| Type | Required | Value | Default |
|---|---|---|---|
| String | no | Currency >= 0.0 | 0 |
This field holds the sum of all fees which are Military APR fees (including protection products), and will only appear if the Military APR has been requested.
🔹 Data.Moneys.MinIntChgAdj
| Type | Required | Value | Default |
|---|---|---|---|
| String | no | Currency >= 0.0 | 0 |
If a minimum interest charge is configured in the account's setup files and the final payment was adjusted to meet this minimum interest charge, then this field will be returned in the response and will contain the value of the minimum interest charge adjustment.
🔹 Data.Moneys.MinFinChgAdj
| Type | Required | Value | Default |
|---|---|---|---|
| String | no | Currency >= 0.0 | 0 |
If a minimum finance charge is configured in the account's setup files and the final payment was adjusted to meet this minimum finance charge, then this field will be returned in the response and will contain the value of the minimum finance charge adjustment.
🟦 Data.Moneys.ODI
| Type | Required |
|---|---|
| Object | no |
This object, if present, contains information regarding odd days interest. If no odd days interest was requested, then this object will not be present in the response.
Fields:
🔹AddToPmt,🔸Count,🔸Fee,🔹Months,🔹DailyCostObjects:
None
🔹 Data.Moneys.ODI.AddToPmt
| Type | Required | Values | Default |
|---|---|---|---|
| Boolean | no | true, false | n/a |
If the odd days interest has been added to the first payment, then this field
will be present in the response with a value of true. If the odd days interest
has been treated as a prepaid finance charge, then this field will not be
present and a default value of false should be assumed.
🔸 Data.Moneys.ODI.Count
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
Discloses the number of odd days computed by the SCE for the requested loan.
🔸 Data.Moneys.ODI.Fee
| Type | Required | Value |
|---|---|---|
| String | yes | Currency >= 0 |
Discloses the total amount odd days interest charge.
🔹 Data.Moneys.ODI.Months
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Integer >= 0 | n/a |
This field holds the number of odd months computed by the SCE for the requested
loan when using odd days accrual method 250. If the odd days accrual method is
a value other than 250, then this field will not be present in the ODI
object of the response.
🔹 Data.Moneys.ODI.DailyCost
| Type | Required | Value | Default |
|---|---|---|---|
| String | no | Currency >= 0.0 | n/a |
If the odd days interest fee is computed using a rounded daily cost, then the value of this field will hold that value. If the odd days interest is not computed using a rounded daily cost, then this field will not be present in the response.
🟦 Data.Moneys.Fees[]
| Type | Required |
|---|---|
| Array of Fee Objects | no |
If the requested loan included fees, then for each fee in the loan there will be a Fee object in this array containing the name of the fee and the computed fee amount.
If there were no fees requested with the loan, then the Moneys.Fees[] array
will not be included in the response.
Objects:
None
🔹 Data.Moneys.Fees[].Name
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Text | empty |
If a name was provided for the fee, then it will be included here in the disclosure for identification purposes.
🔸 Data.Moneys.Fees[].Fee
| Type | Required | Value |
|---|---|---|
| String | yes | Currency >= 0 |
Discloses the computed fee amount.
🟦 Data.Moneys.ServiceCharges[]
| Type | Required |
|---|---|
| Array of ServiceCharge Objects | no |
If the requested loan included service charges, then for each service charge in the loan there will be a ServiceCharge object in this array containing the name of the service charge and the computed service charge amount.
If there were no service charges requested with the loan, then the
Moneys.ServiceCharges[] array will not be included in the response.
Objects:
None
🔹 Data.Moneys.ServiceCharges[].Name
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Text | empty |
If a name was provided for the service charge, then it will be included here in the disclosure for identification purposes.
🔸 Data.Moneys.ServiceCharges[].Fee
| Type | Required | Value |
|---|---|---|
| String | yes | Currency >= 0 |
Discloses the computed service charge amount.
🟦 Data.Moneys.Protection
| Type | Required |
|---|---|
| Object | no |
This object returns summary information on all payment protection products computed with the loan. If no protection products were included with the loan, then this object will be omitted from the response.
Fields:
🔸Cost,🔸PerPmt,🔸PerDay,🔸Category,🔹IsDP,🔹MandatoryObjects:
None
🔸 Data.Moneys.Protection.Cost
| Type | Required | Value |
|---|---|---|
| String | yes | Currency >= 0 |
Discloses the total cost of all protection plans included with the
computed loan. For the individual plan costs, see the
Protection field described below.
🔸 Data.Moneys.Protection.PerPmt
| Type | Required | Value |
|---|---|---|
| String | yes | Currency >= 0 |
The cost of all loan protection products expressed as dollars per payment.
🔸 Data.Moneys.Protection.PerDay
| Type | Required | Value |
|---|---|---|
| String | yes | Currency >= 0 |
The cost of all loan protection products expressed as dollars per day.
🔸 Data.Moneys.Protection.Category
| Type | Required | Values |
|---|---|---|
| String | yes | None, SP, MOB, TrueMOB, PaidSP |
Te value of this field specifies the category under which the computed loan protection falls. The categories are described below:
| Category | Description |
|---|---|
None | No loan protection products were computed with this loan. |
SP | Financed single premium coverage. |
MOB | Monthly outstanding balance coverage. |
TrueMOB | TruStage's monthly outstanding balance method. |
PaidSP | Non-financed single premium coverage. |
🔹 Data.Moneys.Protection.IsDP
| Type | Required | Values | Default |
|---|---|---|---|
| Boolean | no | true, false | false |
This field indicates if the specified account's protection is set up as debt
protection. If this field is not present, then the default value of false
should be used (which indicates that the account's protection is set up as
insurance instead).
🔹 Data.Moneys.Protection.Mandatory
| Type | Required | Values | Default |
|---|---|---|---|
| Boolean | no | true, false | false |
This field should only appear in the response if the value of the is true.
If this field does not appear in the output, then the value should default to
false.
If the value of the Mandatory field is true, then the total premium / fee
amount for all insurance / debt protection products has been treated as a part
of the Finance Charge, and hence will affect the effective APR.
🟦 Data.Accrual
| Type | Required |
|---|---|
| Object | no |
This object groups together interest accrual information, such as the accrual method(s) used, days to the first payment and the loan's maturity date.
Fields:
🔸Method,🔸Days1Pmt,🔸DayCount,🔸MaturityObjects:
None
🔸 Data.Accrual.Method
| Type | Required | Values |
|---|---|---|
| String | yes | Text |
The Method field contains a textual description of the interest accrual method
used to compute the loan (e.g. "Unit Period 365 Simple".)
🔸 Data.Accrual.Days1Pmt
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
This field contains the number of days between the date of the first
advance and the date of first payment, computed by one of two
methods as specified in by Accrual.DayCount (below).
🔸 Data.Accrual.DayCount
| Type | Required | Values |
|---|---|---|
| String | yes | True360, Actual |
This field specifies the method used to compute the number of days from the date
of the first advance until the first payment date. Actual means that the
actual number of days between these two dates are used, whereas the True360
method use a 360 day calendar.
🔸 Data.Accrual.Maturity
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-MM-DD |
Holds the maturity date of the loan, which is the date on which the last
payment is scheduled. All dates are in the form of YYYY-MM-DD, and must
be 10 characters long.
🟦 Data.PmtStreams[]
| Type | Required |
|---|---|
| Object | no |
The PmtStreams[] array is made up of one or more PmtStream objects (there
will always be at least one of these elements, and there may be more than one
depending upon the loan type). The PmtStream objects describe the scheduled
stream of payments for the computed loan. Instead of disclosing each and every
payment individually (which can be done with the AmTable object),
the payment stream groups together consecutive equal payments at the same
interest rate to produce output along the lines of:
{
"PmtStreams" : [
{
"Term" : "1",
"Pmt" : "50.13",
"Rate" : "4.500",
"Begin" : "2022-10-01"
},
{
"Term" : "10",
"Pmt" : "37.59",
"Rate" : "4.500",
"Begin" : "2022-11-01"
},
{
"Term" : "1",
"Pmt" : "10062.59",
"Rate" : "4.500",
"Begin" : "2023-09-01"
}
]
}
Each object describes a single stream of equal payments at the same interest rate, using the following fields to define the important properties of each payment stream.
Fields:
🔸Term,🔸Pmt,🔸Rate,🔸BeginObjects:
Note
🔸 Data.PmtStreams[].Term
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
The Term field holds the number of payments that make up the given payment
stream.
🔸 Data.PmtStreams[].Pmt
| Type | Required | Values |
|---|---|---|
| String | yes | Currency > 0 |
The Pmt field holds the computed payment amount for this payment stream.
🔹 Data.PmtStreams[].Rate
| Type | Required | Values |
|---|---|---|
| String | yes | Number |
Contains the interest rate used for the duration of this payment stream. If this payment stream accrued interest using split-rate tiers, then this field will not be returned.
🔸 Data.PmtStreams[].Begin
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-MM-DD |
This field identifies the date on which the first payment for this given payment
stream is scheduled to be made. All dates are in the form of YYYY-MM-DD, and
must be 10 characters long.
🟦 Data.Protection
| Type | Required |
|---|---|
| Object | no |
If protection products are requested, then this object will be present in the response, along with a field for each requested protection product.
Fields :
NoneObjects:
🟦 Life,🟦 Level,🟦 Disability
🟦 Data.Protection.Life
| Type | Required |
|---|---|
| Object | no |
If life protection was requested with the loan and decreasing life was
configured for this loan type, then the Life object will be present in the
response to return information on decreasing life coverage.
Fields:
🔸Result,🔸Formula,🔸RateTypeObjects:
🟦 Cost,🟦 Coverage,🟦 Term,🟦 Borrower1,🟦 Borrower2
🔸 Data.Protection.Life.Result
| Type | Required | Values |
|---|---|---|
| String | yes | Text - See below |
This field contains the calculation result for the requested protection product.
If it contains a value of Valid Calculation, then the requested product was
computed and factored into the loan. Parse the other fields and child objects
for further details.
A value other than Valid Calculation means that the requested product was
not computed with the loan, and the value describes why. In this case, there is
no need to parse through the other fields or child objects, as the product was
not computed.
🔸 Data.Protection.Life.Formula
| Type | Required | Values |
|---|---|---|
| String | yes | Text - See table |
The Formula field contains an abbreviated description of the formula used to
compute the desired protection product. The formula codes are for the use of the
J. L. Sherman and Associates, Inc. support team.
🔸 Data.Protection.Life.RateType
| Type | Required | Values |
|---|---|---|
| String | yes | Fixed, Variable |
This field will only be present in the response if the protection product has
been configured to allow for coverage to switch from joint to single during the
term of coverage, should one of the borrowers exceed an age at termination cap.
If the field is not present, then a value of Fixed should be assumed as only
one rate has been used in the protection calculation.
If this field is present, then there is the possibility that the rate used to
compute the protection may have changed (in the case of coverage for one
borrower ending while coverage for the other borrower continues). If this is the
case, then the field will indicate this rate change with a value of Variable.
🟦 Data.Protection.Life.Cost
| Type | Required |
|---|---|
| Object | yes |
Fields of this object provide the cost of the protection product in total, per payment, and per day. It also provides the rate factor used to compute the premiums.
Fields:
🔸Premium,🔸PerPmt,🔸PerDay,🔸Factor,🔹Premium2,🔹PerPmt2,🔹PerDay2,🔹Factor2Objects:
None
🔸 Data.Protection.Life.Cost.Premium
| Type | Required | Values |
|---|---|---|
| String | yes | Currency >= 0 |
The total cost for this protection over the term of the loan.
🔸 Data.Protection.Life.Cost.PerPmt
| Type | Required | Values |
|---|---|---|
| String | yes | Currency >= 0 |
The cost of coverage expressed as currency per payment.
🔸 Data.Protection.Life.Cost.PerDay
| Type | Required | Values |
|---|---|---|
| String | yes | Currency >= 0 |
The cost of coverage expressed as currency per dey.
🔸 Data.Protection.Life.Cost.Factor
| Type | Required | Values |
|---|---|---|
| String | yes | Number >= 0 |
The rate factor used to compute the premium for the requested protection product.
🔹 Data.Protection.Life.Cost.Premium2
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Currency >= 0 | n/a |
The only time the Premium2 field will be present is when the account has been
setup to use an ordinary life product and the user has requested joint
coverage. If this is the case, then the Premium2 field is provided so that the
calling application can disclose two premiums instead of a single aggregate
joint premium.
🔹 Data.Protection.Life.Cost.PerPmt2
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Currency >= 0 | n/a |
The cost of coverage for the secondary ordinary life borrower, expressed as
currency per payment. See Cost.Premium2 above for
further information.
🔹 Data.Protection.Life.Cost.PerDay2
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Currency >= 0 | n/a |
The cost of coverage for the secondary ordinary life borrower, expressed as
currency per dey. Please see Cost.Premium2 above for
further information.
🔹 Data.Protection.Life.Cost.Factor2
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Number >= 0 | n/a |
The rate factor used to compute the premium for the secondary ordinary life
borrower. Please see Cost.Premium2 above for further information.
🟦 Data.Protection.Life.Coverage
| Type | Required |
|---|---|
| Object | yes |
The aggregate coverage amount and note are provided in the following fields of this object:
Objects:
None
🔸 Data.Protection.Life.Coverage.Amount
| Type | Required | Values |
|---|---|---|
| String | yes | Currency >= 0 |
The aggregate coverage amount for this protection product.
🔸 Data.Protection.Life.Coverage.Note
| Type | Required | Values |
|---|---|---|
| String | yes | Text - See below |
The Note field will describe the type of coverage provided. If full coverage
has been provided on the aggregate coverage, then the note will contain Full Coverage. Otherwise, the note will describe the type of partial coverage used.
🟦 Data.Protection.Life.Term
| Type | Required |
|---|---|
| Object | no |
The Term object provides the calling application with data about the term of
coverage for the requested product. If the input request has specified
"ShowBorrowerInfo" : true, then this object
will not be present.
Fields:
🔸InMonths,🔸InPmts,🔸Maturity,🔸NoteObjects:
None
🔸 Data.Protection.Life.Term.InMonths
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
Contains the term of coverage expressed as a number of months.
🔸 Data.Protection.Life.Term.InPmts
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
Contains the number of payments covered.
🔸 Data.Protection.Life.Term.Maturity
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-MM-DD |
This field contains the maturity date for the requested coverage.
🔸 Data.Protection.Life.Term.Note
| Type | Required | Values |
|---|---|---|
| String | yes | Text - See below |
The Note field will describe the type of coverage provided. If
full term coverage has been provided, then the note will contain
Full Coverage. Otherwise, the note will describe the type of truncated
coverage used.
🟦 Data.Protection.Life.Borrower1
| Type | Required |
|---|---|
| Object | no |
The Borrower1 object provides the calling application with data about the term
of coverage of a borrower, for the requested product. Note that this object will
only be present if the request has specified "ShowBorrowerInfo" : true,
and a valid birthdate was provided.
Fields:
🔸Birthday,🔸AgeAtIssue,🔸AgeAtMaturity,🔸Pmts,🔸Months,🔸Maturity,🔸NoteObjects:
None
🔸 Data.Protection.Life.Borrower1.Birthday
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-MM-DD |
The birthday associated with the borrower, as specified in the request.
🔸 Data.Protection.Life.Borrower1.AgeAtIssue
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-MM-DD |
If coverage is written on this borrower, then the value of this field represents
the age at issue of the borrower in a special date-like format of YYYY-MM-DD,
where the borrower is YYYY years, MM months, and DD days old when coverage
begins.
🔸 Data.Protection.Life.Borrower1.AgeAtMaturity
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-MM-DD |
If coverage is written on this borrower, then the value of this field represents
the age at maturity of the borrower in a special date-like format of
YYYY-MM-DD, where the borrower is YYYY years, MM months, and DD days old
when coverage terminates.
🔸 Data.Protection.Life.Borrower1.Pmts
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
The term of coverage expressed as a number of payments.
🔸 Data.Protection.Life.Borrower1.Months
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
The term of coverage expressed as a number of months.
🔸 Data.Protection.Life.Borrower1.Maturity
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-MM-DD |
The coverage maturity date for this particular borrower.
🔸 Data.Protection.Life.Borrower1.Note
| Type | Required | Values |
|---|---|---|
| String | yes | Text - See below |
The value of this field will describe the type of coverage provided. If full
term coverage has been provided, then the note will contain Full Coverage.
Otherwise, the note will describe the type of truncated coverage used.
🟦 Data.Protection.Life.Borrower2
| Type | Required |
|---|---|
| Object | no |
The Borrower2 object provides the calling application with data about the term
of coverage of a borrower, for the requested product. Note that this object will
only be present if the request has specified "ShowBorrowerInfo" : true,
and a valid birthdate was provided.
Fields:
🔸Birthday,🔸AgeAtIssue,🔸AgeAtMaturity,🔸Pmts,🔸Months,🔸Maturity,🔸NoteObjects:
None
🔸 Data.Protection.Life.Borrower2.Birthday
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-MM-DD |
The birthday associated with the borrower, as specified in the request.
🔸 Data.Protection.Life.Borrower2.AgeAtIssue
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-MM-DD |
If coverage is written on this borrower, then the value of this field represents
the age at issue of the borrower in a special date-like format of YYYY-MM-DD,
where the borrower is YYYY years, MM months, and DD days old when coverage
begins.
🔸 Data.Protection.Life.Borrower2.AgeAtMaturity
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-MM-DD |
If coverage is written on this borrower, then the value of this field represents
the age at maturity of the borrower in a special date-like format of
YYYY-MM-DD, where the borrower is YYYY years, MM months, and DD days old
when coverage terminates.
🔸 Data.Protection.Life.Borrower2.Pmts
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
The term of coverage expressed as a number of payments.
🔸 Data.Protection.Life.Borrower2.Months
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
The term of coverage expressed as a number of months.
🔸 Data.Protection.Life.Borrower2.Maturity
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-MM-DD |
The coverage maturity date for this particular borrower.
🔸 Data.Protection.Life.Borrower2.Note
| Type | Required | Values |
|---|---|---|
| String | yes | Text - See below |
The value of this field will describe the type of coverage provided. If full
term coverage has been provided, then the note will contain Full Coverage.
Otherwise, the note will describe the type of truncated coverage used.
🟦 Data.Protection.Life.Caps
| Type | Required |
|---|---|
| Object | no |
The Caps object provides the calling application with data about the maximum
terms, amounts, and ages associated with the requested product. This object will
only be present if the ShowCaps field
of the Protection request object is set to
true.
Fields:
🔸Cov,🔸Ben,🔸Term,🔸InceptAge,🔸AttainAgeObjects:
None
🔸 Data.Protection.Life.Caps.Cov
| Type | Required | Values |
|---|---|---|
| String | yes | Currency >= 0 |
Contains the maximum aggregate coverage amount. If no cap is present or applicable, then a value of zero is returned.
🔸 Data.Protection.Life.Caps.Ben
| Type | Required | Values |
|---|---|---|
| String | yes | Currency >= 0 |
Contains the maximum monthly benefit amount. If no cap is present or applicable, then a value of zero is returned.
🔸 Data.Protection.Life.Caps.Term
| Type | Required | Values |
|---|---|---|
| String | yes | Currency >= 0 |
Contains the maximum coverage term, expressed in months. If no cap is present or applicable, then a value of zero is returned.
🔸 Data.Protection.Life.Caps.InceptAge
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
Contains the maximum age a borrower may be at loan inception, expressed in years. If no cap is present or applicable, then a value of zero is returned.
🔸 Data.Protection.Life.Caps.AttainAge
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
Contains the maximum age a borrower may attain during the term of the loan, expressed in years. If no cap is present or applicable, then a value of zero is returned.
🟦 Data.Protection.Level
| Type | Required |
|---|---|
| Object | no |
If level protection was requested with the loan and decreasing level was
configured for this loan type, then the Life object will be present in the
response to return information on decreasing level coverage.
Objects:
🟦 Cost,🟦 Coverage,🟦 Term,🟦 Borrower1,🟦 Borrower2
🔸 Data.Protection.Level.Result
| Type | Required | Values |
|---|---|---|
| String | yes | Text - See below |
This field contains the calculation result for the requested protection product.
If it contains a value of Valid Calculation, then the requested product was
computed and factored into the loan. Parse the other fields and child objects
for further details.
A value other than Valid Calculation means that the requested product was
not computed with the loan, and the value describes why. In this case, there is
no need to parse through the other fields or child objects, as the product was
not computed.
🔸 Data.Protection.Level.Formula
| Type | Required | Values |
|---|---|---|
| String | yes | Text - See table |
The Formula field contains an abbreviated description of the formula used to
compute the desired protection product. The formula codes are for the use of the
J. L. Sherman and Associates, Inc. support team.
🟦 Data.Protection.Level.Cost
| Type | Required |
|---|---|
| Object | yes |
Fields of this object provide the cost of the protection product in total, per payment, and per day. It also provides the rate factor used to compute the premiums.
Fields:
🔸Premium,🔸PerPmt,🔸PerDay,🔸Factor,🔹Premium2,🔹PerPmt2,🔹PerDay2,🔹Factor2Objects:
None
🔸 Data.Protection.Level.Cost.Premium
| Type | Required | Values |
|---|---|---|
| String | yes | Currency >= 0 |
The total cost for this protection over the term of the loan.
🔸 Data.Protection.Level.Cost.PerPmt
| Type | Required | Values |
|---|---|---|
| String | yes | Currency >= 0 |
The cost of coverage expressed as currency per payment.
🔸 Data.Protection.Level.Cost.PerDay
| Type | Required | Values |
|---|---|---|
| String | yes | Currency >= 0 |
The cost of coverage expressed as currency per dey.
🔸 Data.Protection.Level.Cost.Factor
| Type | Required | Values |
|---|---|---|
| String | yes | Number >= 0 |
The rate factor used to compute the premium for the requested protection product.
🔹 Data.Protection.Level.Cost.Premium2
| Type | Required | Values | Default |
|---|---|---|---|
| String | yes | Currency >= 0 | n/a |
The only time the Premium2 field will be present is when the account has been
setup to use an ordinary Level product and the user has requested joint
coverage. If this is the case, then the Premium2 field is provided so that the
calling application can disclose two premiums instead of a single aggregate
joint premium.
🔹 Data.Protection.Life.Cost.PerPmt2
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Currency >= 0 | n/a |
The cost of coverage for the secondary ordinary life borrower, expressed as
currency per payment. See Cost.Premium2 above for
further information.
🔹 Data.Protection.Life.Cost.PerDay2
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Currency >= 0 | n/a |
The cost of coverage for the secondary ordinary life borrower, expressed as
currency per dey. Please see Cost.Premium2 above for
further information.
🔹 Data.Protection.Life.Cost.Factor2
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Number >= 0 | n/a |
The rate factor used to compute the premium for the secondary ordinary life
borrower. Please see Cost.Premium2 above for further information.
🟦 Data.Protection.Level.Coverage
| Type | Required |
|---|---|
| Object | yes |
The aggregate coverage amount and note are provided in the following fields of this object:
Objects:
None
🔸 Data.Protection.Level.Coverage.Amount
| Type | Required | Values |
|---|---|---|
| String | yes | Currency >= 0 |
The aggregate coverage amount for this protection product.
🔸 Data.Protection.Level.Coverage.Note
| Type | Required | Values |
|---|---|---|
| String | yes | Text - See below |
The Note field will describe the type of coverage provided. If full coverage
has been provided on the aggregate coverage, then the note will contain Full Coverage. Otherwise, the note will describe the type of partial coverage used.
🟦 Data.Protection.Level.Term
| Type | Required |
|---|---|
| Object | no |
The Term object provides the calling application with data about the term of
coverage for the requested product. If the input request has specified
"ShowBorrowerInfo" : true, then this
object will not be present.
Fields:
🔸InMonths,🔸InPmts,🔸Maturity,🔸NoteObjects:
None
🔸 Data.Protection.Level.Term.InMonths
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
Contains the term of coverage expressed as a number of months.
🔸 Data.Protection.Level.Term.InPmts
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
Contains the number of payments covered.
🔸 Data.Protection.Level.Term.Maturity
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-MM-DD |
This field contains the maturity date for the requested coverage.
🔸 Data.Protection.Level.Term.Note
| Type | Required | Values |
|---|---|---|
| String | yes | Text - See below |
The Note field will describe the type of coverage provided. If
full term coverage has been provided, then the note will contain
Full Coverage. Otherwise, the note will describe the type of truncated
coverage used.
🟦 Data.Protection.Level.Borrower1
| Type | Required |
|---|---|
| Object | no |
The Borrower1 object provides the calling application with data about the term
of coverage of a borrower, for the requested product. Note that this object will
only be present if the request has specified "ShowBorrowerInfo" : true,
and a valid birthdate was provided.
Fields:
🔸Birthday,🔸AgeAtIssue,🔸AgeAtMaturity,🔸Pmts,🔸Months,🔸Maturity,🔸NoteObjects:
None
🔸 Data.Protection.Level.Borrower1.Birthday
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-MM-DD |
The birthday associated with the borrower, as specified in the request.
🔸 Data.Protection.Level.Borrower1.AgeAtIssue
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-MM-DD |
If coverage is written on this borrower, then the value of this field represents
the age at issue of the borrower in a special date-like format of YYYY-MM-DD,
where the borrower is YYYY years, MM months, and DD days old when coverage
begins.
🔸 Data.Protection.Level.Borrower1.AgeAtMaturity
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-MM-DD |
If coverage is written on this borrower, then the value of this field represents
the age at maturity of the borrower in a special date-like format of
YYYY-MM-DD, where the borrower is YYYY years, MM months, and DD days old
when coverage terminates.
🔸 Data.Protection.Level.Borrower1.Pmts
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
The term of coverage expressed as a number of payments.
🔸 Data.Protection.Level.Borrower1.Months
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
The term of coverage expressed as a number of months.
🔸 Data.Protection.Level.Borrower1.Maturity
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-MM-DD |
The coverage maturity date for this particular borrower.
🔸 Data.Protection.Level.Borrower1.Note
| Type | Required | Values |
|---|---|---|
| String | yes | Text - See below |
The value of this field will describe the type of coverage provided. If full
term coverage has been provided, then the note will contain Full Coverage.
Otherwise, the note will describe the type of truncated coverage used.
🟦 Data.Protection.Level.Borrower2
| Type | Required |
|---|---|
| Object | no |
The Borrower2 object provides the calling application with data about the term
of coverage of a borrower, for the requested product. Note that this object will
only be present if the request has specified "ShowBorrowerInfo" : true,
and a valid birthdate was provided.
Fields:
🔸Birthday,🔸AgeAtIssue,🔸AgeAtMaturity,🔸Pmts,🔸Months,🔸Maturity,🔸NoteObjects:
None
🔸 Data.Protection.Level.Borrower2.Birthday
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-MM-DD |
The birthday associated with the borrower, as specified in the request.
🔸 Data.Protection.Level.Borrower2.AgeAtIssue
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-MM-DD |
If coverage is written on this borrower, then the value of this field represents
the age at issue of the borrower in a special date-like format of YYYY-MM-DD,
where the borrower is YYYY years, MM months, and DD days old when coverage
begins.
🔸 Data.Protection.Level.Borrower2.AgeAtMaturity
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-MM-DD |
If coverage is written on this borrower, then the value of this field represents
the age at maturity of the borrower in a special date-like format of
YYYY-MM-DD, where the borrower is YYYY years, MM months, and DD days old
when coverage terminates.
🔸 Data.Protection.Level.Borrower2.Pmts
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
The term of coverage expressed as a number of payments.
🔸 Data.Protection.Level.Borrower2.Months
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
The term of coverage expressed as a number of months.
🔸 Data.Protection.Level.Borrower2.Maturity
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-MM-DD |
The coverage maturity date for this particular borrower.
🔸 Data.Protection.Level.Borrower2.Note
| Type | Required | Values |
|---|---|---|
| String | yes | Text - See below |
The value of this field will describe the type of coverage provided. If full
term coverage has been provided, then the note will contain Full Coverage.
Otherwise, the note will describe the type of truncated coverage used.
🟦 Data.Protection.Level.Caps
| Type | Required |
|---|---|
| Object | no |
The Caps object provides the calling application with data about the maximum
terms, amounts, and ages associated with the requested product. This object will
only be present if the ShowCaps
field of the Protection request object is set
to true.
Fields:
🔸Cov,🔸Ben,🔸Term,🔸InceptAge,🔸AttainAgeObjects:
None
🔸 Data.Protection.Level.Caps.Cov
| Type | Required | Values |
|---|---|---|
| String | yes | Currency >= 0 |
Contains the maximum aggregate coverage amount. If no cap is present or applicable, then a value of zero is returned.
🔸 Data.Protection.Level.Caps.Ben
| Type | Required | Values |
|---|---|---|
| String | yes | Currency >= 0 |
Contains the maximum monthly benefit amount. If no cap is present or applicable, then a value of zero is returned.
🔸 Data.Protection.Level.Caps.Term
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
Contains the maximum coverage term, expressed in months. If no cap is present or applicable, then a value of zero is returned.
🔸 Data.Protection.Level.Caps.InceptAge
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
Contains the maximum age a borrower may be at loan inception, expressed in years. If no cap is present or applicable, then a value of zero is returned.
🔸 Data.Protection.Level.Caps.AttainAge
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
Contains the maximum age a borrower may attain during the term of the loan, expressed in years. If no cap is present or applicable, then a value of zero is returned.
🟦 Data.Protection.Disability
| Type | Required |
|---|---|
| Object | no |
If disability protection was requested with the loan and decreasing disability was
configured for this loan type, then the Life object will be present in the
response to return information on decreasing disability coverage.
Fields:
🔸Result,🔸Formula,🔸RateTypeObjects:
🟦 Cost,🟦 Coverage,🟦 Term,🟦 Borrower1,🟦 Borrower2
🔸 Data.Protection.Disability.Result
| Type | Required | Values |
|---|---|---|
| String | yes | Text - See below |
This field contains the calculation result for the requested protection product.
If it contains a value of Valid Calculation, then the requested product was
computed and factored into the loan. Parse the other fields and child objects
for further details.
A value other than Valid Calculation means that the requested product was
not computed with the loan, and the value describes why. In this case, there is
no need to parse through the other fields or child objects, as the product was
not computed.
🔸 Data.Protection.Disability.Formula
| Type | Required | Values |
|---|---|---|
| String | yes | Text - See table |
The Formula field contains an abbreviated description of the formula used to
compute the desired protection product. The formula codes are for the use of the
J. L. Sherman and Associates, Inc. support team.
🔸 Data.Protection.Disability.RateType
| Type | Required | Values |
|---|---|---|
| String | yes | Fixed, Variable |
This field will only be present in the response if the protection product has
been configured to allow for coverage to switch from joint to single during the
term of coverage, should one of the borrowers exceed an age at termination cap.
If the field is not present, then a value of Fixed should be assumed as only
one rate has been used in the protection calculation.
If this field is present, then there is the possibility that the rate used to
compute the protection may have changed (in the case of coverage for one
borrower ending while coverage for the other borrower continues). If this is the
case, then the field will indicate this rate change with a value of Variable.
🟦 Data.Protection.Disability.Cost
| Type | Required |
|---|---|
| Object | yes |
Fields of this object provide the cost of the protection product in total, per payment, and per day. It also provides the rate factor used to compute the premiums.
Fields:
🔸Premium,🔸PerPmt,🔸PerDay,🔸Factor,Objects:
None
🔸 Data.Protection.Disability.Cost.Premium
| Type | Required | Values |
|---|---|---|
| String | yes | Currency >= 0 |
The total cost for this protection over the term of the loan.
🔸 Data.Protection.Disability.Cost.PerPmt
| Type | Required | Values |
|---|---|---|
| String | yes | Currency >= 0 |
The cost of coverage expressed as currency per payment.
🔸 Data.Protection.Disability.Cost.PerDay
| Type | Required | Values |
|---|---|---|
| String | yes | Currency >= 0 |
The cost of coverage expressed as currency per dey.
🔸 Data.Protection.Disability.Cost.Factor
| Type | Required | Values |
|---|---|---|
| String | yes | Number >= 0 |
The rate factor used to compute the premium for the requested protection product.
🟦 Data.Protection.Disability.Coverage
| Type | Required |
|---|---|
| Object | yes |
The aggregate coverage amount and note are provided in the following fields of this object:
Objects:
None
🔸 Data.Protection.Disability.Coverage.Amount
| Type | Required | Values |
|---|---|---|
| String | yes | Currency >= 0 |
The aggregate coverage amount for this protection product.
🔸 Data.Protection.Disability.Coverage.Note
| Type | Required | Values |
|---|---|---|
| String | yes | Text - See below |
The Note field will describe the type of coverage provided. If full coverage
has been provided on the aggregate coverage, then the note will contain Full Coverage. Otherwise, the note will describe the type of partial coverage used.
🟦 Data.Protection.Disability.Benefit
| Type | Required |
|---|---|
| Object | yes |
The protection product's benefit amount and note are provided in the following fields of this object:
Fields:
🔸Amount,🔹Periodic,🔸NoteObjects:
None
🔸 Data.Protection.Disability.Benefit.Amount
| Type | Required | Values |
|---|---|---|
| String | yes | Currency >= 0 |
The monthly benefit amount for this protection product.
🔹 Data.Protection.Disability.Benefit.Periodic
| Type | Required | Values |
|---|---|---|
| String | no | Currency >= 0 |
If the account has been configured to disclose periodic benefits (as opposed
to monthly benefit amounts, which are returned in the Amount field
described above), and if the specified payment frequency is other than monthly,
then this field will be present and will hold the periodic benefit amount.
🔸 Data.Protection.Disability.Benefit.Note
| Type | Required | Values |
|---|---|---|
| String | yes | Text - See below |
The Note field describes the type of coverage provided. If full coverage has
been provided on the benefit, then the note will contain Full Coverage.
Otherwise, the note will describe the type of partial coverage used.
🟦 Data.Protection.Disability.Term
| Type | Required |
|---|---|
| Object | no |
The Term object provides the calling application with data about the term of
coverage for the requested product. If the input request has specified
"ShowBorrowerInfo" : true, then this
object will not be present.
Fields:
🔸InMonths,🔸InPmts,🔸Maturity,🔸NoteObjects:
None
🔸 Data.Protection.Disability.Term.InMonths
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
Contains the term of coverage expressed as a number of months.
🔸 Data.Protection.Disability.Term.InPmts
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
Contains the number of payments covered.
🔸 Data.Protection.Disability.Term.Maturity
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-MM-DD |
This field contains the maturity date for the requested coverage.
🔸 Data.Protection.Disability.Term.Note
| Type | Required | Values |
|---|---|---|
| String | yes | Text - See below |
The Note field will describe the type of coverage provided. If
full term coverage has been provided, then the note will contain
Full Coverage. Otherwise, the note will describe the type of truncated
coverage used.
🟦 Data.Protection.Disability.Borrower1
| Type | Required |
|---|---|
| Object | no |
The Borrower1 object provides the calling application with data about the term
of coverage of a borrower, for the requested product. Note that this object will
only be present if the request has specified "ShowBorrowerInfo" : true,
and a valid birthdate was provided.
Fields:
🔸Birthday,🔸AgeAtIssue,🔸AgeAtMaturity,🔸Pmts,🔸Months,🔸Maturity,🔸NoteObjects:
None
🔸 Data.Protection.Disability.Borrower1.Birthday
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-MM-DD |
The birthday associated with the borrower, as specified in the request.
🔸 Data.Protection.Disability.Borrower1.AgeAtIssue
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-MM-DD |
If coverage is written on this borrower, then the value of this field represents
the age at issue of the borrower in a special date-like format of YYYY-MM-DD,
where the borrower is YYYY years, MM months, and DD days old when coverage
begins.
🔸 Data.Protection.Disability.Borrower1.AgeAtMaturity
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-MM-DD |
If coverage is written on this borrower, then the value of this field represents
the age at maturity of the borrower in a special date-like format of
YYYY-MM-DD, where the borrower is YYYY years, MM months, and DD days old
when coverage terminates.
🔸 Data.Protection.Disability.Borrower1.Pmts
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
The term of coverage expressed as a number of payments.
🔸 Data.Protection.Disability.Borrower1.Months
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
The term of coverage expressed as a number of months.
🔸 Data.Protection.Disability.Borrower1.Maturity
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-MM-DD |
The coverage maturity date for this particular borrower.
🔸 Data.Protection.Disability.Borrower1.Note
| Type | Required | Values |
|---|---|---|
| String | yes | Text - See below |
The value of this field will describe the type of coverage provided. If full
term coverage has been provided, then the note will contain Full Coverage.
Otherwise, the note will describe the type of truncated coverage used.
🟦 Data.Protection.Disability.Borrower2
| Type | Required |
|---|---|
| Object | no |
The borrower2 object provides the calling application with data about the term
of coverage of a borrower, for the requested product. Note that this object will
only be present if the request has specified "ShowBorrowerInfo" : true,
and a valid birthdate was provided.
Fields:
🔸Birthday,🔸AgeAtIssue,🔸AgeAtMaturity,🔸Pmts,🔸Months,🔸Maturity,🔸NoteObjects:
None
🔸 Data.Protection.Disability.Borrower2.Birthday
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-MM-DD |
The birthday associated with the borrower, as specified in the request.
🔸 Data.Protection.Disability.Borrower2.AgeAtIssue
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-MM-DD |
If coverage is written on this borrower, then the value of this field represents
the age at issue of the borrower in a special date-like format of YYYY-MM-DD,
where the borrower is YYYY years, MM months, and DD days old when coverage
begins.
🔸 Data.Protection.Disability.Borrower2.AgeAtMaturity
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-MM-DD |
If coverage is written on this borrower, then the value of this field represents
the age at maturity of the borrower in a special date-like format of
YYYY-MM-DD, where the borrower is YYYY years, MM months, and DD days old
when coverage terminates.
🔸 Data.Protection.Disability.Borrower2.Pmts
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
The term of coverage expressed as a number of payments.
🔸 Data.Protection.Disability.Borrower2.Months
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
The term of coverage expressed as a number of months.
🔸 Data.Protection.Disability.Borrower2.Maturity
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-MM-DD |
The coverage maturity date for this particular borrower.
🔸 Data.Protection.Disability.Borrower2.Note
| Type | Required | Values |
|---|---|---|
| String | yes | Text - See below |
The value of this field will describe the type of coverage provided. If full
term coverage has been provided, then the note will contain Full Coverage.
Otherwise, the note will describe the type of truncated coverage used.
🟦 Data.Protection.Disability.Caps
| Type | Required |
|---|---|
| Object | no |
The Caps object provides the calling application with data about the maximum
terms, amounts, and ages associated with the requested product. This object will
only be present if the ShowCaps
field of the Protection request object is set
to true.
Fields:
🔸Cov,🔸Ben,🔸Term,🔸InceptAge,🔸AttainAgeObjects:
None
🔸 Data.Protection.Disability.Caps.Cov
| Type | Required | Values |
|---|---|---|
| String | yes | Currency >= 0 |
Contains the maximum aggregate coverage amount. If no cap is present or applicable, then a value of zero is returned.
🔸 Data.Protection.Disability.Caps.Ben
| Type | Required | Values |
|---|---|---|
| String | yes | Currency >= 0 |
Contains the maximum monthly benefit amount. If no cap is present or applicable, then a value of zero is returned.
🔸 Data.Protection.Disability.Caps.Term
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
Contains the maximum coverage term, expressed in months. If no cap is present or applicable, then a value of zero is returned.
🔸 Data.Protection.Disability.Caps.InceptAge
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
Contains the maximum age a borrower may be at loan inception, expressed in years. If no cap is present or applicable, then a value of zero is returned.
🔸 Data.Protection.Disability.Caps.AttainAge
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
Contains the maximum age a borrower may attain during the term of the loan, expressed in years. If no cap is present or applicable, then a value of zero is returned.
🟦 Data.AmTable
| Type | Required |
|---|---|
| Object | no |
This object contains fields which summarize and describe the loan's amortization
schedule. If
Settings.ShowAmTable is set to
false, then this object will not be found in the response.
Fields:
🔹Months,🔹Weeks,🔹OddDaysObjects:
🟦 GrandTotals,🟦 SubTotals[],🟥 AmLines[]
🔹 Data.AmTable.AvgBal
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Currency >= 0 | n/a |
This field will only appear if a Canadian APR is disclosed for the computed loan. The value of this field is the average balance of the loan used in the Canadian APR calculation.
🔹 Data.AmTable.Months
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Integer >= 0 | n/a |
This field will only appear if a Canadian APR is disclosed for the computed loan. The value of this field is the whole number of months in the term of the loan used in the Canadian APR calculation. Note that the term is expressed in monthly or weekly units, but never both.
🔹 Data.AmTable.Weeks
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Integer >= 0 | n/a |
This field will only appear if a Canadian APR is disclosed for the computed loan. The value of this field is the whole number of weeks in the term of the loan used in the Canadian APR calculation. Note that the term is expressed in monthly or weekly units, but never both.
🔹 Data.AmTable.OddDays
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Integer >= 0 | n/a |
This field will only appear if a Canadian APR is disclosed for the computed loan. The value of this field is the number of odd days in the term of the loan used in the Canadian APR calculation. Odd days are computed by moving backwards from the maturity date the number of disclosed months or weeks, and then counting the additional number of days required to land on the loan date.
🟦 Data.AmTable.GrandTotals
| Type | Required |
|---|---|
| Object | no |
This object describes the total amounts of various categories throughout the life of the loan. As an example, the total amount paid to interest and principal, as well as the total of payments are all contained in fields of this object.
Fields:
🔸PmtTot,🔸IntTot,🔸PrinTot,🔹CLTot,🔹AHTotObjects:
None
🔸 Data.AmTable.GrandTotals.PmtTot
| Type | Required | Values |
|---|---|---|
| String | yes | Currency |
The total of payments scheduled for the computed loan.
🔸 Data.AmTable.GrandTotals.IntTot
| Type | Required | Values |
|---|---|---|
| String | yes | Currency |
The total amount paid to interest over the life of the loan, assuming all payments are made as scheduled.
🔸 Data.AmTable.GrandTotals.PrinTot
| Type | Required | Values |
|---|---|---|
| String | yes | Currency |
This field contains the total amount paid to principal during the loan term, assuming all payments are made as scheduled.
🔹 Data.AmTable.GrandTotals.CLTot
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Currency >= 0 | n/a |
The CLTot field will only appear on loans with certain types of life
protection products, such as those based on a monthly outstanding balance. It
contains the total amount paid for life over the duration of the loan.
🔹 Data.AmTable.GrandTotals.AHTot
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Currency >= 0 | n/a |
The AHTot field will only appear on loans with certain types of disability or
debt protection products, such as those based on a monthly outstanding balance.
It contains the total amount paid for this protection over the duration of the
loan.
🟦 Data.AmTable.SubTotals[]
| Type | Required |
|---|---|
| Array of SubTotal Objects | no |
Describes the total amounts of various categories paid during a given calendar year.
For each year in which the computed loan has scheduled payments, there will be
a SubTotal object in the array.
Fields:
🔸Year,🔸Start,🔸Events,🔸PmtSub,🔸IntSub,🔸PrinSub,🔹CLSub,🔹AHSubObjects:
None
🔸 Data.AmTable.SubTotals[].Year
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
The calendar year for which the subtotal data is applicable.
🔸 Data.AmTable.SubTotals[].Start
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
This field defines the first amortization event which falls in the specified
calendar year. To find the AmLines[] object which corresponds to
this value, match the Idx field of the AmLine
object.
🔸 Data.AmTable.SubTotals[].Events
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
This field defines the number of amortization events which belong to this calendar year.
🔸 Data.AmTable.SubTotals[].PmtSub
| Type | Required | Values |
|---|---|---|
| String | yes | Currency |
Contains the total of payments scheduled for the calendar year.
🔸 Data.AmTable.SubTotals[].IntSub
| Type | Required | Values |
|---|---|---|
| String | yes | Currency |
Holds the total amount paid to interest over the calendar year, assuming all payments are made as scheduled.
🔸 Data.AmTable.SubTotals[].PrinSub
| Type | Required | Values |
|---|---|---|
| String | yes | Currency |
Contains the total amount paid to principal during the calendar year, assuming all payments are made as scheduled.
🔹 Data.AmTable.SubTotals[].CLSub
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Currency >= 0 | n/a |
The CLSub field will only appear on loans with certain types of life
protection products, such as those based on a monthly outstanding balance. It
contains the total amount paid for life during the year.
🔹 Data.AmTable.SubTotals[].AHSub
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Currency >= 0 | n/a |
The AHSub field will only appear on loans with certain types of accident and
health or debt protection products, such as those based on a monthly outstanding
balance. It contains the total amount paid for this protection during the year.
🟥 Data.AmTable.AmLines[]
| Type | Required |
|---|---|
| Array of AmLine Objects | yes |
There is one AmLine object for each amortization event which occurs during
the life of a loan. Most of the time, each event will describe a payment, and
detail how that payment is applied (to interest, principal, loan protection
products, etc.). Some events, such as capitalizing interest, will not have
payments but will show how the loan amortizes.
Fields:
🔸Idx,🔸Date,🔸BegBal,🔸Pmt,🔸Int,🔸Prin,🔹CL,🔹AH,🔹UnpaidInt,🔸EndBalObjects:
None
🔸 Data.AmTable.AmLines[].Idx
| Type | Required | Values |
|---|---|---|
| String | yes | Integer >= 0 |
The index of the amortization event, which is either the payment number, or zero. A value of zero designates an event that is either not a payment or is a skipped payment.
🔸 Data.AmTable.AmLines[].Date
| Type | Required | Values |
|---|---|---|
| String | yes | YYYY-MM-DD |
The date on which the amortization event is scheduled to occur. All dates are in
the form of YYYY-MM-DD, and must be 10 characters long.
🔸 AmData.AmTable.AmLines[]ine.BegBal
| Type | Required | Values |
|---|---|---|
| String | yes | Currency >= 0 |
The principal balance before the amortization event occurs.
🔸 Data.AmTable.AmLines[].Pmt
| Type | Required | Values |
|---|---|---|
| String | yes | Currency |
The payment amount for this event.
🔸 Data.AmTable.AmLines[].Int
| Type | Required | Values |
|---|---|---|
| String | yes | Currency |
The amount of interest paid at this event.
🔸 Data.AmTable.AmLines[].Prin
| Type | Required | Values |
|---|---|---|
| String | yes | Currency |
The amount of principal paid at this event.
🔹 Data.AmTable.AmLines[].CL
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Currency >= 0 | n/a |
The CL field will only appear on loans with certain types of life protection
products, such as those based on a monthly outstanding balance. It contains the
amount of the payment which is marked for life coverage.
🔹 Data.AmTable.AmLines[].AH
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Currency >= 0 | n/a |
The AH field will only appear on loans with certain types of accident and
health or debt protection products, such as those based on a monthly outstanding
balance. It contains the amount of the payment which is marked for disability /
debt protection coverage.
🔹 Data.AmTable.AmLines[].UnpaidInt
| Type | Required | Values | Default |
|---|---|---|---|
| String | no | Currency >= 0 | n/a |
This field will only appear on an amortization line when interest has been accrued, but has not yet been paid or added to the principal balance. If the interest accrued has not yet been rounded, then the unpaid interest will be displayed to four (4) decimal placed. If rounded, then the unpaid interest is displayed to two (2) decimal places.
🔸 Data.AmTable.AmLines[].EndBal
| Type | Required | Values |
|---|---|---|
| String | yes | Currency |
The principal balance amount, after the amortization event has taken place.