Equal Payment Loan Module - Response

The Data object for a response from the EqualPmt module is defined below, in the order the fields are returned:

ObjectFields
🟥 Data🔹Country
|- 🟥 Errors[]
|- 🟥 Warnings[]
|- 🟦 Results🔹Proceeds, 🔸Payment, 🔹Final, 🔹Term
|- 🟦 FedBox🔸AmtFin, 🔸FinChg, 🔸TotPmts, 🔹TotalSalePrice
|- |- 🟥 APR🔸Value, 🔹Max, 🔹MaxExceeded, 🔸Type
|- |- 🟦 MAPR🔸Value, 🔸Advance, 🔸Max, 🔸MaxExceeded
|- 🟦 TILARESPA2015🔸TotalLoanCost, 🔸CD_TotPmts, 🔸TIP
|- |- 🟥 LoanCosts[]🔹Name, 🔹In5Years, 🔸Value
|- |- 🟥 In5Years🔸PaidTotal, 🔸PaidPrincipal
|- |- 🟥 MaxPnIPmt🔸Date, 🔸Amount
|- |- 🟥 MinRate🔸Rate, 🔸Idx
|- |- 🟥 MaxRate🔸Rate, 🔸Idx
|- |- 🟥 ProjectedPaymentsTable[]🔸Num, 🔸Title, 🔸YearStart, 🔸YearEnd, 🔸PnIPmtMin, 🔸PnIPmtMax, 🔸IntOnly, 🔸Balloon, 🔸MIPmt, 🔸TotalPmtMin, 🔸TotalPmtMax
|- 🟦 Moneys🔸Principal, 🔸Interest, 🔹ConstructInterest, 🔹FinFees, 🔹Prepaid, 🔹PocketFees, 🔹MAPRFees, 🔹PMI_Fee, 🔹MinIntChgAdj, 🔹MinFinChgAdj
|- |- 🟦 ODI🔹AddToPmt, 🔸Count, 🔸Fee, 🔹Months, 🔹DailyCost
|- |- 🟦 Fees[]🔹Name, 🔸Fee
|- |- 🟦 ServiceCharges[]🔹Name, 🔸Fee
|- |- 🟦 Protection🔸Cost, 🔸PerPmt, 🔸PerDay, 🔸Category, 🔹IsDP, 🔹Mandatory
|- 🟦 Accrual🔸Method, 🔸Days1Pmt, 🔸DayCount, 🔸Maturity
|- 🟦 PMI🔸Rate, 🔸LTV, 🔸PremiumPerYear, 🔸PremiumPerPeriod, 🔹IndexToWarn, 🔹IndexToRemove
|- 🟦 PmtStreams[]🔸Term, 🔸Pmt, 🔹Rate, 🔸Begin
|- 🟦 Protection
|- |- 🟦 Life🔸Result, 🔸Formula, 🔸RateType
|- |- |- 🟥 Cost🔸Premium, 🔸PerPmt, 🔸PerDay, 🔸Factor, 🔹Premium2, 🔹PerPmt2, 🔹PerDay2, 🔹Factor2
|- |- |- 🟥 Coverage🔸Amount, 🔸Note
|- |- |- 🟦 Term🔸InMonths, 🔸InPmts, 🔸Maturity, 🔸Note
|- |- |- 🟦 Borrower1🔸Birthday, 🔸AgeAtIssue, 🔸AgeAtMaturity, 🔸Pmts, 🔸Months, 🔸Maturity, 🔸Note
|- |- |- 🟦 Borrower2🔸Birthday, 🔸AgeAtIssue, 🔸AgeAtMaturity, 🔸Pmts, 🔸Months, 🔸Maturity, 🔸Note
|- |- |- 🟦 Caps🔸Cov, 🔸Ben, 🔸Term, 🔸InceptAge, 🔸AttainAge
|- |- 🟦 Level🔸Result, 🔸Formula
|- |- |- 🟥 Cost🔸Premium, 🔸PerPmt, 🔸PerDay, 🔸Factor, 🔹Premium2, 🔹PerPmt2, 🔹PerDay2, 🔹Factor2
|- |- |- 🟥 Coverage🔸Amount, 🔸Note
|- |- |- 🟦 Term🔸InMonths, 🔸InPmts, 🔸Maturity, 🔸Note
|- |- |- 🟦 Borrower1🔸Birthday, 🔸AgeAtIssue, 🔸AgeAtMaturity, 🔸Pmts, 🔸Months, 🔸Maturity, 🔸Note
|- |- |- 🟦 Borrower2🔸Birthday, 🔸AgeAtIssue, 🔸AgeAtMaturity, 🔸Pmts, 🔸Months, 🔸Maturity, 🔸Note
|- |- |- 🟦 Caps🔸Cov, 🔸Ben, 🔸Term, 🔸InceptAge, 🔸AttainAge
|- |- 🟥 Disability🔸Result, 🔸Formula, 🔸RateType
|- |- |- 🟥 Cost🔸Premium, 🔸PerPmt, 🔸PerDay, 🔸Factor
|- |- |- 🟥 Coverage🔸Amount, 🔸Note
|- |- |- 🟥 Benefit🔸Amount, 🔹Periodic, 🔸Note
|- |- |- 🟦 Term🔸InMonths, 🔸InPmts, 🔸Maturity, 🔸Note
|- |- |- 🟦 Borrower1🔸Birthday, 🔸AgeAtIssue, 🔸AgeAtMaturity, 🔸Pmts, 🔸Months, 🔸Maturity, 🔸Note
|- |- |- 🟦 Borrower2🔸Birthday, 🔸AgeAtIssue, 🔸AgeAtMaturity, 🔸Pmts, 🔸Months, 🔸Maturity, 🔸Note
|- |- |- 🟦 Caps🔸Cov, 🔸Ben, 🔸Term, 🔸InceptAge, 🔸AttainAge
|- |- 🟥 Unemployment🔸Result, 🔸Formula, 🔸RateType
|- |- |- 🟥 Cost🔸Premium, 🔸PerPmt, 🔸PerDay, 🔸Factor
|- |- |- 🟥 Coverage🔸Amount, 🔸Note
|- |- |- 🟥 Benefit🔸Amount, 🔹Periodic, 🔸Note
|- |- |- 🟦 Term🔸InMonths, 🔸InPmts, 🔸Maturity, 🔸Note
|- |- |- 🟦 Borrower1🔸Birthday, 🔸AgeAtIssue, 🔸AgeAtMaturity, 🔸Pmts, 🔸Months, 🔸Maturity, 🔸Note
|- |- |- 🟦 Borrower2🔸Birthday, 🔸AgeAtIssue, 🔸AgeAtMaturity, 🔸Pmts, 🔸Months, 🔸Maturity, 🔸Note
|- |- |- 🟦 Caps🔸Cov, 🔸Ben, 🔸Term, 🔸InceptAge, 🔸AttainAge
|- |- 🟥 Property🔸Result, 🔸Formula
|- |- |- 🟥 Cost🔸Premium, 🔸PerPmt, 🔸PerDay, 🔸Factor
|- |- |- 🟥 Coverage🔸Amount, 🔸Note
|- |- |- 🟦 Term🔸InMonths, 🔸InPmts, 🔸Maturity, 🔸Note
|- |- |- 🟦 Borrower1🔸Birthday, 🔸AgeAtIssue, 🔸AgeAtMaturity, 🔸Pmts, 🔸Months, 🔸Maturity, 🔸Note
|- |- |- 🟦 Borrower2🔸Birthday, 🔸AgeAtIssue, 🔸AgeAtMaturity, 🔸Pmts, 🔸Months, 🔸Maturity, 🔸Note
|- |- |- 🟦 Caps🔸Cov, 🔸Ben, 🔸Term, 🔸InceptAge, 🔸AttainAge
|- 🟦 AmTable🔹Months, 🔹Weeks, 🔹OddDays
|- |- 🟦 GrandTotals🔸PmtTot, 🔸IntTot, 🔸PrinTot, 🔹CLTot, 🔹AHTot, 🔹IUTot, 🔹PMITot, 🔹SCTot
|- |- 🟦 SubTotals[]🔸Year, 🔸Start, 🔸Events, 🔸PmtSub, 🔸IntSub, 🔸PrinSub, 🔹CLSub, 🔹AHSub, 🔹IUSub, 🔹PMISub, 🔹SCSub
|- |- 🟥 AmLines[]🔸Idx, 🔸Date, 🔸BegBal, 🔸Pmt, 🔸Int, 🔸Prin, 🔹CL, 🔹AH, 🔹IU, 🔹PMI, 🔹SC, 🔹UnpaidInt, 🔸EndBal

🟥 Data

TypeRequired
Objectyes

The Data object encapsulates the response data for a given module, and will always be present.

Fields: 🔹Country

Objects: 🟥 Errors[], 🟥 Warnings[], 🟥 Results, 🟦 FedBox, 🟦 TILARESPA2015, 🟦 Moneys, 🟦 Accrual, 🟦 PMI, 🟦 PmtStreams[], 🟦 Protection, 🟦 AmTable

🔹 Data.Country

TypeRequiredValuesDefault
StringnoAlpha-2 or Numeric-3 codeUS

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[]

TypeRequired
Array of Stringyes

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[]

TypeRequired
Array of Stringyes

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" : "EqualPmt",
  "Data" : {
    "//" : "This is a comment.",
    "Hello" : "Friend!",
    "How" : "are you?",
    "IntRate" : "4.50",
    "Proceeds" : "5000.00",
    "Term" : "12"
  }
}
{
  "Result" : 200,
  "Module" : "EqualPmt",
  "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

TypeRequired
Objectno

This field(s) of this object represent the most important numerical results for the loan request.

Fields: 🔹Proceeds, 🔸Payment, 🔹Final, 🔹Term

Objects: None

🔹 Data.Results.Proceeds

TypeRequiredValuesDefault
StringnoCurrencyn/a

If the EqualPmt request indicated that the Proceeds be computed (by specifying the IntRate, Term, and Payment), then the computed proceeds will be disclosed in this field.

If the EqualPmt request was to compute the Payment or Term, then this field will not be included in the response.

🔸 Data.Results.Payment

TypeRequiredValues
StringyesCurrency

The regular payment for the equal payment loan.

🔹 Data.Results.Final

TypeRequiredValues
StringnoCurrency

If the equal payment loan features an odd final payment (see Settings.OddFinal) which amortizes the loan to zero, then this field will be present.

🔹 Data.Results.Term

TypeRequiredValuesDefault
StringnoIntegern/a

If the EqualPmt request indicated that the Term be computed (by specifying the IntRate, Proceeds, and Payment), then the computed Term will be disclosed in this field. Note that the value of this field represents the largest loan term to produce a payment less than or equal to the specified payment.

If the EqualPmt request was to compute the Payment or Proceeds, then this field will not be included in the response.


🟦 Data.FedBox

TypeRequired
Objectno

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

Objects: 🟥 APR, 🟦 MAPR

🔸 Data.FedBox.AmtFin

TypeRequiredValue
StringyesCurrency > 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

TypeRequiredValue
StringyesCurrency

This element contains the Regulation Z Finance Charge, described as the dollar amount the credit extension will cost the borrower.

🔸 Data.FedBox.TotPmts

TypeRequiredValue
StringyesCurrency > 0.0

The amount which the borrower will have paid when the borrower has made all scheduled payments.

🔹 Data.FedBox.TotalSalePrice

TypeRequiredValue
StringyesCurrency > 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

TypeRequired
Objectyes

The APR object contains fields which return the value and APR method used.

Fields: 🔸Value, 🔹Max, 🔹MaxExceeded, 🔸Type

Objects: None

🔸 Data.FedBox.APR.Value

TypeRequiredValue
StringyesNumber

The computed APR, which is the cost of the extension of credit expressed as a yearly rate.

🔹 Data.FedBox.APR.Max

TypeRequiredValueDefault
StringnoNumbern/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

TypeRequiredValueDefault
Booleannotrue, falsen/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

TypeRequiredValue
StringyesText

This field returns the APR method used to compute the reported APR.


🟦 Data.FedBox.MAPR

TypeRequired
Objectno

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, 🔸MaxExceeded

Objects: None

🔸 Data.FedBox.MAPR.Value

TypeRequiredValue
StringyesNumber

The computed military APR.

🔸 Data.FedBox.MAPR.Advance

TypeRequiredValue
StringyesCurrency > 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

TypeRequiredValue
StringyesNumber

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

TypeRequiredValue
Booleanyestrue, 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

TypeRequired
Objectno

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, 🔸TIP

Objects: 🟥 LoanCosts[], 🟥 In5Years, 🟥 MaxPnIPmt, 🟥 MinRate, 🟥 MaxRate, 🟥 ProjectedPaymentsTable[]

🔸 Data.TILARESPA2015.TotalLoanCost

TypeRequiredValue
StringyesCurrency > 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

TypeRequiredValue
StringyesCurrency > 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

TypeRequiredValue
StringyesNumber

The total interest percentage, rounded to three or fewer decimal places - as required.


🟥 Data.TILARESPA2015.LoanCosts[]

TypeRequired
Array of LoanCost Objectsyes

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, 🔸Value

Objects: None

🔹 Data.TILARESPA2015.LoanCosts[].Name

TypeRequiredValueDefault
StringnoTextn/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

TypeRequiredValueDefault
StringnoCurrency >= 0Same 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

TypeRequiredValue
StringyesCurrency >= 0

The value of this field is the numerical value of the fee, rounded to the nearest dollar.


🟥 Data.TILARESPA2015.In5Years

TypeRequired
Objectyes

This object contains all important values required for the new "In 5 Years" section of the disclosure.

Fields: 🔸PaidTotal, 🔸PaidPrincipal

Objects: None

🔸 Data.TILARESPA2015.In5Years.PaidTotal

TypeRequiredValue
StringyesCurrency >= 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

TypeRequiredValue
StringyesCurrency >= 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

TypeRequired
Objectyes

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.

Fields: 🔸Date, 🔸Amount

Objects: None

🔸 Data.TILARESPA2015.MaxPnIPmt.Date

TypeRequiredValue
StringyesYYYY-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

TypeRequiredValue
StringyesCurrency >= 0

The maximum sceduled principal and interest payment during the term of the loan.


🟥 Data.TILARESPA2015.MinRate

TypeRequired
Objectyes

The fields of this object hold information regarding the minimum possible interest rate applied during the term of the loan.

Fields: 🔸Rate, 🔸Idx

Objects: None

🔸 Data.TILARESPA2015.MinRate.Rate

TypeRequiredValue
StringyesNumber

The value of the minimum interest rate applied during the term of the loan.

🔸 Data.TILARESPA2015.MinRate.Idx

TypeRequiredValue
StringyesInteger > 0

This field returns the payment number for which the minimum rate is first applicable.


🟥 Data.TILARESPA2015.MaxRate

TypeRequired
Objectyes

The fields of this object hold information regarding the maximum possible interest rate applied during the term of the loan.

Fields: 🔸Rate, 🔸Idx

Objects: None

🔸 Data.TILARESPA2015.MaxRate.Rate

TypeRequiredValue
StringyesNumber

The value of the maximum interest rate applied during the term of the loan.

🔸 Data.TILARESPA2015.MaxRate.Idx

TypeRequiredValue
StringyesInteger > 0

This field returns the payment number for which the maximum rate is first applicable.


🟥 Data.TILARESPA2015.ProjectedPaymentsTable[]

TypeRequired
Array of PPCol Objectsyes

Fields: 🔸Num, 🔸Title, 🔸YearStart, 🔸YearEnd, 🔸PnIPmtMin, 🔸PnIPmtMax, 🔸IntOnly, 🔸Balloon, 🔸MIPmt, 🔸TotalPmtMin, 🔸TotalPmtMax

Objects: 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

TypeRequiredValue
StringyesInteger 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

TypeRequiredValue
StringyesText

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

TypeRequiredValue
StringyesInteger

The beginning year number for which this column data applies.

🔸 Data.TILARESPA2015.ProjectedPaymentsTable[].YearEnd

TypeRequiredValue
StringyesInteger

The ending year number for which this column data applies.

🔸 Data.TILARESPA2015.ProjectedPaymentsTable[].PnIPmtMin

TypeRequiredValue
StringyesCurrency > 0

The minimum principal and interest payment for this column.

🔸 Data.TILARESPA2015.ProjectedPaymentsTable[].PnIPmtMax

TypeRequiredValue
StringyesCurrency > 0

The maximum principal and interest payment for this column.

🔸 Data.TILARESPA2015.ProjectedPaymentsTable[].IntOnly

TypeRequiredValue
Stringyesnone, 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

TypeRequiredValue
Booleanyestrue, 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

TypeRequiredValue
StringyesCurrency > 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

TypeRequiredValue
StringyesCurrency > 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

TypeRequiredValue
StringyesCurrency > 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

TypeRequired
Objectno

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, 🔹PMI_Fee, 🔹MinIntChgAdj, 🔹MinFinChgAdj

Objects: 🟦 ODI, 🟦 Fees[], 🟦 ServiceCharges[], 🟦 Protection

🔸 Data.Moneys.Principal

TypeRequiredValue
StringyesCurrency >= 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

TypeRequiredValue
StringyesCurrency

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

TypeRequiredValueDefault
StringnoCurrency >= 0.00

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

TypeRequiredValueDefault
StringnoCurrency >= 0.00

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

TypeRequiredValueDefault
StringnoCurrency >= 0.00

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

TypeRequiredValueDefault
StringnoCurrency >= 0.00

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

TypeRequiredValueDefault
StringnoCurrency >= 0.00

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

TypeRequiredValueDefault
StringnoCurrency >= 0.00

If PMI has been requested on the loan, and if a number of UpFront payments have been specified, then this field will return the total PMI fee for all up front payments.

🔹 Data.Moneys.MinIntChgAdj

TypeRequiredValueDefault
StringnoCurrency >= 0.00

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

TypeRequiredValueDefault
StringnoCurrency >= 0.00

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

TypeRequired
Objectno

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, 🔹DailyCost

Objects: None

🔹 Data.Moneys.ODI.AddToPmt

TypeRequiredValuesDefault
Booleannotrue, falsen/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

TypeRequiredValues
StringyesInteger >= 0

Discloses the number of odd days computed by the SCE for the requested loan.

🔸 Data.Moneys.ODI.Fee

TypeRequiredValue
StringyesCurrency >= 0

Discloses the total amount odd days interest charge.

🔹 Data.Moneys.ODI.Months

TypeRequiredValuesDefault
StringnoInteger >= 0n/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

TypeRequiredValueDefault
StringnoCurrency >= 0.0n/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[]

TypeRequired
Array of Fee Objectsno

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.

Fields: 🔹Name, 🔸Fee

Objects: None

🔹 Data.Moneys.Fees[].Name

TypeRequiredValuesDefault
StringnoTextempty

If a name was provided for the fee, then it will be included here in the disclosure for identification purposes.

🔸 Data.Moneys.Fees[].Fee

TypeRequiredValue
StringyesCurrency >= 0

Discloses the computed fee amount.


🟦 Data.Moneys.ServiceCharges[]

TypeRequired
Array of ServiceCharge Objectsno

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.

Fields: 🔹Name, 🔸Fee

Objects: None

🔹 Data.Moneys.ServiceCharges[].Name

TypeRequiredValuesDefault
StringnoTextempty

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

TypeRequiredValue
StringyesCurrency >= 0

Discloses the computed service charge amount.


🟦 Data.Moneys.Protection

TypeRequired
Objectno

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, 🔹Mandatory

Objects: None

🔸 Data.Moneys.Protection.Cost

TypeRequiredValue
StringyesCurrency >= 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

TypeRequiredValue
StringyesCurrency >= 0

The cost of all loan protection products expressed as dollars per payment.

🔸 Data.Moneys.Protection.PerDay

TypeRequiredValue
StringyesCurrency >= 0

The cost of all loan protection products expressed as dollars per day.

🔸 Data.Moneys.Protection.Category

TypeRequiredValues
StringyesNone, SP, MOB, TrueMOB, PaidSP

Te value of this field specifies the category under which the computed loan protection falls. The categories are described below:

CategoryDescription
NoneNo loan protection products were computed with this loan.
SPFinanced single premium coverage.
MOBMonthly outstanding balance coverage.
TrueMOBTruStage's monthly outstanding balance method.
PaidSPNon-financed single premium coverage.

🔹 Data.Moneys.Protection.IsDP

TypeRequiredValuesDefault
Booleannotrue, falsefalse

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

TypeRequiredValuesDefault
Booleannotrue, falsefalse

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

TypeRequired
Objectno

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, 🔸Maturity

Objects: None

🔸 Data.Accrual.Method

TypeRequiredValues
StringyesText

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

TypeRequiredValues
StringyesInteger >= 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

TypeRequiredValues
StringyesTrue360, 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

TypeRequiredValues
StringyesYYYY-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.PMI

TypeRequired
Objectno

The PMI object will only appear if PMI has been computed with the loan. Please note that the PMI premiums are not reflected in the amount reported in the Results.Payment field, the PmtStreams[] array, the FedBox.TotPmts field, nor the Pmt field of the AmTable.AmLines[] array.

Fields: 🔸Rate, 🔸LTV, 🔸PremiumPerYear, 🔸PremiumPerPeriod, 🔹IndexToWarn, 🔹IndexToRemove

Objects: None

🔸 Data.PMI.Rate

TypeRequiredValues
Stringyes% >= 0

The percentage rate used in the PMI calculation.

🔸 Data.PMI.LTV

TypeRequiredValues
Stringyes% >= 0

The loan to value ratio of the computed loan, expressed as a percentage.

🔸 Data.PMI.PremiumPerYear

TypeRequiredValues
StringyesCurrency >= 0

The annual PMI premium amount.

🔸 Data.PMI.PremiumPerPeriod

TypeRequiredValues
StringyesCurrency >= 0

The periodic PMI premium amount.

🔹 Data.PMI.IndexToWarn

TypeRequiredValuesDefault
StringnoInteger > 0n/a

This field only appears if the WarnLTV PMI input field is specified, and indicates that the payment index on which the remaining principal balance to home value ratio drops below the specified percentage.

🔹 Data.PMI.IndexToRemove

TypeRequiredValuesDefault
StringnoInteger > 0n/a

This field only appears if the DropLTV PMI input field is specified, and indicates that the payment index on which the remaining principal balance to home value ratio drops below the specified percentage. PMI coverage stops after this payment.


🟦 Data.PmtStreams[]

TypeRequired
Objectno

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, 🔸Begin

Objects: Note

🔸 Data.PmtStreams[].Term

TypeRequiredValues
StringyesInteger >= 0

The Term field holds the number of payments that make up the given payment stream.

🔸 Data.PmtStreams[].Pmt

TypeRequiredValues
StringyesCurrency > 0

The Pmt field holds the computed payment amount for this payment stream.

🔹 Data.PmtStreams[].Rate

TypeRequiredValues
StringyesNumber

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

TypeRequiredValues
StringyesYYYY-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

TypeRequired
Objectno

If protection products are requested, then this object will be present in the response, along with a field for each requested protection product.

Fields : None

Objects: 🟦 Life, 🟦 Level, 🟦 Disability, 🟦 Unemployment, 🟦 Property


🟦 Data.Protection.Life

TypeRequired
Objectno

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, 🔸RateType

Objects: 🟦 Cost, 🟦 Coverage, 🟦 Term, 🟦 Borrower1, 🟦 Borrower2

🔸 Data.Protection.Life.Result

TypeRequiredValues
StringyesText - 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

TypeRequiredValues
StringyesText - 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

TypeRequiredValues
StringyesFixed, 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

TypeRequired
Objectyes

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, 🔹Factor2

Objects: None

🔸 Data.Protection.Life.Cost.Premium

TypeRequiredValues
StringyesCurrency >= 0

The total cost for this protection over the term of the loan.

🔸 Data.Protection.Life.Cost.PerPmt

TypeRequiredValues
StringyesCurrency >= 0

The cost of coverage expressed as currency per payment.

🔸 Data.Protection.Life.Cost.PerDay

TypeRequiredValues
StringyesCurrency >= 0

The cost of coverage expressed as currency per dey.

🔸 Data.Protection.Life.Cost.Factor

TypeRequiredValues
StringyesNumber >= 0

The rate factor used to compute the premium for the requested protection product.

🔹 Data.Protection.Life.Cost.Premium2

TypeRequiredValuesDefault
StringnoCurrency >= 0n/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

TypeRequiredValuesDefault
StringnoCurrency >= 0n/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

TypeRequiredValuesDefault
StringnoCurrency >= 0n/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

TypeRequiredValuesDefault
StringnoNumber >= 0n/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

TypeRequired
Objectyes

The aggregate coverage amount and note are provided in the following fields of this object:

Fields: 🔸Amount, 🔸Note

Objects: None

🔸 Data.Protection.Life.Coverage.Amount

TypeRequiredValues
StringyesCurrency >= 0

The aggregate coverage amount for this protection product.

🔸 Data.Protection.Life.Coverage.Note

TypeRequiredValues
StringyesText - 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

TypeRequired
Objectno

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, 🔸Note

Objects: None

🔸 Data.Protection.Life.Term.InMonths

TypeRequiredValues
StringyesInteger >= 0

Contains the term of coverage expressed as a number of months.

🔸 Data.Protection.Life.Term.InPmts

TypeRequiredValues
StringyesInteger >= 0

Contains the number of payments covered.

🔸 Data.Protection.Life.Term.Maturity

TypeRequiredValues
StringyesYYYY-MM-DD

This field contains the maturity date for the requested coverage.

🔸 Data.Protection.Life.Term.Note

TypeRequiredValues
StringyesText - 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

TypeRequired
Objectno

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, 🔸Note

Objects: None

🔸 Data.Protection.Life.Borrower1.Birthday

TypeRequiredValues
StringyesYYYY-MM-DD

The birthday associated with the borrower, as specified in the request.

🔸 Data.Protection.Life.Borrower1.AgeAtIssue

TypeRequiredValues
StringyesYYYY-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

TypeRequiredValues
StringyesYYYY-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

TypeRequiredValues
StringyesInteger >= 0

The term of coverage expressed as a number of payments.

🔸 Data.Protection.Life.Borrower1.Months

TypeRequiredValues
StringyesInteger >= 0

The term of coverage expressed as a number of months.

🔸 Data.Protection.Life.Borrower1.Maturity

TypeRequiredValues
StringyesYYYY-MM-DD

The coverage maturity date for this particular borrower.

🔸 Data.Protection.Life.Borrower1.Note

TypeRequiredValues
StringyesText - 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

TypeRequired
Objectno

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, 🔸Note

Objects: None

🔸 Data.Protection.Life.Borrower2.Birthday

TypeRequiredValues
StringyesYYYY-MM-DD

The birthday associated with the borrower, as specified in the request.

🔸 Data.Protection.Life.Borrower2.AgeAtIssue

TypeRequiredValues
StringyesYYYY-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

TypeRequiredValues
StringyesYYYY-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

TypeRequiredValues
StringyesInteger >= 0

The term of coverage expressed as a number of payments.

🔸 Data.Protection.Life.Borrower2.Months

TypeRequiredValues
StringyesInteger >= 0

The term of coverage expressed as a number of months.

🔸 Data.Protection.Life.Borrower2.Maturity

TypeRequiredValues
StringyesYYYY-MM-DD

The coverage maturity date for this particular borrower.

🔸 Data.Protection.Life.Borrower2.Note

TypeRequiredValues
StringyesText - 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

TypeRequired
Objectno

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, 🔸AttainAge

Objects: None

🔸 Data.Protection.Life.Caps.Cov

TypeRequiredValues
StringyesCurrency >= 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

TypeRequiredValues
StringyesCurrency >= 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

TypeRequiredValues
StringyesCurrency >= 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

TypeRequiredValues
StringyesInteger >= 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

TypeRequiredValues
StringyesInteger >= 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

TypeRequired
Objectno

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.

Fields: 🔸Result, 🔸Formula,

Objects: 🟦 Cost, 🟦 Coverage, 🟦 Term, 🟦 Borrower1, 🟦 Borrower2

🔸 Data.Protection.Level.Result

TypeRequiredValues
StringyesText - 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

TypeRequiredValues
StringyesText - 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

TypeRequired
Objectyes

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, 🔹Factor2

Objects: None

🔸 Data.Protection.Level.Cost.Premium

TypeRequiredValues
StringyesCurrency >= 0

The total cost for this protection over the term of the loan.

🔸 Data.Protection.Level.Cost.PerPmt

TypeRequiredValues
StringyesCurrency >= 0

The cost of coverage expressed as currency per payment.

🔸 Data.Protection.Level.Cost.PerDay

TypeRequiredValues
StringyesCurrency >= 0

The cost of coverage expressed as currency per dey.

🔸 Data.Protection.Level.Cost.Factor

TypeRequiredValues
StringyesNumber >= 0

The rate factor used to compute the premium for the requested protection product.

🔹 Data.Protection.Level.Cost.Premium2

TypeRequiredValuesDefault
StringnoCurrency >= 0n/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

TypeRequiredValuesDefault
StringnoCurrency >= 0n/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

TypeRequiredValuesDefault
StringnoCurrency >= 0n/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

TypeRequiredValuesDefault
StringnoNumber >= 0n/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

TypeRequired
Objectyes

The aggregate coverage amount and note are provided in the following fields of this object:

Fields: 🔸Amount, 🔸Note

Objects: None

🔸 Data.Protection.Level.Coverage.Amount

TypeRequiredValues
StringyesCurrency >= 0

The aggregate coverage amount for this protection product.

🔸 Data.Protection.Level.Coverage.Note

TypeRequiredValues
StringyesText - 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

TypeRequired
Objectno

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, 🔸Note

Objects: None

🔸 Data.Protection.Level.Term.InMonths

TypeRequiredValues
StringyesInteger >= 0

Contains the term of coverage expressed as a number of months.

🔸 Data.Protection.Level.Term.InPmts

TypeRequiredValues
StringyesInteger >= 0

Contains the number of payments covered.

🔸 Data.Protection.Level.Term.Maturity

TypeRequiredValues
StringyesYYYY-MM-DD

This field contains the maturity date for the requested coverage.

🔸 Data.Protection.Level.Term.Note

TypeRequiredValues
StringyesText - 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

TypeRequired
Objectno

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, 🔸Note

Objects: None

🔸 Data.Protection.Level.Borrower1.Birthday

TypeRequiredValues
StringyesYYYY-MM-DD

The birthday associated with the borrower, as specified in the request.

🔸 Data.Protection.Level.Borrower1.AgeAtIssue

TypeRequiredValues
StringyesYYYY-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

TypeRequiredValues
StringyesYYYY-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

TypeRequiredValues
StringyesInteger >= 0

The term of coverage expressed as a number of payments.

🔸 Data.Protection.Level.Borrower1.Months

TypeRequiredValues
StringyesInteger >= 0

The term of coverage expressed as a number of months.

🔸 Data.Protection.Level.Borrower1.Maturity

TypeRequiredValues
StringyesYYYY-MM-DD

The coverage maturity date for this particular borrower.

🔸 Data.Protection.Level.Borrower1.Note

TypeRequiredValues
StringyesText - 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

TypeRequired
Objectno

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, 🔸Note

Objects: None

🔸 Data.Protection.Level.Borrower2.Birthday

TypeRequiredValues
StringyesYYYY-MM-DD

The birthday associated with the borrower, as specified in the request.

🔸 Data.Protection.Level.Borrower2.AgeAtIssue

TypeRequiredValues
StringyesYYYY-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

TypeRequiredValues
StringyesYYYY-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

TypeRequiredValues
StringyesInteger >= 0

The term of coverage expressed as a number of payments.

🔸 Data.Protection.Level.Borrower2.Months

TypeRequiredValues
StringyesInteger >= 0

The term of coverage expressed as a number of months.

🔸 Data.Protection.Level.Borrower2.Maturity

TypeRequiredValues
StringyesYYYY-MM-DD

The coverage maturity date for this particular borrower.

🔸 Data.Protection.Level.Borrower2.Note

TypeRequiredValues
StringyesText - 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

TypeRequired
Objectno

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, 🔸AttainAge

Objects: None

🔸 Data.Protection.Level.Caps.Cov

TypeRequiredValues
StringyesCurrency >= 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

TypeRequiredValues
StringyesCurrency >= 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

TypeRequiredValues
StringyesInteger >= 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

TypeRequiredValues
StringyesInteger >= 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

TypeRequiredValues
StringyesInteger >= 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

TypeRequired
Objectno

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, 🔸RateType

Objects: 🟦 Cost, 🟦 Coverage, 🟦 Term, 🟦 Borrower1, 🟦 Borrower2

🔸 Data.Protection.Disability.Result

TypeRequiredValues
StringyesText - 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

TypeRequiredValues
StringyesText - 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

TypeRequiredValues
StringyesFixed, 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

TypeRequired
Objectyes

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

TypeRequiredValues
StringyesCurrency >= 0

The total cost for this protection over the term of the loan.

🔸 Data.Protection.Disability.Cost.PerPmt

TypeRequiredValues
StringyesCurrency >= 0

The cost of coverage expressed as currency per payment.

🔸 Data.Protection.Disability.Cost.PerDay

TypeRequiredValues
StringyesCurrency >= 0

The cost of coverage expressed as currency per dey.

🔸 Data.Protection.Disability.Cost.Factor

TypeRequiredValues
StringyesNumber >= 0

The rate factor used to compute the premium for the requested protection product.


🟦 Data.Protection.Disability.Coverage

TypeRequired
Objectyes

The aggregate coverage amount and note are provided in the following fields of this object:

Fields: 🔸Amount 🔸Note

Objects: None

🔸 Data.Protection.Disability.Coverage.Amount

TypeRequiredValues
StringyesCurrency >= 0

The aggregate coverage amount for this protection product.

🔸 Data.Protection.Disability.Coverage.Note

TypeRequiredValues
StringyesText - 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

TypeRequired
Objectyes

The protection product's benefit amount and note are provided in the following fields of this object:

Fields: 🔸Amount, 🔹Periodic, 🔸Note

Objects: None

🔸 Data.Protection.Disability.Benefit.Amount

TypeRequiredValues
StringyesCurrency >= 0

The monthly benefit amount for this protection product.

🔹 Data.Protection.Disability.Benefit.Periodic

TypeRequiredValues
StringnoCurrency >= 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

TypeRequiredValues
StringyesText - 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

TypeRequired
Objectno

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, 🔸Note

Objects: None

🔸 Data.Protection.Disability.Term.InMonths

TypeRequiredValues
StringyesInteger >= 0

Contains the term of coverage expressed as a number of months.

🔸 Data.Protection.Disability.Term.InPmts

TypeRequiredValues
StringyesInteger >= 0

Contains the number of payments covered.

🔸 Data.Protection.Disability.Term.Maturity

TypeRequiredValues
StringyesYYYY-MM-DD

This field contains the maturity date for the requested coverage.

🔸 Data.Protection.Disability.Term.Note

TypeRequiredValues
StringyesText - 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

TypeRequired
Objectno

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, 🔸Note

Objects: None

🔸 Data.Protection.Disability.Borrower1.Birthday

TypeRequiredValues
StringyesYYYY-MM-DD

The birthday associated with the borrower, as specified in the request.

🔸 Data.Protection.Disability.Borrower1.AgeAtIssue

TypeRequiredValues
StringyesYYYY-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

TypeRequiredValues
StringyesYYYY-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

TypeRequiredValues
StringyesInteger >= 0

The term of coverage expressed as a number of payments.

🔸 Data.Protection.Disability.Borrower1.Months

TypeRequiredValues
StringyesInteger >= 0

The term of coverage expressed as a number of months.

🔸 Data.Protection.Disability.Borrower1.Maturity

TypeRequiredValues
StringyesYYYY-MM-DD

The coverage maturity date for this particular borrower.

🔸 Data.Protection.Disability.Borrower1.Note

TypeRequiredValues
StringyesText - 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

TypeRequired
Objectno

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, 🔸Note

Objects: None

🔸 Data.Protection.Disability.Borrower2.Birthday

TypeRequiredValues
StringyesYYYY-MM-DD

The birthday associated with the borrower, as specified in the request.

🔸 Data.Protection.Disability.Borrower2.AgeAtIssue

TypeRequiredValues
StringyesYYYY-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

TypeRequiredValues
StringyesYYYY-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

TypeRequiredValues
StringyesInteger >= 0

The term of coverage expressed as a number of payments.

🔸 Data.Protection.Disability.Borrower2.Months

TypeRequiredValues
StringyesInteger >= 0

The term of coverage expressed as a number of months.

🔸 Data.Protection.Disability.Borrower2.Maturity

TypeRequiredValues
StringyesYYYY-MM-DD

The coverage maturity date for this particular borrower.

🔸 Data.Protection.Disability.Borrower2.Note

TypeRequiredValues
StringyesText - 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

TypeRequired
Objectno

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, 🔸AttainAge

Objects: None

🔸 Data.Protection.Disability.Caps.Cov

TypeRequiredValues
StringyesCurrency >= 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

TypeRequiredValues
StringyesCurrency >= 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

TypeRequiredValues
StringyesInteger >= 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

TypeRequiredValues
StringyesInteger >= 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

TypeRequiredValues
StringyesInteger >= 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.Unemployment

TypeRequired
Objectno

If unemployment protection was requested with the loan and decreasing unemployment was configured for this loan type, then the Life object will be present in the response to return information on decreasing unemployment coverage.

Fields: 🔸Result, 🔸Formula, 🔸RateType

Objects: 🟦 Cost, 🟦 Coverage, 🟦 Term, 🟦 Borrower1, 🟦 Borrower2

🔸 Data.Protection.Unemployment.Result

TypeRequiredValues
StringyesText - 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.Unemployment.Formula

TypeRequiredValues
StringyesText - 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.Unemployment.RateType

TypeRequiredValues
StringyesFixed, 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.Unemployment.Cost

TypeRequired
Objectyes

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.Unemployment.Cost.Premium

TypeRequiredValues
StringyesCurrency >= 0

The total cost for this protection over the term of the loan.

🔸 Data.Protection.Unemployment.Cost.PerPmt

TypeRequiredValues
StringyesCurrency >= 0

The cost of coverage expressed as currency per payment.

🔸 Data.Protection.Unemployment.Cost.PerDay

TypeRequiredValues
StringyesCurrency >= 0

The cost of coverage expressed as currency per dey.

🔸 Data.Protection.Unemployment.Cost.Factor

TypeRequiredValues
StringyesNumber >= 0

The rate factor used to compute the premium for the requested protection product.


🟦 Data.Protection.Unemployment.Coverage

TypeRequired
Objectyes

The aggregate coverage amount and note are provided in the following fields of this object:

Fields: 🔸Amount 🔸Note

Objects: None

🔸 Data.Protection.Unemployment.Coverage.Amount

TypeRequiredValues
StringyesCurrency >= 0

The aggregate coverage amount for this protection product.

🔸 Data.Protection.Unemployment.Coverage.Note

TypeRequiredValues
StringyesText - 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.Unemployment.Benefit

TypeRequired
Objectyes

The protection product's benefit amount and note are provided in the following fields of this object:

Fields: 🔸Amount, 🔹Periodic, 🔸Note

Objects: None

🔸 Data.Protection.Unemployment.Benefit.Amount

TypeRequiredValues
StringyesCurrency >= 0

The monthly benefit amount for this protection product.

🔹 Data.Protection.Unemployment.Benefit.Periodic

TypeRequiredValues
StringnoCurrency >= 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.Unemployment.Benefit.Note

TypeRequiredValues
StringyesText - 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.Unemployment.Term

TypeRequired
Objectno

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, 🔸Note

Objects: None

🔸 Data.Protection.Unemployment.Term.InMonths

TypeRequiredValues
StringyesInteger >= 0

Contains the term of coverage expressed as a number of months.

🔸 Data.Protection.Unemployment.Term.InPmts

TypeRequiredValues
StringyesInteger >= 0

Contains the number of payments covered.

🔸 Data.Protection.Unemployment.Term.Maturity

TypeRequiredValues
StringyesYYYY-MM-DD

This field contains the maturity date for the requested coverage.

🔸 Data.Protection.Unemployment.Term.Note

TypeRequiredValues
StringyesText - 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.Unemployment.Borrower1

TypeRequired
Objectno

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, 🔸Note

Objects: None

🔸 Data.Protection.Unemployment.Borrower1.Birthday

TypeRequiredValues
StringyesYYYY-MM-DD

The birthday associated with the borrower, as specified in the request.

🔸 Data.Protection.Unemployment.Borrower1.AgeAtIssue

TypeRequiredValues
StringyesYYYY-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.Unemployment.Borrower1.AgeAtMaturity

TypeRequiredValues
StringyesYYYY-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.Unemployment.Borrower1.Pmts

TypeRequiredValues
StringyesInteger >= 0

The term of coverage expressed as a number of payments.

🔸 Data.Protection.Unemployment.Borrower1.Months

TypeRequiredValues
StringyesInteger >= 0

The term of coverage expressed as a number of months.

🔸 Data.Protection.Unemployment.Borrower1.Maturity

TypeRequiredValues
StringyesYYYY-MM-DD

The coverage maturity date for this particular borrower.

🔸 Data.Protection.Unemployment.Borrower1.Note

TypeRequiredValues
StringyesText - 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.Unemployment.Borrower2

TypeRequired
Objectno

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, 🔸Note

Objects: None

🔸 Data.Protection.Unemployment.Borrower2.Birthday

TypeRequiredValues
StringyesYYYY-MM-DD

The birthday associated with the borrower, as specified in the request.

🔸 Data.Protection.Unemployment.Borrower2.AgeAtIssue

TypeRequiredValues
StringyesYYYY-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.Unemployment.Borrower2.AgeAtMaturity

TypeRequiredValues
StringyesYYYY-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.Unemployment.Borrower2.Pmts

TypeRequiredValues
StringyesInteger >= 0

The term of coverage expressed as a number of payments.

🔸 Data.Protection.Unemployment.Borrower2.Months

TypeRequiredValues
StringyesInteger >= 0

The term of coverage expressed as a number of months.

🔸 Data.Protection.Unemployment.Borrower2.Maturity

TypeRequiredValues
StringyesYYYY-MM-DD

The coverage maturity date for this particular borrower.

🔸 Data.Protection.Unemployment.Borrower2.Note

TypeRequiredValues
StringyesText - 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.Unemployment.Caps

TypeRequired
Objectno

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, 🔸AttainAge

Objects: None

🔸 Data.Protection.Unemployment.Caps.Cov

TypeRequiredValues
StringyesCurrency >= 0

Contains the maximum aggregate coverage amount. If no cap is present or applicable, then a value of zero is returned.

🔸 Data.Protection.Unemployment.Caps.Ben

TypeRequiredValues
StringyesCurrency >= 0

Contains the maximum monthly benefit amount. If no cap is present or applicable, then a value of zero is returned.

🔸 Data.Protection.Unemployment.Caps.Term

TypeRequiredValues
StringyesInteger >= 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.Unemployment.Caps.InceptAge

TypeRequiredValues
StringyesInteger >= 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.Unemployment.Caps.AttainAge

TypeRequiredValues
StringyesInteger >= 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.Property

TypeRequired
Objectno

If property protection was requested with the loan and decreasing property was configured for this loan type, then the Property object will be present in the response to return information on decreasing property coverage.

Fields: 🔸Result, 🔸Formula,

Objects: 🟦 Cost, 🟦 Coverage, 🟦 Term, 🟦 Borrower1, 🟦 Borrower2

🔸 Data.Protection.Property.Result

TypeRequiredValues
StringyesText - 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.Property.Formula

TypeRequiredValues
StringyesText - 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.Property.Cost

TypeRequired
Objectyes

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.Property.Cost.Premium

TypeRequiredValues
StringyesCurrency >= 0

The total cost for this protection over the term of the loan.

🔸 Data.Protection.Property.Cost.PerPmt

TypeRequiredValues
StringyesCurrency >= 0

The cost of coverage expressed as currency per payment.

🔸 Data.Protection.Property.Cost.PerDay

TypeRequiredValues
StringyesCurrency >= 0

The cost of coverage expressed as currency per dey.

🔸 Data.Protection.Property.Cost.Factor

TypeRequiredValues
StringyesNumber >= 0

The rate factor used to compute the premium for the requested protection product.


🟦 Data.Protection.Property.Coverage

TypeRequired
Objectyes

The aggregate coverage amount and note are provided in the following fields of this object:

Fields: 🔸Amount 🔸Note

Objects: None

🔸 Data.Protection.Property.Coverage.Amount

TypeRequiredValues
StringyesCurrency >= 0

The aggregate coverage amount for this protection product.

🔸 Data.Protection.Property.Coverage.Note

TypeRequiredValues
StringyesText - 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.Property.Term

TypeRequired
Objectno

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, 🔸Note

Objects: None

🔸 Data.Protection.Property.Term.InMonths

TypeRequiredValues
StringyesInteger >= 0

Contains the term of coverage expressed as a number of months.

🔸 Data.Protection.Property.Term.InPmts

TypeRequiredValues
StringyesInteger >= 0

Contains the number of payments covered.

🔸 Data.Protection.Property.Term.Maturity

TypeRequiredValues
StringyesYYYY-MM-DD

This field contains the maturity date for the requested coverage.

🔸 Data.Protection.Property.Term.Note

TypeRequiredValues
StringyesText - 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.Property.Borrower1

TypeRequired
Objectno

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, 🔸Note

Objects: None

🔸 Data.Protection.Property.Borrower1.Birthday

TypeRequiredValues
StringyesYYYY-MM-DD

The birthday associated with the borrower, as specified in the request.

🔸 Data.Protection.Property.Borrower1.AgeAtIssue

TypeRequiredValues
StringyesYYYY-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.Property.Borrower1.AgeAtMaturity

TypeRequiredValues
StringyesYYYY-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.Property.Borrower1.Pmts

TypeRequiredValues
StringyesInteger >= 0

The term of coverage expressed as a number of payments.

🔸 Data.Protection.Property.Borrower1.Months

TypeRequiredValues
StringyesInteger >= 0

The term of coverage expressed as a number of months.

🔸 Data.Protection.Property.Borrower1.Maturity

TypeRequiredValues
StringyesYYYY-MM-DD

The coverage maturity date for this particular borrower.

🔸 Data.Protection.Property.Borrower1.Note

TypeRequiredValues
StringyesText - 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.Property.Borrower2

TypeRequired
Objectno

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, 🔸Note

Objects: None

🔸 Data.Protection.Property.Borrower2.Birthday

TypeRequiredValues
StringyesYYYY-MM-DD

The birthday associated with the borrower, as specified in the request.

🔸 Data.Protection.Property.Borrower2.AgeAtIssue

TypeRequiredValues
StringyesYYYY-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.Property.Borrower2.AgeAtMaturity

TypeRequiredValues
StringyesYYYY-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.Property.Borrower2.Pmts

TypeRequiredValues
StringyesInteger >= 0

The term of coverage expressed as a number of payments.

🔸 Data.Protection.Property.Borrower2.Months

TypeRequiredValues
StringyesInteger >= 0

The term of coverage expressed as a number of months.

🔸 Data.Protection.Property.Borrower2.Maturity

TypeRequiredValues
StringyesYYYY-MM-DD

The coverage maturity date for this particular borrower.

🔸 Data.Protection.Property.Borrower2.Note

TypeRequiredValues
StringyesText - 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.Property.Caps

TypeRequired
Objectno

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, 🔸AttainAge

Objects: None

🔸 Data.Protection.Property.Caps.Cov

TypeRequiredValues
StringyesCurrency >= 0

Contains the maximum aggregate coverage amount. If no cap is present or applicable, then a value of zero is returned.

🔸 Data.Protection.Property.Caps.Ben

TypeRequiredValues
StringyesCurrency >= 0

Contains the maximum monthly benefit amount. If no cap is present or applicable, then a value of zero is returned.

🔸 Data.Protection.Property.Caps.Term

TypeRequiredValues
StringyesInteger

Contains the maximum coverage term, expressed in months. If no cap is present or applicable, then a value of zero is returned.

🔸 Data.Protection.Property.Caps.InceptAge

TypeRequiredValues
StringyesInteger >= 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.Property.Caps.AttainAge

TypeRequiredValues
StringyesInteger >= 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

TypeRequired
Objectno

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, 🔹OddDays

Objects: 🟦 GrandTotals, 🟦 SubTotals[], 🟥 AmLines[]

🔹 Data.AmTable.AvgBal

TypeRequiredValuesDefault
StringnoCurrency >= 0n/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

TypeRequiredValuesDefault
StringnoInteger >= 0n/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

TypeRequiredValuesDefault
StringnoInteger >= 0n/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

TypeRequiredValuesDefault
StringnoInteger >= 0n/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

TypeRequired
Objectno

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, 🔹AHTot, 🔹IUTot, 🔹PMITot, 🔹SCTot

Objects: None


🔸 Data.AmTable.GrandTotals.PmtTot

TypeRequiredValues
StringyesCurrency

The total of payments scheduled for the computed loan.

🔸 Data.AmTable.GrandTotals.IntTot

TypeRequiredValues
StringyesCurrency

The total amount paid to interest over the life of the loan, assuming all payments are made as scheduled.

🔸 Data.AmTable.GrandTotals.PrinTot

TypeRequiredValues
StringyesCurrency

This field contains the total amount paid to principal during the loan term, assuming all payments are made as scheduled.

🔹 Data.AmTable.GrandTotals.CLTot

TypeRequiredValuesDefault
StringnoCurrency >= 0n/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

TypeRequiredValuesDefault
StringnoCurrency >= 0n/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.GrandTotals.IUTot

TypeRequiredValuesDefault
StringnoCurrency >= 0n/a

The IUTot field will only appear on loans with certain types of involuntary unemployment 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.GrandTotals.PMITot

TypeRequiredValuesDefault
StringnoCurrency >= 0n/a

The PMITot field will only appear on loans with PMI insurance where the PMI premiums were requested in the amortization schedule. It contains the total PMI amount paid (not including any up front periodic PMI premiums)for PMI over the duration of the loan.

🔹 Data.AmTable.GrandTotals.SCTot

TypeRequiredValuesDefault
StringnoCurrency >= 0n/a

The SCTot field will only appear on loans with service charges. It contains the total service charge amount paid over the duration of the loan.


🟦 Data.AmTable.SubTotals[]

TypeRequired
Array of SubTotal Objectsno

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, 🔹AHSub, 🔹IUSub, 🔹PMISub, 🔹SCSub

Objects: None

🔸 Data.AmTable.SubTotals[].Year

TypeRequiredValues
StringyesInteger >= 0

The calendar year for which the subtotal data is applicable.

🔸 Data.AmTable.SubTotals[].Start

TypeRequiredValues
StringyesInteger >= 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

TypeRequiredValues
StringyesInteger >= 0

This field defines the number of amortization events which belong to this calendar year.

🔸 Data.AmTable.SubTotals[].PmtSub

TypeRequiredValues
StringyesCurrency

Contains the total of payments scheduled for the calendar year.

🔸 Data.AmTable.SubTotals[].IntSub

TypeRequiredValues
StringyesCurrency

Holds the total amount paid to interest over the calendar year, assuming all payments are made as scheduled.

🔸 Data.AmTable.SubTotals[].PrinSub

TypeRequiredValues
StringyesCurrency

Contains the total amount paid to principal during the calendar year, assuming all payments are made as scheduled.

🔹 Data.AmTable.SubTotals[].CLSub

TypeRequiredValuesDefault
StringnoCurrency >= 0n/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

TypeRequiredValuesDefault
StringnoCurrency >= 0n/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.SubTotals[].IUSub

TypeRequiredValuesDefault
StringnoCurrency >= 0n/a

The IUSub field will only appear on loans with certain types of involuntary unemployment protection products, such as those based on a monthly outstanding balance. It contains the total amount paid for involuntary unemployment during the year.

🔹 Data.AmTable.SubTotals[].PMISub

TypeRequiredValuesDefault
StringnoCurrency >= 0n/a

The PMISub field will only appear on loans with PMI insurance where the PMI premiums were requested in the amortization schedule. It contains the total PMI amount paid (not including any up front periodic PMI premiums) for PMI during the year.

🔹 Data.AmTable.SubTotals[].SCSub

TypeRequiredValuesDefault
StringnoCurrency >= 0n/a

The SCSub field will only appear on loans with service charges. It contains the total of service charges paid during the year.


🟥 Data.AmTable.AmLines[]

TypeRequired
Array of AmLine Objectsyes

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, 🔹IU, 🔹PMI, 🔹SC, 🔹UnpaidInt, 🔸EndBal

Objects: None

🔸 Data.AmTable.AmLines[].Idx

TypeRequiredValues
StringyesInteger >= 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

TypeRequiredValues
StringyesYYYY-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

TypeRequiredValues
StringyesCurrency >= 0

The principal balance before the amortization event occurs.

🔸 Data.AmTable.AmLines[].Pmt

TypeRequiredValues
StringyesCurrency

The payment amount for this event.

🔸 Data.AmTable.AmLines[].Int

TypeRequiredValues
StringyesCurrency

The amount of interest paid at this event.

🔸 Data.AmTable.AmLines[].Prin

TypeRequiredValues
StringyesCurrency

The amount of principal paid at this event.

🔹 Data.AmTable.AmLines[].CL

TypeRequiredValuesDefault
StringnoCurrency >= 0n/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

TypeRequiredValuesDefault
StringnoCurrency >= 0n/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[].IU

TypeRequiredValuesDefault
StringnoCurrency >= 0n/a

The IU field will only appear on loans with certain types of involuntary unemployment protection products, such as those based on a monthly outstanding balance. It contains the amount of the payment which is marked for this coverage.

🔹 Data.AmTable.AmLines[].PMI

TypeRequiredValuesDefault
StringnoCurrency >= 0n/a

This field contains the PMI premium for this payment, and will only show up if PMI has been computed for this payment and if PMI premiums should be displayed in the amortization schedule.

🔹 Data.AmTable.AmLines[].SC

TypeRequiredValuesDefault
StringnoCurrency >= 0n/a

This field contains the total service charge for this payment, and will only be present if one or more service charges were requested with the loan.

🔹 Data.AmTable.AmLines[].UnpaidInt

TypeRequiredValuesDefault
StringnoCurrency >= 0n/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

TypeRequiredValues
StringyesCurrency

The principal balance amount, after the amortization event has taken place.