Introduction
The Sherman Calculation Engine with XML Interface (SCEX) is a lightweight suite of lending, depositing, compliance, and support modules that provides lenders with a lightning-fast API tool to meet all calculation needs.
The SCEX is secure - neither receiving, retrieving, storing, or exporting any information particular to any individual. Being free of proprietary user information means being free of the security concerns associated with disclosing personal information to a 3rd party vendor. By focusing exclusively on the math, the SCEX slims down to focus on computing quick calculations exclusively.
Getting Started
Each solution for the SCEX has its own particular technical platform configurations. To assist your technical team get up and running, we offer:
- SCEX Project History - A quick historical overview of the SCEX project.
- Installation Instructions - How to properly integrate the SCEX calculation engine into your platform.
- Implementation Assistance - Once physical access to the engine has been established, get connected to the SCEX with your particular software solution.
- Module Structure - An overview of the structure common to the modules found implemented in the SCEX.
- Legend - Understand quick identifier conventions used in this manual.
Module Overview
Now that the SCEX is up and running and queries can be run, get assistance on how to craft xml payloads to correctly represent your calculation request and review the result structures for consuming the solutions.
Loans
The SCEX provides a broad spectrum of closed-end loan computation tools, which over the years has culminated with our flagship module, LoanBuilder.
- LoanBuilder is designed to compute any loan from any lending market in any country 1. The particulars of a loan are added, element-by-element, to reflect precisely the particulars of that loan.
The modules that follow are all legacy modules for single advance, specific repayment structure loans.
- Equal Payments - Compute an equal payment loan.
- Balloons - Specify the amortization term,
regular payment or balloon.
- Specify Regular - Specify the regular payment to compute the balloon.
- Specify Final - Specify the final balloon payment to compute the regular payment.
- Specify Amortization Term - Specify a long term amortization to compute a regular payment and balloon at the short term call.
- Single Payment Notes - Term or Bridge Loans where one borrows cash and pays off the loan with a single payment at maturity.
- Interest Payments - These modules are for loans that focus on payments paying
off interest, with or without a specified principal reduction.
- Interest Only - Pay only interest until the final balloon payment.
- Fixed Principal Plus Interest - Pay interest and specified amounts of principal.
- Skips, Pickups, Irregular - Skip payments, or specify payments or specify
additions to regular payments (Pickups) with these modules.
- Skipped and Irregular Pmts - Skip payments and specify payment amounts with this module.
- Skipped and Pickup Pmts - Skip payments and boost regular payments with this module.
- Mortgage Loans
- ARM - Adjustable Rate Mortgages - Teaser Rate and Term precede an evolving interest rate.
Open-End Lending
Support for open ended lending is available through the SCEX in two fundamental ways:
- Initial Disclosure - The initial disclosure for an open ended loan is done with a closed-end loan module. We recomment Loan Builder for this purpose.
- Periodic Disclosures - Lines of credit require periodic minimum payment disclosure and payoff information. Use the linked module for periodic disclosures.
Loan Servicing
As the servicing of a loan continues, various information may wish to be explored, such as given the current state of the loan, what new payment would be computed? The Loan Builder module should be used for all loan Servicing needs.
Deposit Modules
The SCEX comes with several common deposit modules, broadening your suite of solutions. They are as follows:
- Annuities - Streams of income paid in a series of regular monthly payments.
- Certificates of Deposit - Compute CD payoffs and APY's
- Individual Retirement Accounts - Compute retirement payments or the payment to produce a retirement income goal.
Compliance Modules
Loans require specific sets of mandated disclosure quantities. The SCEX comes with several modules to assist lenders to determine several critical quantities. These modules are as follows:
- APR Module - Compute the regulatory Annual Percentage Rate along with all relevant supporting data to prove compliance to an examiner.
- APY Module - Compute the annual percentage yield for a deposit.
- HCM - High Cost Mortgage - Determine if the loan is a High Cost Mortgage plus the triggers causing it to be one.
- HPML - High Priced Mortgage Loan - Determine if the loan is a High Priced Mortgage Loan with supporting data.
Miscellaneous Modules
Several solutions in the SCEX are unique modules, which are as follows:
- Dealer Reserve - Dealers can calculate their portion of the finance charge when they, themselves, have financed vehicles with this module.
- Refunds - Single Premium insurance products may require refunding part of the original premium when a loan is paid off early.
- Auto Assist - The various taxes and fees are computed and bundled with the Auto Assist module.
Diagnostic Modules
The SCEX provides several diagnostic and data reporting modules for a more robust solution. These modules are as follows:
- Version - Reports the version of the SCEX being used.
- Account Listing - Lists all available solutions represented by setup files currently operating with the SCEX, each solution represented by a positive Account integer.
- Input Tool - The setup files for a given account solution are queried with this module, revealing all of the protection products and parameters active for that account. This reporting tool may be used by clients designing a responsive user interface to the particulars of a client solution.
- Setup Cache - This module is a dynamic version of the "Account Listing" module, and queries the currently running SCEX to limit and list all currently Setup Files in active cache.
This powerful suite of calculation modues will provide your company with the tools necessary to fully represent all of the loan products. As importantly, should capability or functionality be lacking, contact Sherman and Associates at support@shermanloan.com to modify the SCEX to include the new functionality.
The SCEX is a constantly growing engine and represents the accumulation of lending intelligence over decades of use. Quarterly releases announce this new functionality which may or may not be implemented depending on whether or not the new functionality is needed.
1. Only ARM's requiring TILA RESPA data are not currently supported by LoanBuilder. For these loans, choose the ARM module defined above.
PROJECT HISTORY
In the Beginning
The development and consulting team here at J. L. Sherman and Associates has accumulated over sixty man-years of experience creating a comprehensive array of programs providing complex, accurate, and compliant loan calculations for our clients. All of this experience and expertise goes into our Sherman Calculation Engine (SCE) - the most robust loan quotation engine on the market.
Prior to the development of our desktop based loan quotation software for the 32-bit Windows platform (see WinLoan32), several of our customers expressed an interest in having access to the calculation routines contained in the WinLoan16. Due to previous design decisions, this was not possible. With Winloan32, however, the powerful calculation engine that is the foundation of our end-user loan quotation software (both WinLoan32 and eWinLoan) was developed as a separate product, which we call the Sherman Calculation Engine (SCE).
The SCE was released as a product in the form of a 32-bit dynamic link library (DLL) for the Windows environment. Loan and insurance setup information is stored in text files that are created and maintained by Sherman's technical support team. Depending upon the level of support you desire, we can handle all of the steps in setting up a new account for you. This process involves gathering samples from the client and payment protection provider, and thoroughly testing to ensure that the final calculation results match what the client is expecting.
By separating the calculation logic from the user interface, we make available to our partners all of our applied knowledge and expertise. However, our new partners encountered three problems as they worked to interface directly with the SCE:
-
Initially, the user of the SCE needed to implement all of the data structures used by the SCE for input and output, as well as create the interface to the functions found in the DLL.
-
As the SCE was modified to suit customer needs and federal or state regulations additions and changes, these data structures needed to be altered. This required the data structures in our partner’s applications to also be altered, and then the applications which call the SCE must be recompiled.
-
Some of our partners wanted to access the power and functionality of the SCE from applications not written for the 32-bit Windows platform. There is no simple way to access a 32-bit Windows DLL from another platform.
These three problems prompted Sherman and Associates to begin development on two new satellite projects of the SCE: the SCEX XML interface (hereafter called the SCEX) and the SCE Loan Server.
Emergence of the SCEX
The SCEX addresses problems number one and two in the list above. It provides an XML interface wrapped around the SCE. By using the SCEX instead of the SCE, the calling application no longer needs to duplicate the data structures used by the SCE. Instead, all input sent to the SCEX is contained in one character buffer (or character string). Similarly, the SCEX returns all results in a single character buffer, which the calling application must provide.
The format of the text contained in these character buffers is what the "X" in the SCEX is all about - XML. XML is a simple, flexible text format which is platform independent and extensible and is playing an increasingly important role in the exchange of data between disparate platforms and systems.
The SCEX alleviates problem #1 by doing away with complex input and output data structures all together. Instead, the application calling the SCEX provides the necessary input in a character buffer, which contains the XML data. As an example, here is the XML input data for a 36 month equal payment loan based on a 10% interest rate and $10,000:
<inLOAN_BUILDER>
<EditInterest Date="2019-01-01" IntRate="10.000" AccrualCode="320" />
<Advance Date="2019-01-01" Amount="10000.00" />
<PmtStream Begin="2019-02-01" Term="36" />
</inLOAN_BUILDER>
The result of the loan calculation is then passed back to the calling application in a buffer. The application then need only parse the returned XML to use the calculation results as appropriate. Here is a sample result returned from the SCEX, using the inputs specified above (with the amortization table turned off):
<outLOAN_BUILDER>
<Results>
<Description>Successful Calculation</Description>
</Results>
<FedBox>
<AmtFin>10000.00</AmtFin>
<FinChg>1615.40</FinChg>
<TotPmts>11615.40</TotPmts>
<RegZAPR Type="Actuarial">9.995</RegZAPR>
</FedBox>
<Moneys>
<Proceeds>10000.00</Proceeds>
<Principal>10000.00</Principal>
<Interest>1615.40</Interest>
</Moneys>
<Accrual>
<Method>Actual/365 USRule</Method>
<Days1Pmt DayCount="Actual">31</Days1Pmt>
<Maturity>2022-01-01</Maturity>
</Accrual>
<PmtStream Term="36" Pmt="322.65" Rate="10.000" Begin="2019-02-01" PPY="12"/>
</outLOAN_BUILDER>
Furthermore, the second problem mentioned above is also handled. If a new input or output data field is added to the SCE, then the appropriate XML input/output tags will also be added to the SCEX. Applications which do not require this new functionality will not need to be recompiled. Instead, they will simply not provide the new input field, or not recognize the new output field. So long as your application does not require the use of the new data fields, then no recompilation is necessary!
Installation
System Requirements
The SCEX is developed with the most minimal computer requirements in mind. As mentioned earlier, it originated as a 32-bit Windows product, but our list of supported platforms has expanded to include 64-bit Windows and Linux on the Intel/AMD 64-bit architecture. The SCEX may be installed on computer hardware as lean as an old Pentium 3 laptop with 64 megabytes of RAM, and at least 7.5 megabytes of hard drive space running Windows 98.
The SCEX Loan Server must be installed on a more recent version of the Windows platform - Windows 2000 / XP / 2003 / Vista, as Windows 98 and earlier do not support services.
Summary of System Requirements
Processor: Pentium IV class processor is recommended, although the SCEX can function on a 486 CPU.
RAM: As needed by your choice of operating system.
Disk Space: 7.5 megabytes.
OS: 32/64-bit Windows, or Linux on Intel/AMD 64-bit architecture (specifically, the latest stable release of Ubuntu Linux). To use the SCEX Loan Server, Windows 2000 or later is required to host the service. Any operating system capable of communicating over TCP/IP may access the SCEX Loan Server. Once you have received the SCEX installation package (via download from Sherman and Associates’ web site), you are ready to install the SCEX.
Version Information
The SCEX is distributed as a Windows self-extracting executable. The name of the
installation file will be in the form of scex_installer-x.y.z.exe
for the full
version SCEX, or scex_demo_installer-x.y.z.exe
for the demonstration version
of the SCEX.
The x.y.z
portion of the installer file name refers to the version of the SCEX
contained within. Sherman and Associates has chosen to standardize versioning
information based upon dates and releases, instead of arbitrary version numbers.
Specifically, the first part of the version number (x) refers to the year of the
release. The second part of the version number (y) refers to the month of the
quarterly release. As it currently stands, the quarterly releases will be made
in January, April, July, and October. Thus, the value of y will always be in {1,
4, 7, 10}. Finally, the last part of the version number (z) signifies the
release number for the given quarter, with zero (0) signifying the first release
of the quarter.
Hence, a version number of 2005-07-0
refers to the first release of the SCEX
for the July, 2005 quarter. Similarly, a version number of 2006-01-02
refers
to the third release of the SCEX in the January, 2006 quarter.
Note that the version number of the installer corresponds with the version number of all applications and dynamic link library (DLL) which make up the SCEX. In this manner, it is very easy to verify that you are using the correct version of the DLL and applications, instead of having different (and arbitrary) version numbers for each, separate part of the library.
Installing the SCEX
To install the SCEX, simply run the scex_installer-x.y.z.exe
application. Note
that you should install the SCEX from a user account with Administrator
privileges. The installer is a standard windows installation application, which
will provide you with a few installation options as it executes.
Components to Install
The first installation page will prompt you for optional packages which may be installed with the SCEX, but are not required. If you choose to not install any of the optional components, then the following minimum install of system files and directories will be installed on your computer:
InstallDir\scex.dll
InstallDir\data\*.*
InstallDir\samples\*.*
InstallDir\xml\*.dtd
InstallDir\xml\output\*.dtd
It is important to note that the above set of files are the minimal installation set which will allow for the full use of the SCEX. When integrating your software with the SCEX, these files and subdirectories are the only files which need to be deployed along with your application (with the exception of the samples directory). Also, please note that the subdirectory names and relative locations to the SCEX DLL are critically important, and should not be altered.
Note that the .xml
files found in the subdirectories of InstallDir\samples
are sample input requests and output responses. Using the SCEX Test Application
(see below), you can quickly load one of these sample XML requests and see the
results generated by the SCEX.
The following optional SCEX components are also available for installation, and will be installed unless you specify otherwise:
-
SCEX Test Application: This executable lets the user enter, load, and save XML queries to send to the SCEX, and then view the result. It is very useful for trying out new XML queries and debugging existing queries.
The following file(s) are installed if this component is selected:
..\InstallDir\sce_tester.exe
-
SCEX Account Tester Application: This application was originally created by the developers at Sherman and Associates, Inc. to ease regression testing of the SCEX releases. Instead of manually going through a set of samples for each release (which would be slow, error-prone, and hence very difficult), Sherman and Associates created an application to automate the re-testing process. Please see the help available from within this application for further detail.
The following file(s) are installed if this component is selected:
..\InstallDir\AccountTest\*.*
-
SCEX Manual: What you are currently reading.
The following file(s) are installed if this component is selected:
InstallDir\scex_manual.pdf
-
Sample Source Code: We have provided sample source code which illustrates how to access the SCEX directly, in a variety of programming languages (currently C#, java, vb.net, and Visual C++).
The following file(s) are installed if this component is selected:
InstallDir\source\*.*
Along with the SCEX, Sherman and Associates includes the SCEX Loan Server. The SCEX Loan Server is only required if your application needs to connect to the SCEX through a TCP/IP interface. By default, the SCEX Loan Server is not installed. The following components may be installed for the SCEX Loan Server, if selected by the user:
-
System Files: In order to run the SCEX Loan Server Service, these system files must be installed. The service is not only installed in the installation directory, but also registered and started. Please see Appendix A and the
LoanServerService-README.txt
files for more information on the SCEX Loan Server.The following file(s) are installed if this component is selected:
InstallDir\LoanServerService.exe InstallDir\LoanServerService-README.txt
-
Sample Source Code: We have provided sample source code illustrating how to access the SCEX Loan Server, using a variety of programming languages (currently C, C#, Delphi, Java, PHP, and python).
The following file(s) are installed if this component is selected:
InstallDir\source\loanserver\*.*
Installation Folder
As in most Windows installation applications, you are free to select a folder in which the SCEX and its associated files will be installed. NOTE: If you are also installing the SCEX Loan Server Service, make sure that you install the files on a local drive. Please see Appendix A for more information.
Created Shortcuts
One or more shortcuts will be created in the Windows Start Menu, and will be accessible for all users. You will find these newly created shortcuts in Start ▸ All Programs ▸ Sherman and Associates ▸ SCEX.
-
Uninstall SCEX: This shortcut links to the SCEX uninstaller. Executing it will remove the SCEX and all associated components from your computer. If the SCEX Loan Server Service is installed, it will stop the service, unregister it with Windows, and then delete it as well. This shortcut is always created.
-
SCEX Test Application: A shortcut to run the SCEX test application. As would be expected, it is only created if the SCEX Test Application component is installed.
-
SCEX Account Tester: A shortcut to run the SCEX account tester application. This is only created if the SCEX Account Tester Application component is installed.
-
SCEX Manual: A link to the pdf manual for the SCEX. Only created if the SCEX Manual component is installed.
Uninstalling the SCEX
To uninstall the SCEX and all of its associated components, you have 2 options:
- Click on Start ▸ All Programs ▸ Sherman and Associates ▸ SCEX ▸ Uninstall SCEX.
- Go to Control Panel ▸ Add/Remove Programs ▸ Sherman and Associates ▸ SCEX.
The uninstaller will stop the SCEX Loan Server Service (if running), and remove files and folders as appropriate.
Upgrading the SCEX
If you have already installed a version of the SCEX and wish to upgrade the installation to a newer release, it is recommended that you first uninstall the already installed version first, and then install the newer release. This procedure will ensure that older, out-of-date files are removed and not left behind, which may happen if you simply install the new version in the same location as the older release.
Implementation Overview
Before you can harness the power of the SCEX calculation engine, you first need to be able to call the function(s) contained in the library from your development language.
Functional Interface
To make use of the SCEX, you will need to import one (and only one!) function
from the library into your programming environment. Any programming language
which can access functions inside shared libraries on your SCEX platform of
choice (current platforms supported include win-32, win-64 and linux-x86.64) and
has the appropriate data types necessary to call the xmlcalc_ddp()
routine
should be able to make use of the SCEX.
The only function exported from the SCEX library that is required for
implementation (and hence the only one you need to import) is called
xmlcalc_ddp()
. Here is the function declaration for xmlcalc_ddp()
, in Delphi
(object pascal, and the language in which the SCEX is written):
function xmlcalc_ddp(
xmlIn, xmlOut: PAnsiChar;
lenIn, lenOut: integer;
var reqIn, reqOut: integer;
DataDirPath: PAnsiChar
): integer; stdcall;
Note that for the Linux platforms, the stdcall
calling convention is replaced
with cdecl
.
The variable names are found to the left of the :
, with the variable type
found to its right. This function uses two types of variables: PAnsiChars
and
integers
. Integers are 32-bits in size, and are signed. PAnsiChars
are
pointers to ANSI character buffers, and in C are expressed as char *
. The
var
modifier indicates that the reqIn
and reqOut
variables are being
passed by reference instead of by value (like the variables xmlIn
, xmlOut
,
lenIn
and lenOut
are).
Now, let’s see how to go about importing this function in five different languages: Delphi, Visual C++, C#, vb.net, and Java.
Delphi
As the SCEX DLL is written in the Delphi programming environment, it is to be expected that importing the function into a Delphi application is a fairly simple process.
Place the following function declaration in the interface section of a Delphi unit:
function xmlcalc_ddp(
xmlIn, xmlOut: PAnsiChar;
lenIn, lenOut: integer;
var reqIn, reqOut: integer;
DataDirPath: PAnsiChar
): integer; stdcall; external 'SCEX.DLL'
In this same unit, place the following code in the interface section. Please note that there is no semicolon at the end of this line, and that the SCEX DLL must reside in the same location as your application for this method to work.
Visual C++
To use the xmlcalc_ddp()
routine in your Visual C++ application, you will need
to dynamically load the library in your code and get the process address for the
xmlcalc_ddp()
function in that Library. This is best done in your
application’s initialization routines, so that once your application has started
the function is ready to accept calls. When you terminate the application, then
you free up the dynamically loaded library in your code’s termination routine.
The relevant Windows API calls which are used in this process are:
LoadLibrary()
, GetProcAddress()
, and FreeLibrary()
. For more information,
please see the sample code (installed when you install the SCEX Sample Source
Code component during the SCEX installation).
C#
To import that xmlcalc_ddp()
function into your C# project from scratch, you
will need to use System.Runtime.InteropServices
. Furthermore, you will also
need to be familiar with the StringBuilder
class in System.Text
, which is
the C# equivalent of a character buffer.
For a complete SCEXWrapper class, please see the sample code (installed when you install the SCEX Sample Source Code component during the SCEX installation).
Java
As of release 2018-07-0 of the SCEX, a Java Native Interface function is
included in the SCEX library for all supported platforms, and a Java class which
implements the JNI call is provided in the sample source code directory
java\Scex.java
(note that if you did not install the sample source code during
installation, then this file will not be present).
To illustrate the use of the Scex.java
class, we have also included a simple
Java class (Main.java
) which creates an instance of the Scex
class, sets up
an SCEX XML query, and then calls the SCEX and displays the result code and
resulting XML.
Note that when using the JNI interface to the SCEX, you must always specify a
fully qualified path name for the DTD file, and you must also always specify the
DataDirPath
attribute for those XML queries which accept one.
If you wish to modify any aspects of the Scex.java
file, please carefully read
the comments included in it. The JNI function included in the SCEX DLL expects
and requires many different facets of class Scex
to be as described, and
modifying these will result in a non-functional interface. It is our
recommendation that Scex.java
be left as is unless you are very familiar with
the JNI.
Implementing the xmlcalc_ddp()
Function
If you are directly calling the xmlcalc_ddp()
function exported from the SCEX
DLL (instead of using one of the wrapper classes provided with the sample source
code), then the next step is to understand the function’s parameters and return
results. If you are using one of the provided wrapper classes, then
implementation is a bit easier.
Calling xmlcalc_ddp()
Directly
If you wish to directly access the xmlcalc_ddp()
function, then there are
three facets which you must consider: variable declarations, memory allocation
and result interpretation.
Variable Declarations
There are four classifications of variables passed to the xmlcalc()
routine:
pointers to character buffers, allocated buffer sizes, required buffer sizes,
and the default data directory path.
The xmlIn
and xmlOut
variables are pointers to character buffers which your
application has allocated (see Memory Allocation, below). The input buffer
xmlIn
is filled by your application before calling xmlcalc_ddp()
, and its
contents represent an XML query sent to the SCEX. The result of the query will
be returned in the xmlOut
buffer, so long as no errors are encountered (see
Result Interpretation, below).
The lenIn
and lenOut
variables are the lengths of the associated buffers. It
is critical that your application correctly set the values of these variables to
represent the allocated lengths of the input and output buffers, respectively.
By informing the SCEX of the size of the input and output buffers, buffer
over-runs and the errors that they cause will be non-existent.
The reqIn
and reqOut
are return parameters used to indicate the necessary
size of the input and output buffers. These two result parameters are very
useful when you have not allocated enough space for the input or output buffers,
as indicated by a given function result code (see Result Interpretation, below).
Finally, the DataDirPath
specifies a default data directory for the SCEX to
use if one is not supplied in the XML input. Please see documentation on the
DataDirPath
attribute in the chapter covering Equal Payment Loans for the
meaning of this variable.
Memory Allocation
As noted above, providing a buffer into which both the SCEX and your example can copy xml code is of paramount importance. The exact function calls and variable types that you must vary from language to language. Here are a few samples:
-
Delphi: To allocate memory for the character buffers which will hold the
xmlcalc_ddp()
input and output, you can useGetMem(buffer, length)
, where buffer is of typePAnsiChar
(a pointer to character) andlength
is the requested length of the character buffer, in bytes. Once you are done with the character buffers, make sure to free up the memory which was dynamically allocated using theFreeMem(buffer)
procedure, where buffer is again aPChar
. -
C, Visual C++: To allocate memory for the input and output buffers in C and Visual C++, use the standard library functions
malloc()
andfree()
. See the Visual C++ sample application for an example of how the buffers are dynamically allocated. -
C#, vb.net: Use the
StringBuilder
class fromSystem.Text
. See sample code for an example of its use (and a more user friendly wrappers aroundxmlcalc()
).
Result Interpretation
After calling xmlcalc_ddp()
, you should always check the integer return value
to ensure that the call finished successfully, and if it did not, what kind of
error occurred. Please see Table 3.1 on page 13 for a comprehensive list of
result codes accompanied by a description of each.
Result Code | Description |
---|---|
0 | Successful calculation. Results are in xmlOut . |
1 | Not enough input space reserved. More buffer space is required to write the XML inputs. The minimum size required for the input buffer is returned in the reqIn parameter. |
2 | Not enough output space reserved. More buffer space is required to write the XML outputs. The minimum size required for the output buffer is returned in the reqOut parameter. |
3 | XML Output is not well formed. XML output violates at least one rule defining well-formed XML data. |
4 | XML output is not valid. |
-1 | XML input is not well formed. XML input violates at least one rule defining well-formed XML data. |
-2 | XML input is not valid. (See the various query interface chapters for definitions of valid XML input). |
-3 | An exception occurred within the SCEX. |
Optional API Functions
Besides the very important xmlcalc_ddp()
routine exported from the SCEX, there
are other helpful routines which may be of use during development. Each of these
routines is described below.
scex_calc_alloc()
and scex_calc_free()
The scex_calc_alloc()
routine behaves identically to the xmlcalc_ddp()
routine, with the exception that the library function will automatically
allocate the necessary output buffer. When first calling this routine, ensure
that the output buffer is initialized to NULL
and the size of the output
buffer is set to zero.
Using this function will prevent calling xmlcalc_ddp()
twice when the space
allocated by the calling application for the output buffer is too small, and
thus can effectively cut the calculation speed in half in these instances.
Since the library is allocating the space necessary for the XML output buffer,
the library also must be responsible for freeing this allocated space. Thus,
there is the associated scex_calc_free()
library function.
Note that many of the sample code wrappers provided have been enhanced to use these new routines to ensure maximum performance.
Here are the function declarations for scex_calc_alloc()
and
scex_calc_free()
, in Delphi (object pascal, and the language in which the SCEX
is written):
function scex_calc_alloc( InBuff : PAnsiChar;
var OutBuff : PAnsiChar;
InBuffSize : integer;
var OutBuffSize : integer;
RootPath : PAnsiChar
): integer; stdcall;
function scex_calc_free( var OutBuff : PAnsiChar;
var OutBuffSize : integer
): integer; stdcall;
Module Structure
A module is a specific calculation request sent to the SCEX for computation. The core of this manual is a description of each module available in the SCE. This module declaration functions as a switchboard identifier which the SCEX uses to direct the request data to the appropriate colculation.
The SCEX make heavy use of default values in order to precisely represent a loan in question. This maximally scaled-down approach enhances human readability of the XML. Therefore, optional elements and attributes not required for a particular loan should be omitted from the input payload. This best-practice strategy makes understanding a particular loan much easier than having a voluminous and confusing sprawl of irrelevent data.
In general, elements provide structure whereas attributes fine-tune various options available for the element.
XML Request Structure
As a rule of thumb, the root element for an XML request payload is named in (for input) and the name of the module.
<inMODULE Attributes>
<!-- Data Elements -->
<Element_Data Attributes>data</Element_Data>
<!-- Empty Elements -->
<Element_Empty Attributes/>
<!-- Parent-Child Structures (usually optional) -->
<Parent_Element Attributes>
<Child_Element Attributes>data</Child>
</Parent_Element>
</inMODULE>
Below is a sample Loan Builder loan request with life protection, illustrating this structure:
<!-- Module Name requesting a Loan Builder calculation -->
<inLOAN_BUILDER>
<!-- Empty Elements (IntRate, Advance, Payment Stream) with attributes -->
<EditInterest Date="2024-12-01" AccrualCode="320" IntRate="5.000" />
<Advance Date="2024-12-01" Amount="10000.00" />
<PmtStream Begin="2025-01-01" Term="12" />
<!-- Parent: Loan Protection -->
<Protection>
<!-- Both Parent and Child: Life Protection -->
<Product Code="LI">
<!-- Child: Birthday of applicant -->
<Birthday>1966-04-16</Birthday>
</Product>
</Protection>
</inLOAN_BUILDER>
This common structure facilitates faster understanding of the SCEX modules.
XML Response Structure
Just as all xml module requests are preceded by in, their corresponding response root element name is preceded with an out plus the module name. The basic structure of an SCEX Response is as follows:
<outMODULE Attributes>
...
</outMODULE>
Though the SCEX has broad functionality, its current primary usage is in loan computation. Whether that loan module is LOAN_BUILDER, ARM, or any other, the structure of the output is as follows:
<outMODULE Attributes>
<Results>
<!-- Success, Failure, Warnings -->
<Description>*Success or Failure in the calculation request*</Description>
<XMLDetail>XML Error: An issue that caused the failure.</XMLDetail>
<XMLDetail>XML Warning: The calculation went through, but unexpected behavior is being reported.</XMLDetail>
<!-- One or more key numeric results. e.g. Payment -->
<Payment>326.55</Payment>
</Results>
</outMODULE>
XML Legend
Color Codes
XML elements and attributes are geometrically color-coded to quickly signal whether or not they are required.
Elements
🟥 Required
(Type)
🟦 Optional
(Type, Default)
*
Asterisk means "multiple elements are allowed".
- "Type" is a top-level explanation of the function of the data element (explained in the first table below).
- "Multiple" means that the element may occur more than once.
Attributes
- 🔸
Required
(Format) - 🔹
Optional
(Format, Default)
Types
XML elements and attributes are classified as one of the following types:
Type | Description |
---|---|
Module | The root level element that functions as an empty parent element that signals the Module request for calculation |
Parent | An empty element with child elements and attributes |
Child | Element is a child element of a parent |
Empty | An element whose data is packaged solely as attributes |
Format | Data is to be provided within strict formatting requirements. Please see the Formats table below. |
Formats
Data sent to the SCEX via element and attribute values is parsed according to the expected format, each of which is described below:
Format | data | example | description |
---|---|---|---|
boolean | true, false, 1, 0 | false | Used when data requires only a true or false result |
range | Contiguous data | [1..120] | A contiguous set of numeric values captured in brackets, such as the exemplified "all integers from 1 to 120." |
enum | Set of labels | [nearest, up, down] | An 'enum' is an enumeration of isolated values often defined with a linked table |
date | YYYY-MM-DD | 2024-01-23 | Dates are packaged as standard xml dates (See the <Format> element for other options.) |
currency | Cash values | 10021.31 | A number appropriate for a country's currency is expected |
decimal | decimal data | 5.321 | A generic designation for a number that may contain decimals. e.g. An interest rate |
integer | whole number | 120 | A generic designation for a non-negative integer |
text | A sequence of characters | "DocFee" or "" | Pure text, often for names |
char | A single character | "." or "" | A single character or the absence of a character |
Loan Builder
The Loan Builder module may be used to compute almost any loan imaginable, from the simplest equal payment loan to loans that have exotic and highly customized features.
Sample Request
The following sample illustrates the core structure of a Loan Builder request. It is a request for an equal payment loan with a single advance of $10,000, accruing interest at 5.0%, with a term of 12 months.
<inLOAN_BUILDER>
<Advance Date="2024-12-01" Amount="10000.00" />
<EditInterest Date="2024-12-01" AccrualCode="320" IntRate="5.000" />
<PmtStream Begin="2025-01-01" Term="12" />
</inLOAN_BUILDER>
Sample Response
The following response is returned from the SCEX when provided with the sample request (above).
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE outLOAN_BUILDER SYSTEM "outLOAN_BUILDER.dtd">
<outLOAN_BUILDER>
<Results>
<Description>Successful Calculation</Description>
</Results>
<FedBox>
<AmtFin>10000.00</AmtFin>
<FinChg>272.60</FinChg>
<TotPmts>10272.60</TotPmts>
<RegZAPR Type="Actuarial">4.995</RegZAPR>
</FedBox>
<Moneys>
<Proceeds>10000.00</Proceeds>
<Principal>10000.00</Principal>
<Interest>272.60</Interest>
</Moneys>
<Accrual>
<Method>Actual/365 USRule</Method>
<Days1Pmt DayCount="Actual">31</Days1Pmt>
<Maturity>2025-12-01</Maturity>
</Accrual>
<PmtStream Term="12" Pmt="856.05" Rate="5.000" Begin="2025-01-01" PPY="12"/>
<AmTable>
<AmLine Idx="0" Date="2024-12-01" BegBal="0.00" Pmt="0.00" Int="0.00" Prin="-10000.00" UnpaidInt="0.00" EndBal="10000.00"/>
<AmLine Idx="0" Date="2024-12-01" BegBal="10000.00" Pmt="0.00" Int="0.00" Prin="0.00" UnpaidInt="0.00" EndBal="10000.00"/>
<AmLine Idx="1" Date="2025-01-01" BegBal="10000.00" Pmt="856.05" Int="42.47" Prin="813.58" UnpaidInt="0.00" EndBal="9186.42"/>
<AmLine Idx="2" Date="2025-02-01" BegBal="9186.42" Pmt="856.05" Int="39.01" Prin="817.04" UnpaidInt="0.00" EndBal="8369.38"/>
<AmLine Idx="3" Date="2025-03-01" BegBal="8369.38" Pmt="856.05" Int="32.10" Prin="823.95" UnpaidInt="0.00" EndBal="7545.43"/>
<AmLine Idx="4" Date="2025-04-01" BegBal="7545.43" Pmt="856.05" Int="32.04" Prin="824.01" UnpaidInt="0.00" EndBal="6721.42"/>
<AmLine Idx="5" Date="2025-05-01" BegBal="6721.42" Pmt="856.05" Int="27.62" Prin="828.43" UnpaidInt="0.00" EndBal="5892.99"/>
<AmLine Idx="6" Date="2025-06-01" BegBal="5892.99" Pmt="856.05" Int="25.03" Prin="831.02" UnpaidInt="0.00" EndBal="5061.97"/>
<AmLine Idx="7" Date="2025-07-01" BegBal="5061.97" Pmt="856.05" Int="20.80" Prin="835.25" UnpaidInt="0.00" EndBal="4226.72"/>
<AmLine Idx="8" Date="2025-08-01" BegBal="4226.72" Pmt="856.05" Int="17.95" Prin="838.10" UnpaidInt="0.00" EndBal="3388.62"/>
<AmLine Idx="9" Date="2025-09-01" BegBal="3388.62" Pmt="856.05" Int="14.39" Prin="841.66" UnpaidInt="0.00" EndBal="2546.96"/>
<AmLine Idx="10" Date="2025-10-01" BegBal="2546.96" Pmt="856.05" Int="10.47" Prin="845.58" UnpaidInt="0.00" EndBal="1701.38"/>
<AmLine Idx="11" Date="2025-11-01" BegBal="1701.38" Pmt="856.05" Int="7.23" Prin="848.82" UnpaidInt="0.00" EndBal="852.56"/>
<AmLine Idx="12" Date="2025-12-01" BegBal="852.56" Pmt="856.05" Int="3.50" Prin="852.55" UnpaidInt="0.00" EndBal="0.01"/>
</AmTable>
</outLOAN_BUILDER>
Loan Builder - Request
Please see the Legend to understand the conventions used to document each element and attribute. Note that for requests, the XML elements are documented in alphabetical order by parent element.
🟥 <inLOAN_BUILDER>
Element Type | Data Type |
---|---|
Parent | - |
This is the root element of the request, and is required. This contains child elements which specify the particulars of the requested loan.
Attributes:
🔹Country
🔹 Country
Data Type | Values | Default |
---|---|---|
Alpha-2 or Numeric-3 code | See table | US |
This attribute allows the calling application to specify a two (2) character
or three (3) digit country code. If none is provided, then a default value of
US
will be used. Please see this table of supported countries
and their associated codes.
Currently, the country code is used to determine the default value of the Code
attribute of the <APR>
element.
🟥 <Advance>[]
Element Type | Data Type |
---|---|
Empty | - |
Cash advances to the customer are specified by using the following attributes of this empty element.
Attributes:
🔹Amount
,🔹Compute
,🔸Date
,🔹ExtraDays
,🔹NewPmt
,🔹Position
🔹 Amount
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
The proceeds to be advanced to the borrower is defined using this attribute. If
the calling application requests that the advance be computed (see the
Compute
attribute below), then the value of this attribute
will be added to the computed advance amount, which can be useful in multiple
advance loans.
🔹 Compute
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Some applications like to provide useful what-if calculations, such as, "how much can I afford to borrow given a specified loan term, interest rate, and payment stream?" Here at Sherman and Associates, we call this a Roll to Advance calculation.
If the value of this attribute is true
, then the calling application is
requesting that the SCEX calculate one or more advances given a specified term,
interest rate, and payment stream. With this in mind, all
<PmtStream>
elements (which define the specified payment streams
in the loan) may not have a PmtType
of CalcPmt
.
Usually, all payment streams will be defined using a
PmtType
of FixedPmt
.
We have provided several XML samples which illustrate various Roll to Advance calculations in the /samples directory included with the SCEX installer, for your reference.
🔸 Date
Data Type | Values |
---|---|
Date | >= 1900-01-01 |
This attribute holds the XML date on which the advance is made. All dates must
be in the form of YYYY-MM-DD, and be 10 characters long. Hence, an advance date
of January 2, 2008 would be specified as Date="2008-01-02"
.
🔹 ExtraDays
Data Type | Values | Default |
---|---|---|
Integer | any | 0 |
Increase or decrease the number of days between this event and the next event by
the value of this attribute. e.g. 1
will be considered one more day of interest.
🔹 NewPmt
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the payment should change to reflect a new advance, set this attribute to
true
; otherwise, the payment will not change after this event. If only one
<Advance>
element is being used, then this attribute should be omitted
altogether.
🔹 Position
Data Type | Values | Default |
---|---|---|
Enum | BeforePmt , AfterPmt | BeforePmt |
If an advance and a payment fall on the same day, the value of this attribute determines which event occurs first in the amortization schedule. Note that the first advance of every loan is required to occur before the first scheduled payment.
BeforePmt
- When the advance occurs on the same date as a payment, the advance is amortized before the payment.AfterPmt
- When the advance occurs on the same date as a payment, the payment is amortized before the advance.
🟦 <APR>
Element Type | Data Type |
---|---|
Empty | - |
Settings related to the computed effective rate returned by the SCEX (most commonly, the Regulation Z APR in the United States of America) are contained in the attributes of this otherwise empty element.
Attributes:
🔹Code
,🔹Decimals
,🔹MAPR_Max
,🔹Max
,🔹SinglePayFraction
,🔹StrictTime
,🔹UseMAPR
🔹 Code
Data Type | Values | Default |
---|---|---|
Enum | see table below | see below |
The method of APR computation is defined by this attribute. If this attribute is
not set up, the default method depends upon the value of the
Country
attribute. For the United States of America, the
default value is 100
(Actuarial). For a country in the European Union, the
default value is 50
(European Union APR). For Canada, the default value is
60
.
APR Code | Description |
---|---|
0 | Not computed |
10 | Account opening disclosure of open-end Loan (APR will equal the Interest Rate) |
20 | Microsoft®@Excel extended internal rate of return (XIRR) |
30 | Unit period 360 internal rate of return (XIRR360) |
40 | Unit period internal rate of return (IRR) |
41 | Yield unit period internal rate of return (IRR) |
50 | European Union APR |
60 | Canadian APR |
100 | Actuarial |
301 | UnitPeriod True/360/360 US Rule |
302 | UnitPeriod True/360/365 US Rule |
303 | UnitPeriod True/360/DaysPerPeriod (e.g. 91 for quarterly payment frequencies) |
304 | UnitPeriod True/360/365.25 US Rule |
305 | UnitPeriod True/365/360 US Rule |
306 | UnitPeriod True/365/365 US Rule |
307 | UnitPeriod True/365/DaysPerPeriod (e.g. 91 for quarterly payment frequencies) |
308 | UnitPeriod/365.25 US Rule |
309 | UnitPeriod True/365.25 US Rule |
310 | Actual/360 US Rule |
311 | True/365/360 US Rule |
320 | Actual/365 US Rule |
321 | True/365/365 US Rule |
330 | Actual/Actual US Rule |
331 | Midnight/366 US Rule |
340 | Actual/365.25 US Rule |
🔹 Decimals
Data Type | Values | Default |
---|---|---|
Integer | [1...5] | 3 |
The number of decimal places of accuracy for the disclosed APR is determined by
this attribute. The default value of this attribute is 3
.
🔹 MAPR_Max
Data Type | Values | Default |
---|---|---|
Decimal | [-99.999...600] | 36.0 |
If you are computing the Military APR (see UseMAPR below) and wish to override
the default maximum APR value of 36%
, then specify the desired maximum as the
value of this attribute.
🔹 Max
Data Type | Values | Default |
---|---|---|
Decimal | [-99.999...600] | 0 |
If the calling application wants the SCE to check the computed APR against a
specified maximum APR, then specify the maximum APR using this attribute. If a
maximum is specified, then this maximum will be included in the
<RegZAPR>
response element in the
Max
attribute, and a
MaxExceeded
attribute will also be
returned to inform the calling application whether or not the specified maximum
was exceeded.
🔹 SinglePayFraction
Data Type | Values | Default |
---|---|---|
Enum | InDays , InMonths | InDays |
This attribute only applies to single advance, single payment transactions of
term less than one year. For these loans, when the term of the loan is a number
of months, Appendix J allows for the term of the loan to be expressed as either
a number of months over twelve, or the number of actual 24-hour days in the loan
over 365. For the former, use InMonths
. For the latter, use InDays
.
🔹 StrictTime
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
When monthly payments are intended for the 29th or 30th of the month, how should
the number of unit periods and fraction be calculated in February, when the day
of the payment cannot be the intended day? (e.g. A non-leap year February where
payments are meant for the 29th, but end up on the 28th). StrictTime
acknowledges and disambiguates the calculation. Regular payments generally hold
the fraction of a unit period constant, based on the date of the first payment.
The SCEX allows for a constant fraction of a unit period or a strict time
accounting, acknowledging that in February, the fraction of a unit period
changes.
When the value of this attribute is true
, the SCEX will calculate the fraction
of a unit period strictly according to the rules of Appendix J of Regulation Z.
A value of false
instructs the SCEX to keep the fraction of a unit period
constant, equal to the fraction obtained by the time calculated from the date of
the first payment to the transaction date.
🔹 UseMAPR
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to a value of true
, then the SCEX will compute the
Military APR in addition to the Regulation Z APR. The
<MAPR>
element will be included in the XML loan
response.
🟦 <BalAdj>[]
Element Type | Data Type |
---|---|
Empty | - |
The balance that evolves with the amortizing of a loan may be adjusted to either
a specific amount called a Target
, or by a specific an
amount called an Adjust
. This element helps support open
ended lending products, such as HELOCs.
🔹 Adjust
Data Type | Values | Default |
---|---|---|
Currency | any | 0 |
The value of the Adjust
attribute instructs Loan Builder to adjust the balance
by the amount defined, arriving at a Target
equal to the sum
of the current balance and the Adjust
value. Either a
Target
or an Adjust
must be defined, but not both.
🔸 Date
Data Type | Values |
---|---|
Date | see below |
The Date
attribute for the <BalAdj>
element is used to define the
date on which the adjustment to the loan balance is expected to occur. When the
date occurs on the same day as a payment, the payment occurs before the balance
adjusts.
Because one often frames the balance adjusting ”after the 12th payment”, for instance, a date masking is provided to accomplish this objective. So, rather than defining the date in the usual YYYY-MM-DD date format, the date can be defined in a nnnn-00-00 format, where ”nnnn” is the left zero-filled payment index after which the adjustment occurs.
So, if we know the 12th payment occurs on February 1st, 2025, the following balance adjustments are equivalent:
<BalAdj Date="2025-02-01" Target="5000" />
<BalAdj Date="0012-00-00" Target="5000" />
🔹 NewPmt
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the payment should change to reflect the balance adjustment, set this
attribute to true
; otherwise, the payment will not change after this event.
🔹 Target
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
The value of the Target
attribute instructs the SCE to adjust the balance to
the target amount, calculating the necessary Adjust
amount
to meet that objective. Either a Target
or an Adjust
must
be defined, but not both.
🟦 <BusinessRules>
Element Type | Data Type |
---|---|
Empty | - |
Certain loan calculation business rules may be configured using the attributes of this otherwise empty element.
Attributes:
🔹AmError
,🔹AmortizeOnly
,🔹CanSkipFirst
,🔹CanSkipLast
,🔹ClosedFormEqn
,🔹LeapYearRound
,🔹MinFinChg
,🔹MinIntChg
,🔹MYED
,🔹PmtAccrualCode
,🔹OddFirstPmt
,🔹ProtMandatory
,🔹UsRuleAprException
,🔹YieldPPY
,🔹ZeroInterestRule
🔹 AmError
Data Type | Values | Default |
---|---|---|
Enum | Allow , AdjPmt , AdjPrin , AdjInt | Allow |
When amortizing a loan, often times there is a non-zero ending balance due to rounding. This attribute determines what to do (if anything) with a non-zero ending balance. This non-zero balance is referred to as the amortization error.
Allow
- Do not do anything with the non-zero ending balance.AdjPmt
- Adjust the final payment to achieve perfect amortization, which will then result in an ending balance of zero.AdjPrin
- Adjust the final principal reduction amount to achieve perfect amortization, which will then result in an ending balance of zero.AdjInt
- Adjust the final interest reduction amount to achieve perfect amortization, which will then result in an ending balance of zero.
Note that using AdjPrin
or AdjInt
will cause the final payment to not equal
the sum of the principal reduction amount and amount to interest in the
amortization schedule.
🔹 AmortizeOnly
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application sets the value of this attribute to true
, then
instead of computing a loan with payments that best amortize the principal
balance to zero, the Loan Builder module is instructed to simply amortize the
specified loan (all advances and payments specified by the calling application)
and return the ending balance.
To use this functionality, there are a few requirements that must be met:
- All specified payment streams must have a
PmtType
of other thanCalcPmt
. In AmortizeOnly mode, the Loan Builder will not compute "regular" principal and interest payments. - No protection products may be requested.
- All advances must be specified, and not computed.
AmError
must be set toAllow
.
Furthermore, the output for an AmortizeOnly="true"
Loan Builder request will
omit the <FedBox>
and
<Moneys>
output elements.
🔹 CanSkipFirst
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Set this attribute to true
to allow the first payment of a loan to be skipped.
The default value of false
does not allow a skipped first payment.
🔹 CanSkipLast
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Set this attribute to true
to allow the last payment of a loan to be skipped.
The default value of false
does not allow a skipped final payment.
🔹 ClosedFormEqn
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
When searching for the payment that best amortizes the loan to zero, this
setting determines whether or not interest is rounded during the payment search
algorithm. The default value of true
indicates that the closed form equation
should be matched, and interest will be left unrounded during the payment search
algorithm. Setting this attribute value to false
will cause interest to be
rounded during the payment search algorithm.
🔹 LeapYearRound
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the value of this attribute is true
and one of the actual/actual interest
accrual calendars (including Midnight366) is used in the requested loan, then
the interest accrued on a 365 days basis is rounded separately from the interest
accrued on a 366 days basis. Note that this option is encountered very rarely
in the marketplace.
If the value of this attribute is false
, then interest computed on a 365 day
basis will be added to the interest computed on a 366 day basis, and then
rounded.
🔹 MinFinChg
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
This attribute allows the calling application to specify a minimum allowed finance charge for the loan. If a value greater than zero is specified, then the loan will be computed in the normal manner, along with the finance charge. If the computed finance charge falls below the specified minimum, then the final payment's interest charge will be adjusted to meet the specified minimum.
Note that the minimum interest charge is checked before the minimum finance
charge. If the loan triggered a minimum finance charge adjustment, then the
amount of this adjustment will be disclosed in the
<MinFinChgAdj>
child element of the
<Moneys>
response element.
Note that since the minimum finance charge check is done after the loan payment and protection calculations have been completed, certain protection products whose calculations may vary due to a modified final payment will not reflect any minimum finance charge adjustments made to the final payment.
🔹 MinIntChg
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
This attribute allows the calling application to specify a minimum allowed interest charge for the loan. If a value greater than zero is specified, then the loan will be computed in the normal manner, along with the interest charge. If the computed interest charge falls below the specified minimum, then the final payment's interest charge will be adjusted to meet the specified minimum.
Note that the minimum interest charge is checked before the minimum finance
charge. If the loan triggered a minimum interest charge adjustment, then the
amount of this adjustment will be disclosed in the
<MinIntChgAdj>
child element of the
<Moneys>
response element.
Note that since the minimum interest charge check is done after the loan payment and protection calculations have been completed, certain protection products whose calculations may vary due to a modified final payment will not reflect any minimum interest charge adjustments made to the final payment.
🔹 MYED
Data Type | Values | Default |
---|---|---|
MM-DD | see below | n/a |
The MYED
attribute represents the Mortgage Year End Date when computing an
annual rest loan, a loan which is commonly encountered in the United Kingdom. If
you do not need to compute an annual rest loan, then this attribute need not be
included in the request XML.
If included in the XML, then the value of the attribute must be in the format of
"MM-DD" where MM is a valid month number from 1 to 12, and DD is a valid day
number in the month specified. The month and day specified is the annual date on
which escrowed payments and interest are applied to the outstanding principal
balance. When the MYED
is specified, you must also specify a
<PmtStream>
element with a PmtType
attribute value of PmtEsc
, which indicates an escrowed payment.
🔹 OddFirstPmt
Data Type | Values | Default |
---|---|---|
Enum | true , false , OnlyPositive | false |
If the first payment should be adjusted (up or down) due to odd days interest in
the same manner that interest is accruing in the loan, then set the value of
this attribute to true
. A value of OnlyPositive
instructs the SCE to only
adjust the first payment due to odd days if there are positive odd days.
Finally, a value of false
instructs the SCE to not adjust the first payment
using this method.
Note that you cannot specify an odd first payment using this attribute and
include <OddDaysPrepaid>
in the same
request.
🔹 PmtAccrualCode
Data Type | Values | Default |
---|---|---|
Enum | see accrual code table | default |
In rare instances, the calculated payment for a given loan is based upon a
different accrual calendar than the one used to amortize interest in the
amortization schedule. This is most commonly encountered when a system is not
able to compute the ‘best’ payment, and instead uses a simpler accrual calendar
with a closed form equation (such as unit period simple). An estimated payment
is computed, then used in the amortization schedule where interest is accrued on
a different calendar. Note that this will almost always generate an ending
balance of greater magnitude that the ‘correct’ payment, unless the
AmError
attribute is used to adjust the final payment.
A value of default
means that the payment will be computed using the same
accrual calendar as interest. Any other value will cause the computed payment to
be calculated using the accrual code specified.
🔹 ProtMandatory
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the value of this attribute is set to true
, then protection premiums/fees
will be considered to be a part of the Finance Charge, and thus affect the
Regulation Z APR.
🔹 UsRuleAprException
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
The US Rule APR Exception is an option used by some financial institutions that
accrue interest in a US Rule manner, and also disclose the US Rule APR. If this
attribute is omitted or set to false
, the US Rule APR will always be computed.
If the value of this attribute is set to true
and the following conditions are
met: (i) interest is accrued via a US Rule method, (ii) A US Rule APR method
matching the accrual method has been specified, (iii) the Regulation Z Finance
Charge is equal to the interest charge, and (iv) there is only a single
<EditInterest>
event, then the US Rule APR will be disclosed
as the interest rate.
🔹 YieldPPY
Data Type | Values | Default |
---|---|---|
Enum | [0, 2, 4, 6, 12] | 0 |
Canadian mortgages may compute periodic interest using a fractional power of a
periodic yield. If set to a value other than 0
, this value determines the
period. Please contact us for further information if you support mortgage
calculations in Canada. Note that when using this attribute with a value other
than zero, the calling application must include an odd days prepaid fee in the
request.
🔹 ZeroInterestRule
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the value of this attribute is true
and (i) the interest rate for the
entire term of the loan is 0%, or (ii) the computed interest charge for the loan
is less than zero, then the interest charge will be set to a value of zero, and
the Regulation Z Finance Charge will be adjusted in an identical manner.
Note that setting the value of this attribute to true
will likely cause the
sum of the principal and interest to no longer equal the total of payments
(similarly for the Amount Financed and Finance Charge). Sherman and Associates
do not recommend that you set the value of this attribute to true
before
consulting with your legal counsel in regards to these and other unforseen
consequences.
Lastly, all payment rounding is forced to be rounded down to the nearest penny. This adjustment ensures that the sum of payments never exceeds the Principal Balance of the loan.
🟦 <Capitalize>[]
Element Type | Data Type |
---|---|
Empty | - |
Some loans require interest to be capitalized on specific dates, irrespective of
any other considerations. For these events, use the <Capitalize>
element.
Attributes:
🔹AllowFeb29
,🔸Date
,🔹Holidays
,🔹PPY
,🔹SemimonthlyDay
,🔹Term
,🔹Weekends
🔹 AllowFeb29
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
This attribute is used when generating event dates in a capitalization stream
(if any) beyond the specified Date date of the <Capitalize>
element. If the value of this attribute is true
, then February 29th is an
allowed date.
On the other hand, if the value of this attribute is set to false
and a
computed date in the given capitalization stream is scheduled to fall on
February 29th, then the scheduled date will be altered in one of the following
manners:
If the number of payments per year is 1, 2, 4, 6, 12, or 24 then the scheduled date of February 29 will be moved back one day to February 28. This is the only date that will be adjusted.
If the number of payments per year is 26 or 52 then the scheduled date of February 29 will be moved forward one day to March 1, and all subsequent dates will be a multiple of 7 or 14 days from this date (depending upon the specified payment frequency).
🔸 Date
Data Type | Values |
---|---|
Date | >= 1900-01-01 |
The Date
attribute for the <Capitalize>
element is used to
specify the date on which to capitalize interest. (For a stream of Capitalize
events, see the Term
attribute.) As an example, if
interest is to be capitalized on Feb. 1, 2008, the attribute should be specified
as Date="2008-02-01"
.
🔹 Holidays
Data Type | Values | Default |
---|---|---|
Enum | Ignore , Prev , Next | Ignore |
If capitalization dates (including the specified start date) are not allowed to
fall on specified holidays (see the <Holiday>
element for more
information on how to specify holidays), then set the value of this field to
something other than Ignore. The meaning of the other two values are defined
below:
Ignore
- No holidays will be considered.Prev
- The date will be moved to the day before the holiday.Next
- The date will be moved to the Monday after the holiday.
Note that two other <Capitalize>
element attributes can cause
the computed dates to be adjusted - AllowFeb29
and
Weekends
. The rules for how these three fields
interact are described below in detail.
For every date required in our payment stream, the SCEX goes through the following steps:
- Generate the next date in our date stream, called the target date.
- If February 29th is not allowed and if the target date is 2/29, then adjust the target date forward or backward one day based upon the date generation frequency. If the frequency is a monthly multiple, then the target date is moved backward one day to 2/28. Weekly and biweekly frequencies move the target date forward one day to 3/1.
- If weekend dates are not allowed (e.g. the
Weekends
attribute holds a value other thanIgnore
) and the target date falls on a Saturday or Sunday:- (a) then adjust the target date according to the attribute value.
- (b) if February 29th is not allowed and if the target date is 2/29, then adjust the target date in the same direction as in 3(a) above.
- If holidays are not allowed (e.g. the
Holidays
attribute holds a value other thanIgnore
) and the target date falls on a specified holiday:- (a) then adjust the target date according to the
Holidays
attribute value. - (b) If weekend dates are not allowed (e.g. the
Weekends
attribute holds a value other thanIgnore
) and the target date falls on a Saturday or Sunday, then adjust the target date in the same direction as in 4(a) above. - (c) if February 29th is not allowed and if the target date is 2/29, then adjust the target date in the same direction as in 4(a) above.
- (d) Step 4 is repeated until the target date is not adjusted.
- (a) then adjust the target date according to the
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | 1 , 2 , 4 , 6 , 12 , 24 , 26 , 52 | 12 |
PPY is an abbreviation for payments per year, and as one might surmise, determines the capitalization frequency for the loan. If only one capitalization event occurs or the stream of capitilization events are monthly, this attribute may be ignored.
🔹 SemimonthlyDay
Data Type | Values | Default |
---|---|---|
Integer | [0...31] | 0 |
When specifying a semimonthly stream, the day number on which the first
capitalization event occurs determines the day number for all of the following
odd numbered events. If you omit this attribute or specify a value of 0
, then
the even numbered events will be generated using the default method within the
SCEX.
If you wish to specify the day number on which even numbered events fall
(overriding the default method used in the SCEX), then set the value of this
attribute to the desired day number. Setting the value of this attribute to 31
will cause all even events to fall on the last day of the month.
As an example, if you want to specify a semi-monthly capitalization stream beginning on January 1, 2014 with events that fall on the 1st and 15th of each month for 24 events, the element should look something like this:
<Capitalize Date="2014-01-01" Term="24" PPY="24" SemimonthlyDay="15" />
🔹 Term
Data Type | Values | Default |
---|---|---|
Integer | >= 1 | 1 |
The Term
attribute indicates the the number of capitalization events to be
made at the specified frequency (see PPY
above). The
default value is 1
. If only one capitalization event is to be used, ignore
this attribute.
🔹 Weekends
Data Type | Values | Default |
---|---|---|
Enum | Ignore , Prev , Near , Next | Ignore |
If capitalization stream dates (including the specified start date) are not
allowed to fall on a Saturday or Sunday, then set the value of this field to
something other than Ignore
. The meaning of the other three values are defined
below:
Prev
- The date will be moved to the Friday before the computed weekend date.Near
- The date will be moved to the Friday before the computed weekend date if the computed weekend date falls on a Saturday, otherwise it will be moved to the Monday after.Next
- The date will be moved to the Monday after the computed weekend date.
Note that two other attributes can cause the computed dates to be adjusted -
AllowFeb29
and
Holidays
. For a complete description of how these
three fields work together, please see the documentation for the
Holidays
attribute.
🟦 <Construction>
Element Type | Data Type |
---|---|
Empty | - |
This element is used when a loan features a construction period, during which time interest only payments are made by the borrower. Construction periods always begin on the date of the first advance.
Generally speaking, there are two methods used to disclose construction loans. The first method computes the total estimated interest due during the construction period, and treats it as an unfinanced prepaid fee. The second method discloses discrete interest only payments in the amortization schedule during the construction period.
To emulate the first method, simply include the <Construction>
element and
ensure that no payment events are set up to occur during the construction
period. The construction interest will be computed and returned in the
<ConInterest>
response element with the
IsPrepaid
field set to true
.
To emulate the second method, set up an interest only payment stream which
begins during the construction period, with the final interest only payment
occurring on the construction period's ending date. The interest only payments
will then appear in the resulting amortization schedule, and the total
construction interest will be returned in the
<ConInterest>
response element with the
IsPrepaid
field set to false.
Attributes:
🔸EndDate
,🔹HalfCommitment
🔸 EndDate
Data Type | Values |
---|---|
Date | see below |
The date on which the construction period terminates.
All dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence,
to end the construction period on July 4, 2011, the attribute would be specified
as EndDate="2011-07-04"
. If the calling application sets up discrete interest
only payments during the construction period, then the EndDate
may also be
specified as occurring on a given payment number nnnn as EndDate="nnnn-00-00"
.
🔹 HalfCommitment
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
During the term of the construction loan, the estimated interest for disclosure
purposes may be either computed on the full or half commitment amounts. By
setting this attribute to true
, interest will be estimated using half of the
initial commitment amount (i.e. the principal balance). The default value of
false
will cause interest to be estimated using the entire initial commitment
amount.
🟦 <EditInterest>[]
Element Type | Data Type |
---|---|
Empty | - |
This element is used to specify how interest is calculated. The element itself is empty, with all data for interest accrual specified in the following attributes.
Attributes:
🔹AccrualCode
,🔹Capitalize
,🔹Date
,🔹ExtraDays
,🔹IntRate
,🔹IntRound
,🔹NewPmt
,🔹PmtRound
🔹 AccrualCode
Data Type | Values | Default |
---|---|---|
Enum | see accrual codes table | default |
The method of interest accrual is defined by this attribute. default
means one
of two things: (i) if no accrual method has beend defined at all, then use the
system default of 201
, or (ii) if an accrual code has been previously defined,
then continue to use that method. Please see the Loan Builder Accrual Codes and
Descriptions table for the meanings of each code.
Add-on interest methods 401..406 have restrictions that apply. Only equal
payment loans with one <EditInterest>
element may use add-on
interest. In addition, construction loans may not be used with add-on interest.
Protection products (if any) must be single premium.
🔹 Capitalize
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If interest due is to be added to principal (capitalized) on the specified
Date
, set this attribute’s value to true
.
🔹 Date
Data Type | Values | Default |
---|---|---|
Date | see below | see below |
Set the date of this event. If the date is omitted, the system will use the date of the earliest advance. If an advance has not yet been specified, the system will return an error message.
All dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence,
to change the interest rate on January 2, 2008, the attribute would be specified
as Date="2008-01-02"
.
However, to provide power and flexibility to the calling application, the SCEX will also understand Date values in the following formats:
nnnn-00-00
- If you wish to change an interest accrual parameter on the date of a specific payment number (n), use a value of nnnn-00-00. Thus, an attribute value of0012-00-00
instructs the engine to set the date of this event equal to that of the 12’th payment. A value of 0000-00-00 will set the date of the event equal to the date of the first advance.
🔹 ExtraDays
(integer, 0)
Data Type | Values | Default |
---|---|---|
Integer | any | 0 |
Increase or decrease the number of days between this event and the next event by
the value of this attribute. e.g. 1
will be considered one more day of interest.
🔹 IntRate
Data Type | Values | Default |
---|---|---|
Decimal | [-99.999...600] | see below |
Defines the interest rate that applies at and beyond this event. If no IntRate
is specified, the previously defined interest rate is used. A value of zero will
be used if no previous IntRate has been defined.
🔹 IntRound
Data Type | Values | Default |
---|---|---|
Enum | nearest , up , down | nearest |
Defines how the computed interest amount is to be rounded.
🔹 NewPmt
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the payment should change to reflect a new interest rate, set this attribute
to true
; otherwise, the payment will not change after this event. If only one
<EditInterest>
element is being used, then this attribute
should be omitted altogether.
🔹 PmtRound
Data Type | Values | Default |
---|---|---|
Enum | default , nearest , up , down , best | default |
This attribute allows the calling application to specify a payment rounding option which will override the value found in the setup file. If not specified, then the value of default will be used. The linked table lists all valid payment rounding codes available.
default
- Use method specified in setup filenearest
- Round computed payment to the nearest penny, using 5/4 rounding. e.g. 300.242 = 300.24, 300.245 = 300.25.up
- Round computed payment up to the next penny. e.g. 300.241 = 300.25.down
- Round computed payment down to the previous penny. e.g. 300.249 = 300.24.best
- Once the unrounded payment has been computed, amortize the loan using the rounded down and rounded up payment, and then return the payment which amortizes the loan’s ending balance closest to zero.
Note: If the ZeroInterestRule
attribute
of the <BusinessRules>
element is set to true
and all interest
rates are zero, payments are forced to be rounded down. This rule ensures the
total of payments never exceeds the amounts of the loan to pay off (the
principal balance).
🟦 <EditInterest>[]
→<Tier>[]
Element Type | Data Type |
---|---|
Empty | - |
To compute interest using a split rate method, where different rates are applied
to different parts of the balance, the calling application will need to specify
a <Tier>
element with its associated Rate
and
Ceiling
attributes. Note that the
IntRate
which is used above the final
Ceiling
is the one specified in the
<EditInterest>
element. Furthermore, the <Tier>
elements
must be ordered in ascending order based upon the Ceiling
amount.
As an example, assume that the calling application needs to charge 20% on the first $100, 15% up to $250, and 10% for the remaining balance. The XML needed to implement this split rate structure is:
<EditInterest Date="2020-04-01" IntRate="10.000" AccrualCode="201">
<Tier Rate="20.000" Ceiling="100" />
<Tier Rate="15.000" Ceiling="250" />
</EditInterest>
🔸 Ceiling
Data Type | Values |
---|---|
Currency | >= 0 |
Defines the upper bound of the principal to which the specified split rate tier will apply.
🔸 Rate
Data Type | Values |
---|---|
Decimal | [-99.999...600] |
Defines the interest rate that applies to this split rate tier.
🟦 <EditOutput>
Element Type | Data Type |
---|---|
Empty | - |
Changes to the presentation of the output data are contained in the attributes of this otherwise empty element.
Attributes:
🔹EarlyPayoffDate
,🔹KeepSlush
,🔹Merge
,🔹PmtDollarRound
,🔹ShowAmTable
,🔹ShowFees
,🔹ShowGrandTot
,🔹ShowSubTot
,🔹ShowTap
,🔹ShowType
,🔹TagPmts
🔹 EarlyPayoffDate
Data Type | Values | Default |
---|---|---|
Date | see below | no early payoff |
Specifying an EarlyPayoffDate
results in a two-step computation: compute the
loan completely ignoring the EarlyPayoffDate
, then eliminate all events
subsequent to the early payoff date and payoff the loan on that early payoff
date. One common use of this attribute is to generate computed regular payments
based upon a longer amortization term, with a final balloon payment made on the
early payoff date (much like the <inBALLOON_SPECIFY_AMORT>
query).
omitted
- IfEarlyPayoffDate
is omitted, no early payoff will be computed.YYYY-MM-DD
- If an early payoff date is in the format of a valid XML date (i.e. YYYY-MM-DD), the loan will be paid off on the specified date.nnnn-00-00
- If the early payoff date is in the format of nnnn-00-00, then the loan will be paid off by the n'th payment.
🔹 KeepSlush
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Rounding interest each period numerically eliminates values beyond two decimal
places. This amount is referred to as slush. To keep this amount and add it to
next period’s unrounded interest, set KeepSlush
to true.
🔹 Merge
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the value of this attribute is set to true
, then payment elements will be
merged together whenever possible. For example, if one event is of type
CalcPmt
, and another on the same day is PayPrin
, then this attribute
determines whether or not these two events will be combined into a single
payment event or left as separate and distinct events.
🔹 PmtDollarRound
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Payments are normally rounded to the penny, according to the method specified by
the PmtRound
attribute of the
<EditInterest>
element. If the payment should be rounded to
the dollar instead of the penny, then set the value of this attribute to true
.
Note that for some loans (such as those with longer terms or relatively small
proceeds), rounding the payment up or to the nearest dollar may require a
shortened loan term to prevent one or more negative payments at the end of the
loan.
🔹 ShowAmTable
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
To suppress the entire amortization schedule from the response, set this
attribute value to false
; otherwise, the amortization schedule will be returned.
🔹 ShowFees
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to false
, then fees will not explicitly appear in the
amortization schedule, unless they do not occur on the date of an advance or the
date of a payment. They will also not be individually listed under the
<Moneys>
element of the outputs.
A value of true
means that all fees will be explicitly accounted for, both in
the <Moneys>
element as child elements and in the
amortization table. The Type attribute will have the name of the fee as its
value.
🔹 ShowGrandTot
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
To show the amortization schedule grand totals in the response, set this
attribute value to true
; otherwise, the grand totals will not be returned.
🔹 ShowSubTot
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
To show the amortization schedule annual subtotals in the response, set this
attribute to true
; otherwise, annual subtotals will not be returned.
🔹 ShowTap
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | see below |
If not specified, the default value of this attribute is determined by the
Country
specified. If the Country
is GB
(United Kingdom), then the default value is true
. All other country values
will default this attribute to false
.
The value of this attribute determines if the total amount payable output
element (i.e. <TAP>
) will be computed and disclosed in
the response. This quantity is broadly defined as the total of payments plus
fees that do not enter into the amortization table in any way.
🔹 ShowType
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Each line of the amortization schedule is characterized by a type, which
describes the particular amortization event. An EditInterest
event is
different from a FixedPmt
event, for example. Set this attribute to true
to
report the Type
of each amortization event. A
value of false
will suppress output of the
Type
attribute in the amortization schedule.
🔹 TagPmts
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the value of this attribute is set to true
, then each
<PmtStream>
result element will include an
Idx
attribute which identifies the input
payment element which gave rise to it. If this attribute is set to true
, then
the Merge
attribute must be set to false
. If both are
set to true
, then an error will be returned.
🟦 <EndBal>
Element Type | Data Type | Values | Default |
---|---|---|---|
Currency | Integer | >= 0 | 0 |
When computing a loan, the usual intention is to compute a payment which
produces an ending balance of zero at the end of the repayment schedule.
However, in some international markets (such as Australia / New Zealand), some
loans are computed with a specified ending balance greater than zero. To support
these types of loans, the <EndBal>
element is provided.
If omitted, the desired ending balance at the end of the repayment schedule is defaulted to 0. To specify a desired ending balance greater than zero, simply specify the desired ending balance as an appropriately formatted currency value as the element’s value.
For example, if the desired ending balance is $50,000.00, then you would include
<EndBal>50000.00</EndBal>
in your request.
Note that if an ending balance greater than zero has been specified, then no protection products are allowed to be written with the loan, and the APR (and MAPR if requested) are not computed.
Attributes: None
🟦 <Fee>[]
Element Type | Data Type |
---|---|
Empty | - |
Single occurrence and recurring fees are passed to the engine using the attributes of this empty element.
Attributes:
🔹AddToFinChg
,🔹AddToPrin
,🔹Adjust
,🔹AllowFeb29
,🔸Amount
,🔹Blended
,🔹CalcType
,🔹Date
,🔹EqualServChg
,🔹Holidays
,🔹LastDay
,🔹MAPR
,🔹Max
,🔹Min
,🔹Name
,🔹Position
,🔹PPY
,🔹Round
,🔹RoundBasis
,🔹SemimonthlyDay
,🔹ServChgType
,🔹Term
,🔹Weekends
🔹 AddToFinChg
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this fee should be included in the Reg. Z Finance Charge (and hence, affect
the APR), then set this attribute to true
. The default value of false
indicates that the fee does not affect the Finance Charge nor APR.
🔹 AddToPrin
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this fee should be added to the principal balance (e.g. the fee is financed
along with the advance(s)), then set this attribute to true
. If set to
false
, then the fee is paid up front out of the borrower’s pocket.
🔹 Adjust
Data Type | Values | Default |
---|---|---|
Currency | any | 0 |
The optional Adjust
attribute allows the calling application to increase or
decrease the base amount on which a fee is calculated. If a negative value is
specified and this adjustment would produce a negative base amount, then a value
of zero is returned for the given fee. This attribute has no effect on fees with
a CalcType
of Dollar
.
As an example, in Tennessee you may need to define a financed, non-APR affecting fee to be computed by decreasing the amount financed by $2,000, and then multiplying this reduced amount by 0.115. The way to accomplish this in the SCEX is as follows:
<Fee Name="TN_Fee" CalcType="OnAmtFin" Adjust="-2000" Amount="0.115"
AddToPrin="true" AddToFinChg="false" />
🔹 AllowFeb29
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
This attribute is used when generating fee dates in a fee stream (if any) beyond
the specified Date date of the <Fee>
element. If the value of this attribute
is true, then February 29th is an allowed fee date.
On the other hand, if the value of this attribute is set to false
and a
computed date in the given fee stream is scheduled to fall on February 29th,
then the scheduled fee date will be altered in one of the following manners:
- If the number of payments per year is 1, 2, 4, 6, 12, or 24 then the scheduled fee date of February 29 will be moved back one day to February 28. This is the only date that will be adjusted.
- If the number of payments per year is 26 or 52 then the scheduled fee date of February 29 will be moved forward one day to March 1, and all subsequent fee dates will be a multiple of 7 or 14 days from this date (depending upon the specified payment frequency).
🔸 Amount
Data Type | Values | Default |
---|---|---|
see below | >= 0 | 0 |
How this attribute is interpreted depends upon the CalcType
attribute.
🔹 Blended
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
The Blended
attribute determines how the SCEX will include the fee with a
payment or advance.
true
in an advance tells the SCEX that the amount of the advance already includes the fee.false
means to add the fee on top of the existing advance.true
in a payment means that the payment has the fee already included in it.false
means the fee is added on top of the payment.
🔹 CalcType
Data Type | Values | Default |
---|---|---|
Enum | Dollar , OnProceeds , OnPrincipal , OnAmtFin , OnBalance , OnBalanceFlat | Dollar |
This attribute specifies how the fee is to be computed, as described in the table below:
Dollar
- TheAmount
attribute is understood as a flat currency amount.OnProceeds
- TheAmount
attribute is understood as a percentage value, to be applied to the loan’s proceeds, defined as the sum of advances. AnAmount
of0.25
would represent a fee of 0.25% of the total proceeds.OnPrincipal
- TheAmount
attribute is understood as a percentage value, to be applied to the loan’s principal balance. AnAmount
of0.125
would represent a fee of 0.125% of the principal balance.OnAmtFin
- TheAmount
attribute is understood as a percentage value, to be applied to the loan’s Regulation Z Amount Financed. AnAmount
of0.33
would represent a fee of 0.33% of the amount financed.OnBalance
- TheAmount
attribute is understood as an annual percentage value, to be applied to the current balance of the loan when the fee is assessed, and accrued using the interest accrual calendar in effect. AnAmount
of12.0
would represent a fee accrued at an annual rate of 12.0% of the current balance.OnBalanceFlat
- TheAmount
attribute is understood as a flat percentage value, to be applied to the current balance of the loan when the fee is assessed. AnAmount
of1.0
would represent a fee of 1.0% of the current balance.
🔹 Date
Data Type | Values | Default |
---|---|---|
Date | see below | see below |
The date on which a fee occurs. If this element defines a stream of more than
one fee, then this attribute defines the date on which the first fee occurs. If
the date is the same as an advance or payment, the fee is loaded into the
advance or payment event; otherwise, the fee is a stand-alone event. All dates
must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a fee date
of January 2, 2008 would be specified as Date="2008-01-02"
.
A special format is accepted for annual fees (PPY
value of 1
) paid on a
specific calendar month of the year. Using 0000-MM-00
as a value for
Date
instructs the SCE to pay the fee on the MM payment of the payment
stream. For example, 0000-06-00
instructs the system to pay this fee on June
Payments.
If the Date
attribute is not specified, then it will default to the earliest
specified Advance Date.
🔹 EqualServChg
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
When a fee is set up as a service charge of type ByTerm
(see
ServChgType
), this attribute determines if all the service
charge fee payments should be forced to be equal (a value of true
), or if the
final service charge fee payment can be different from the others due to
rounding (a value of false
).
🔹 Holidays
Data Type | Values | Default |
---|---|---|
Enum | Ignore , Prev , Next | Ignore |
If capitalization dates (including the specified start date) are not allowed to
fall on specified holidays (see the <Holiday>
element for more information on
how to specify holidays), then set the value of this field to something other
than Ignore
. The meaning of the other two values are defined below:
Ignore
- No holidays will be considered.Prev
- The date will be moved to the day before the holiday.Next
- The date will be moved to the Monday after the holiday.
Note that two other element attributes can cause the computed dates to be
adjusted - AllowFeb29
and Weekends
. The
rules for how these three fields interact are described below in detail.
For every date required in our payment stream, the SCE goes through the following steps:
- Generate the next date in our date stream, called the target date.
- If February 29th is not allowed and if the target date is 2/29, then adjust the target date forward or backward one day based upon the date generation frequency. If the frequency is a monthly multiple, then the target date is moved backward one day to 2/28. Weekly and biweekly frequencies move the target date forward one day to 3/1.
- If weekend dates are not allowed (e.g. the
Weekends
attribute holds a value other thanIgnore
) and the target date falls on a Saturday or Sunday:
- (a) then adjust the target date according to the attribute value.
- (b) if February 29th is not allowed and if the target date is 2/29, then adjust the target date in the same direction as in 3(a) above.
- If holidays are not allowed (e.g. the
Holidays
attribute holds a value other thanIgnore
) and the target date falls on a specified holiday:
- (a) then adjust the target date according to the
Holidays
attribute value. - (b) If weekend dates are not allowed (e.g. the
Weekends
attribute holds a value other thanIgnore
) and the target date falls on a Saturday or Sunday, then adjust the target date in the same direction as in 4(a) above. - (c) if February 29th is not allowed and if the target date is 2/29, then adjust the target date in the same direction as in 4(a) above.
- (d) Step 4 is repeated until the target date is not adjusted.
🔹 IsLoanCost
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
When requesting the new TILA RESPA outputs (via the
<TILARESPA2015>
element), the SCEX needs to know which fees need
to be considered "borrower paid loan costs", as defined in the rule. Please note
that if the fee is paid by a lender or other third party, then the fee does not
affect the loan calculation and should not be sent to the SCEX. If it is sent,
then the value of this attribute should be set to false
.
🔹 LastDay
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
This attribute is used to resolve ambiguities in subsequent fee dates when the
Date
falls on the last day of a month with fewer than 31 days. If
the value of the Date
attribute is not a valid date, then the
value of this attribute is ignored. If the value of the Term
attribute is 1
, then the value of this attribute is ignored.
Set this attribute’s value to true
if the intent was to make subsequent fees
occur on the last day of the month. A value of false
indicates that subsequent
fee dates will fall on the day number specified by the Date
date.
As an example, if the calling application specifies a Date
of
2010-02-28
, then subsequent fee dates for a monthly fee frequency will be:
- on the 28th of each subsequent month if
LastDay="false"
. - on the last day of each subsequent month if
LastDay="true"
.
🔹 MAPR
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If you wish to compute the Military APR, then certain fees may not be considered
Regulation Z APR affecting fees, but are considered Military APR affecting fees.
In this case, you will need to set the value of this attribute to true
.
Fees which are added to the finance charge (see
AddToFinChg
) are always considered MAPR fees, regardless
of the stated value of this attribute.
Note that debt protection products are automatically included in the calculation of the Military APR, no matter what method is used for payment (e.g. single premium vs. monthly outstanding balance).
🔹 Max
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If a maximum value for the fee is specified and is greater than zero, then if the computed fee exceeds this maximum value, then the maximum value will be used instead. If no maximum value is specified or is set to a value of zero, then no maximum will be enforced. Please note that this attribute is applied to all fee types supported. Also, note that a specified maximum value is checked after enforcing a specified minimum value, and hence a specified maximum value trumps a specified minimum.
🔹 Min
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If a minimum value for the fee is specified and is greater than zero, then if the computed fee is less than this minimum value, then the minimum value will be used instead. If no minimum value is specified or is set to a value of zero, then no minimum will be enforced. Please note that this attribute is applied to all fee types supported. Also, note that a specified minimum value is checked before enforcing a specified maximum value, and hence a specified maximum value trumps a specified minimum.
🔹 Name
Data Type | Values | Default |
---|---|---|
Text | any | n/a |
This attribute is for convenience purposes only, and does not affect the calculation of the fee in any manner. However, the value of this attribute will be used to identify the fee in the returned response, and hence it is highly recommended that you name your fees accordingly.
🔹 Position
Data Type | Values | Default |
---|---|---|
Enum | Default , OnAdvance , BeforePmt , InPmt , AfterPmt , NotInPmt | Default |
Fees influence a loan depending on when they are applied.
OnAdvance
- The fee is included in the application of an advance.BeforePmt
- When the fee occurs on the same date as a payment, the fee is calculated before the payment amortizes the loan.InPmt
- The fee is included as part of the payment.AfterPmt
- When the fee occurs on the same date as a payment, the payment first amortizes the loan, then the fee is calculated and applied.NotInPmt
- The fee is paid on the same date as a payment but is not reflected in that payment. If the fee hasAddToFinChg="true"
, it is called a “Pocket APR” fee; otherwise it is a straight “Pocket Fee”.Default
- means different things, depending on when the fee occurs. A fee on an advance is treated as ifOnAdvance
were selected. A fee on a payment is treated as ifInPmt
were selected.
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | 1 , 2 , 4 , 6 , 12 , 24 , 26 , 52 | 12 |
PPY is an abbreviation for payments per year, and in the case of the
<Fee>
element, determines the frequency for the fee stream. If the
value of the Term
field is 1
, then the value of this field is
ignored.
🔹 Round
Data Type | Values | Default |
---|---|---|
Enum | nearest , up , down | nearest |
The value of this attribute, along with the with the
RoundBasis
attribute described below, determine how the
amount on which the fee is based is to be rounded.
For fee calculation types of OnPrincipal
, OnProceeds
, OnAmtFin
,
OnBalance
, and OnBalanceFlat
, the amount on which the fee is based is fairly
self evident: the starting principal balance, proceeds, amount financed, or the
outstanding balance at the time that the fee is assessed. Thus, if the calling
application requires a fee to be computed based upon 0.35% of the principal
balance rounded to the nearest $100, then the fee element would look something
like this:
<Fee Name="DocStamp" CalcType="OnPrincipal" Amount="0.35" RoundBasis="100.00"
Round="nearest" AddToPrin="true" AddToFinChg="false" />
For the Dollar
fee calculation type, the amount on which the fee is based is
defined as the fee amount passed into the engine. This allows the calling
application to pass in a precomputed fee amount and have the SCEX round it as
directed. As an example, here is the definition of a dollar fee which is rounded
up to the next dollar (the value of the fee below would then be $25 after
rounding):
<Fee Name="DocStamp" CalcType="Dollar" Amount="24.25" RoundBasis="1.00"
Round="up" AddToPrin="true" AddToFinChg="false" />
For the ServChg
fee calculation type, the amount on which the fee is based is
defined as the computed service charge amount, as defined by the
Amount
and ServChgType
attributes.
🔹 RoundBasis
Data Type | Values | Default |
---|---|---|
Currency | > 0 | 0.01 |
When rounding the amount on which the fee is based, the value of this attribute
determines the precision to which rounding is performed. The default value of
0.01
indicates that the rounding should be done to the penny, whereas a value of
100.0
indicates that rounding should take place to the nearest hundred dollars.
🔹 SemimonthlyDay
Data Type | Values | Default |
---|---|---|
Integer | [0...31] | 0 |
When specifying a semimonthly fee stream, the day number on which the first
fee is added determines the day number for all of the following
odd numbered events. If you omit this attribute or specify a value of 0
, then
the even numbered events will be generated using the default method within the
SCE.
If you wish to specify the day number on which even numbered events fall
(overriding the default method used in the SCE), then set the value of this
attribute to the desired day number. Setting the value of this attribute to 31
will cause all even events to fall on the last day of the month.
As an example, if you want to specify a semi-monthly $10 fee stream beginning on January 1, 2015 with fees that fall on the 1st and 15th of each month for 48 fees, the element should look something like this:
<Fee Name="Test Fee" Date="2015-01-01" Amount="10" Term="48" PPY="24"
SemimonthlyDay="15" />
🔹 ServChgType
Data Type | Values | Default |
---|---|---|
Enum | None , ByTerm , ByDays | None |
This attribute dictates whether or not a fee is treated as a service charge, and
if so, determines how the service charge dollar amount is paid off over the term
of the loan. If a fee should not be treated as a service charge, then the
default value of None
should be specified.
ByTerm
- means that the service charge is paid off by dividing the amount by theTerm
attribute of the same<Fee>
element.ByDays
- means that the service charge is paid off on payment dates. The amount of the fee is calculated as the number of days from the previous payment (or advance) divided by the total number of days in the term of the fee.
🔹 Term
Data Type | Values | Default |
---|---|---|
Integer | >= 1 | 1 |
The term attribute determines the the number of fees to be included at the
specified frequency (see PPY
below), after which the fee stream is
completed. The default value is 1. If the value of the Date
attribute is not a valid date, then the value of this attribute is ignored.
🔹 Weekends
Data Type | Values | Default |
---|---|---|
Enum | Ignore , Prev , Near , Next | Ignore |
If fee dates (including the specified start date) are not allowed to fall on a
Saturday or Sunday, then set the value of this field to something other than
Ignore
. The meaning of the other three values are defined below:
Prev
- The date will be moved to the Friday before the computed weekend date.Near
- The date will be moved to the Friday before the computed weekend date if the computed weekend date falls on a Saturday, otherwise it will be moved to the Monday after.Next
- The date will be moved to the Monday after the computed weekend date.
Note that two other attributes can cause the computed dates to be adjusted -
AllowFeb29
and Weekends
. For a complete description of
how these three ideas work together, please see the documentation for the
Holidays
attribute.
🟦 <Format>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | See attributes |
The <Format>
element is one of the first elements parsed from a request, as the
attributes of this empty element affect how date and numeric values are parsed
and validated.
Attributes:
🔹CurrencyDecimals
,🔹DateFormat
,🔹DateSeparator
,🔹DecimalSeparator
,🔹StrictDP
,🔹ThousandSeparator
🔹 CurrencyDecimals
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 | 2 |
When displaying and parsing Currency values, the value of this attribute
determines the maximum number of decimal places allowed after the
DecimalSeparator
.
🔹 DateFormat
Data Type | Values | Default |
---|---|---|
Enum | YMD , MDY , DMY | YMD |
When displaying and parsing Date values, this field determines the expected
format for all Date fields. The following DateFormat
options are allowed:
YMD
- All dates should be formatted as YYYY-MM-DD.MDY
- All dates should be formatted as MM-DD-YYYY.DMY
- All dates should be formatted as DD-MM-YYYY.
Note that the character which separates the individual month, day, and year
portions of the date is configurable via the
DateSeparator
attribute.
🔹 DateSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | - |
When displaying and parsing Date values, this attribute determines the character used to separate the individual month, day, and year portions of a date.
🔹 DecimalSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | . |
When displaying and parsing Currency or Decimal numeric values, this attribute determines the character used to separate the fractional part from the whole.
🔹 StrictDP
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 , | false |
If the value of this attribute is true
, then the SCE will strictly verify the
number of decimal places allowed for currency input values. Thus, if the calling
application sends in a request with a currency amount of 1000.005
, the SCE
will return an error code.
If the value of this attribute is false
, then currency values sent in with an
invalid number of decimal places will be rounded to the correct number of
decimal places by the SCE (using five/four rounding), and a warning message with
this information will be returned with the response.
🔹 ThousandSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | , |
When displaying numeric values, this attribute determines the character used to separate the thousands places from the hundreds. Note that when parsing numeric values, the value of this attribute is ignored.
🟦 <Holiday>[]
Element Type | Data Type |
---|---|
Empty | - |
If dates for <PmtStream>
and <Fee>
elements have
requested that holidays be skipped (e.g., the Holidays
attribute for the element in question is set to a value other than Ignore
),
then the request must specify each holiday to be considered, with each holiday
requiring at least one <Holiday>
element.
The <Holiday>
element itself is empty, as all required information for each
holiday is specified as an attribute of this element.
Attributes:
🔸Date
🔸 Date
Data Type | Values |
---|---|
Date | see below |
The Date attribute lets the calling application specify a holiday using one of the following formats:
YYYY-MM-DD
- A holiday can be defined by sending in a valid date, where YYYY is greater than or equal to 1900, MM is a valid month, and DD is a valid day for the given year and month.0000-MM-DD
- A holiday that occurs annually on the same month and day can be defined by sending in a valid month and day, with the year passed in as 0000. As an example, in the United States of America, Christmas is a Federal holiday celebrated on December 25th of each year. To pass this holiday into the SCEX, the<Holiday>
element would look like<Holiday Date="0000-12-25" />
.0001-MM-PD
- A holiday that occurs annually in the same month on a given day of the week (D) in a given position in the month (P) can be defined by sending in a valid month, position, and day of the week, with the year passed in as 0001. The value of D can be from 0 to 6, where 0 = Sunday, 1 = Monday, ..., 6 = Saturday. The value of P can be from 1 to 6, where 1 = 1st, 2 = Second, ..., 5 = 5th, 6 = last. As an example, in the United States of America, Thanksgiving is a Federal holiday celebrated on the 4th (P=4) Thursday (D=4) of November (MM=11) every year. To pass this holiday into the SCEX, the<Holiday>
element would look like<Holiday Date="0001-11-44" />
.0002-NN-NN
- A holiday that occurs annually but cannot be expressed using any of the above methods. Currently, the following special holidays are recognized by the SCEX:0001
- Good Friday0002
- Easter Sunday0003
- Easter Monday
🟦 <Mortgage_Insurance>
Element Type | Data Type | Values | Default |
---|---|---|---|
Parent | - | - | No mortgage insurance |
The <Mortgage_Insurance>
element determines if this loan includes one of the
supported types of mortgage insurance (MI) - PMI or FHA. This element contains
child elements which further specify mortgage insurance options.
NOTE: Mortgage insurance is only supported on equal, balloon, and interest only loan builder requests at this time.
Attributes:
🔹CashDown
,🔹LoanAmt
,🔸PropertyValue
,🔹Type
🔹 CashDown
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
The CashDown
attribute represents a cash down payment made at closing. If
specified and greater than zero, this amount will be deducted from the principal
balance. If not specified, the cash down payment will default to zero.
🔹 LoanAmt
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | Principal balance |
The LoanAmt
attribute represents the amount by which the PMI rates are
multiplied to produce a level PMI premium. If not specified, then the principal
balance will be used to compute the annual premium.
🔹 PropertyValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
This attribute’s value represents the appraised property value, and will be used in the calculation of the loan to value ratio.
🔹 Type
Data Type | Values | Default |
---|---|---|
Enum | pmi , fha | pmi |
This attribute determines the type of mortgage insurance to include with the
loan. If the Type
attribute is set to FHA
, a different MI premium is
computed every twelve months based upon the average outstanding principal
balance during that same term. The MI calculation adheres strictly to the HUD
regulation.
🟥 <Mortgage_Insurance>
→<MI_Rate>[]
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | >= 0 |
The value of this element specifies the cost of mortgage insurance per $100 of
the loan amount. Note that there may be more than one <MI_Rate>
element
defined in an XML loan request (see the Switch
attribute
below).
As an example, a loan computed with a MI rate of $1.50 per $100 would be
specified as <MI_Rate>1.50</MI_Rate>
.
Attributes:
🔸Switch
🔹 Switch
Data Type | Values | Default |
---|---|---|
Integer | > 0 | 0 |
This optional attribute defines the payment number beyond which the associated MI rate will apply. If not specified, the value will default to zero.
Thus, if there is only a single MI rate, one may omit this attribute. Single rate example (use a rate of $1.50 for the entire term of MI coverage):
<MI_Rate>1.50</MI_Rate>
Multiple rate example (use a rate of $1.50 for the first 10 years, with a rate of $0.20 for coverage beyond 10 years):
<MI_Rate>1.50</MI_Rate>
<MI_Rate Switch="120">0.20</MI_Rate>
🟦 <Mortgage_Insurance>
→<Periodic>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Integer | >= 0 | 0 |
The value of this element represents the term beyond which MI is no longer
included. As an example, if mortgage insurance must be removed after the 180th
payment, then the calling application should specify <Periodic>180</Periodic>
in the XML loan request. 0
means no term removal is in effect.
🔹 DropLTV
Data Type | Values | Default |
---|---|---|
Decimal | >= 0 and <= 100 | 0 |
The value of this attribute determines the loan to value ratio at which MI
should be removed, and is expressed as a percentage. For example, if you wish to
automatically drop MI when the loan to value ratio first equals or falls below
78%, then you would specify DropLTV="78.0"
.
🔹 WarnLTV
Data Type | Values | Default |
---|---|---|
Decimal | >= 0 and <= 100 | 0 |
The value of this attribute determines the loan to value ratio at which a
warning should be issued, and is expressed as a percentage of LTV (loan to
value). For example,if you wish to know when the loan to value ratio first
equals or falls below 80%, then you would specify WarnLTV="80.0"
.
🟦 <Mortgage_Insurance>
→<UpFront>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Decimal | >= 0 | 0 |
This element determines the up front fee for mortgage insurance, as disclosed in
the <PMI_Fee>
element in the results. If this element is not
specified, no up front fee will be computed. Note that ZOMP (zero option monthly
premium) products do not have an up front fee, which means that this element can
be omitted or set to zero.
The following attributes define how the fee is computed and disclosed.
🔹 Paid
Data Type | Values | Default |
---|---|---|
Enum | Financed , AtClosing , ByLender | AtClosing |
If the value of this attribute is set to Financed,
then the computed up front
fee will be added to the principal balance and the finance charge. A value of
AtClosing
will cause the value of the fee to be added to the finance charge
alone. Finally, a value of ByLender
means that the up front fee is to be paid by
the lender; hence, the value of the fee is a Pocket Fee that is not added to
either the principal balance nor the finance charge.
🔹 Units
Data Type | Values | Default |
---|---|---|
Enum | Months , Points , Years | Months |
If the Units attribute is set to Months
, the value of the
<UpFront>
element represents the number of periodic MI premiums to
be paid at closing.
If the Units attribute is set to Years
, the value of the
<UpFront>
element represents the number of annual MI premiums to
be paid at closing.
Many single premium products define the up front fee as a number of years of MI to be paid up front.
Finally, if the Units attribute is set to Points
, the value of the
<UpFront>
element represents the percentage of principal to be
paid up front. As of October 3, 2011, FHA loans use points.
🟦 <OddDaysPrepaid>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No odd days prepaid interest |
If odd days interest should be treated as a prepaid finance charge or added to the first payment, then include this empty element in the request. The attributes of this element determine how odd days interest is computed and handled.
Attributes:
🔹AccrualCode
,🔹AddToPmt
,🔹AddToPrin
,🔹AnchorDate
,🔹ForceUnitPeriod
,🔹NoCap
,🔹UseDailyCost
,🔹UseNegODI
🔹 AccrualCode
Data Type | Values | Default |
---|---|---|
Enum | See below | 220 |
The accrual code defines how the odd days interest is computed.
Note that accrual code 250
("Variable Days Per Year") defines the basis divisor
days to be equal to 12 multiplied by the number of days in the month of the date
on which interest begins to accrue. Thus, if the interest start date falls in
November, then the number of basis days is 360. If the interest start date falls
in a month with 31 days, then the number of basis days is 372. For an interest
start date in February, the number of basis days will either be 336 or 348,
depending upon whether or not it is a leap year.
AccrualCode | Description |
---|---|
204 | Unit period simple w/ true 360 calendar and 360 day divisor |
205 | Unit period simple w/ true 360 calendar and 365 day divisor |
210 | Actual / 360 simple |
211 | True 365 / 360 simple |
220 | Actual / 365 simple |
221 | True 365 / 365 simple |
230 | Actual / Actual simple |
231 | Midnight 366 simple |
250 | Unit period simple w/ variable DPY divisor |
🔹 AddToPmt
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application wants the odd days interest to be added to the first
payment, then set the value of this attribute to true
. A value of false
indicates that the odd days interest will be treated as a prepaid fee.
🔹 AddToPrin
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If any odd days interest should be treated as a financed prepaid fee, then set
the value of this attribute to true
. Note that if both
AddToPmt
and AddToPrin
are set to true
, then a warning
message will be returned by the SCEX and the value of AddToPrin
will be set to
false
.
🔹 AnchorDate
Data Type | Values | Default |
---|---|---|
Enum | BackUnitPeriod , BackDaysPerPeriod | BackUnitPeriod |
The computed number of odd days is the number of days between the loan date and the anchor date. This attribute determines how to arrive at the anchor date.
BackUnitPeriod
- The anchor date is one unit period prior to the specified first payment date.BackDaysPerPeriod
- The anchor date is the number of days per period prior to the first payment date.
Please note that for both of these methods, the period used will be that associated with the payment stream in which the first payment occurs.
🔹 ForceUnitPeriod
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the loan's interest accrual is unit period, this attribute forces the period
to the first payment to be 1/12 (or 1/(PmtsPerYear) in general). Without this
attribute an accrual code of 202
(Unit Period /365) would use a factor of
Days/365 rather than the expected 1/12.
🔹 NoCap
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
When an odd days interest fee is present and financed, the value of this
attribute determines if the ODI fee is added to the principal balance for the
purposes of computing the ODI fee (e.g. if it is capitalized). If this value is
true
, the ODI is computed on the true principal balance less the ODI; false
means "compute ODI on the true principal balance.
🔹 UseDailyCost
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the total odd days prepaid fee is computed by first generating a rounded (to
the nearest penny) daily cost and then multiplying this value by the computed
number of odd days, then set the value of this property to true
.
A value of false
means that the daily cost is left unrounded, and the total
prepaid fee is rounded after the computation is complete.
🔹 UseNegODI
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If there are negative odd days in the loan, then the value of this attribute
determines if a negative odd days interest fee is computed. If the value of this
attribute is false
, then negative odd days fees are not allowed, the SCEX will
return a value of zero in this situation, and the computed payment will be
adjusted to take into account the negative odd days. A value of true
will
return a negative odd days interest fee (in effect, it then becomes an odd days
interest credit) when there are negative odd days in a loan.
🟦 <PmtStream>[]
Element Type | Data Type |
---|---|
Empty | - |
Payment streams are defined using the attributes of this empty element, including individually defined payments.
Attributes:
🔹AllowFeb29
,🔹Amount
,🔸Begin
,🔹ComputeTerm
,🔹Holidays
,🔹LastDay
,🔹MinPmt
,🔹PmtType
,🔹PPY
,🔹ReplaceIdx
,🔹SemimonthlyDay
,🔹Term
,🔹Weekends
🔹 AllowFeb29
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
This attribute is used when generating payment dates (if any) beyond the
specified Begin
date of the <PmtStream>
element. If the value of this attribute is true
, then February 29th is an
allowed payment date.
On the other hand, if the value of this attribute is set to false
and a
computed date in the given payment stream is scheduled to fall on February 29th,
then the scheduled payment date will be altered in one of the following manners:
- If the number of payments per year is 1, 2, 4, 6, 12, or 24 then the scheduled payment date of February 29 will be moved back one day to February 28. This is the only date that will be adjusted.
- If the number of payments per year is 26 or 52 then the scheduled payment date of February 29 will be moved forward one day to March 1, and all subsequent payment dates will be a multiple of 7 or 14 days from this date (depending upon the specified payment frequency).
🔹 Amount
Data Type | Values | Default |
---|---|---|
Currency | see below | 0 |
The meaning of the Amount
attribute depends on the
PmtType
attribute.
CalcPmt
- If the value of this attribute is a currency value (e.g.Amount="####.##"
), then the value will be added to the calculated payment (also known as a "pickup payment"). If the suffix of the value is%
(e.g.Amount="50%
) then the value before the%
suffix will be treated as a percentage, and the payment will be equal to the specified percentage of the computed payment.FixedPmt
- The amount of the fixed payment. AnAmount="0"
means a skipped payment. If the suffix of the value is%
(e.g.Amount="1.0%"
) then the value before the%
suffix will be treated as a percentage, and the payment will be equal to the specified percentage of the loan's disclosed principal balance. Similarly, if the suffix of the value is%B
(e.g.Amount="5.0%B"
) then the value before the%B
suffix will be treated as a percentage, and the payment will be equal to the specified percentage of the loan's outstanding principal balance at the time the payment is made.PayInt
- Addition to the interest only payment. IfAmount="0"
, then it is an interest only payment. If the suffix of the value is%
(e.g.Amount="1.0%"
) then the value before the%
suffix will be treated as a percentage, and the principal portion of the payment will be equal to the specified percentage of the loan's disclosed principal balance. Similarly, if the suffix of the value is%B
(e.g.Amount="5.0%B"
) then the value before the%B
suffix will be treated as a percentage, and the principal portion of the payment will be equal to the specified percentage of the loan's outstanding principal balance at the time the payment is made. If the suffix of the value is%C
(e.g.Amount="50%C
) then the value before the%C
suffix will be treated as a percentage, and the principal portion of the payment will be equal to the specified percentage of the computed payment.PayPrin
- The amount of the pure principal reduction (no interest is paid, only principal). These payments may also use the%
,%B
, and%C
suffixes described above for thePayInt
payment type.PayEsc
- Special payment type associated withMYED
attribute of the<BusinessRules>
element.
🔸 Begin
Data Type | Values |
---|---|
Date | see below |
The Begin
attribute defines when the <PmtStream>
begins, and
has four ways to express when the payment stream begins: on a standard date, on
a payment number, every month or the month of a particular year. The special
formats are used following a full payment stream of type CalcPmt
. As an
example of how convenient these special format are, consider a ten year
teacher's loan that skips summer months. This task would require a voluminous
list of <PmtStream>
elements, were it not for the Month Number
format described below.
The formats are as follows:
- Standard Date (YYYY-MM-DD)
The Begin
attribute for the <PmtStream>
element is generally
used to specify the starting date for the payment stream in question. As an
example, if the payment stream should begin on Feb. 1, 2008, the attribute
should be specified as Begin="2008-02-01"
.
For payment frequencies that are monthly multiples, the day number specified in
this attribute specifies the desired day number of all future payments, if this
day number does not exceed the number of days in the computed month. As an
example, if the first payment is scheduled to be made in February of 2022 and
the desired day for all payments is the 30th, then the attribute would be
specified as Begin="2022-02-30"
.
- Payment Number (nnnn-00-00)
If you wish to replace a previously defined payment by specifying the payment
number (n), use a value of nnnn-00-00. For example, an attribute value of
0012-00-00
instructs the engine to replace payments starting on the 12’th
payment. If the value of the Term
attribute is greater than
one, then that number of payments will continue to be replaced.
Example: To define a stream of 12 interest only payments followed by 48 computed payments, the following XML could be used:
<PmtStream PmtType="CalcPmt" Begin="2014-12-20" Term="60" PPY="12" />
<PmtStream PmtType="PayInt" Begin="0001-00-00" Term="12" PPY="12" />
- Month Number (0000-mm-00)
If a special payment is to occur on a specific month every year, use this format. The following example skips the summer months of June, July and August on a ten-year teacher's loan:
<PmtStream PmtType="CalcPmt" Begin="2014-12-20" Term="120" />
<PmtStream PmtType="FixedPmt" Begin="0000-06-00" Amount="0" />
<PmtStream PmtType="FixedPmt" Begin="0000-07-00" Amount="0" />
<PmtStream PmtType="FixedPmt" Begin="0000-08-00" Amount="0" />
- Month of a Year (yyyy-mm-00)
If only the month of a particular year needs adjusting, use the "yyyy-mm-00"
format. e.g. A value of 2011-08-00
instructs the SCEX to use the defined
payment for every payment occurring in August of 2011 (there can be more than
one payment if the payment frequency is greater than monthly).
NOTE - if the value of the Begin
attribute is not a valid date (i.e. it is
instead of one of the three formats mentioned above), then the
LastDay
, Term
, and
PPY
attributes will be ignored, unless otherwise noted
above.
🔹 ComputeTerm
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If set to true
, then the ComputeTerm
attribute is used to inform the Loan
Builder module that the calling application is requesting an equal payment “roll
to term” loan calculation. In this loan scenario, the calling application
specifies the interest rate, amount requested, maximum desired payment amount,
and maximum loan term. The Loan Builder module will then compute the shortest
term to produce an equal payment amount less than or equal to the specified
maximum payment.
As an example, the following partial XML request would direct the Loan Builder module to compute the term for an equal payment loan with an interest rate of 5.00%, an advance of $5,000, a maximum desired payment amount of $300, and a maximum allowed loan term of 60 monthly payments:
<Advance Date="2021-08-01" Amount="5000.00" />
<EditInterest Date="2021-08-01" IntRate="5.000" />
<PmtStream Begin="2021-09-01" PmtType="FixedPmt"
Amount="300.00" Term="60" ComputeTerm="true" />
Note that in the above partial XML request, the PmtType
must be set to FixedPmt
, the value of the Amount
attribute is set to the maximum desired payment amount, and the value of the
Term
attribute is set to the maximum term allowed.
🔹 Holidays
Data Type | Values | Default |
---|---|---|
Enum | Ignore , Prev , Next | Ignore |
If payment dates (including the specified start date) are not allowed to fall on
specified holidays (see the <Holiday>
element for more information on how to
specify holidays), then set the value of this field to something other than
Ignore
. The meaning of the other two values are defined below:
Ignore
- No holidays will be considered.Prev
- The date will be moved to the day before the holiday.Next
- The date will be moved to the Monday after the holiday.
Note that two other <PmtStream>
element attributes can cause the
computed dates to be adjusted - AllowFeb29
and
Weekends
. The rules for how these three fields interact
are described below in detail.
For every date required in our payment stream, the SCE goes through the following steps:
- Generate the next date in our date stream, called the target date.
- If February 29th is not allowed and if the target date is 2/29, then adjust the target date forward or backward one day based upon the date generation frequency. If the frequency is a monthly multiple, then the target date is moved backward one day to 2/28. Weekly and biweekly frequencies move the target date forward one day to 3/1.
- If weekend dates are not allowed (e.g. the
Weekends
attribute holds a value other thanIgnore
) and the target date falls on a Saturday or Sunday:- (a) then adjust the target date according to the attribute value.
- (b) if February 29th is not allowed and if the target date is 2/29, then adjust the target date in the same direction as in 3(a) above.
- If holidays are not allowed (e.g. the
Holidays
attribute holds a value other thanIgnore
) and the target date falls on a specified holiday:- (a) then adjust the target date according to the
Holidays
attribute value. - (b) If weekend dates are not allowed (e.g. the
Weekends
attribute holds a value other thanIgnore
) and the target date falls on a Saturday or Sunday, then adjust the target date in the same direction as in 4(a) above. - (c) if February 29th is not allowed and if the target date is 2/29, then adjust the target date in the same direction as in 4(a) above.
- (d) Step 4 is repeated until the target date is not adjusted.
- (a) then adjust the target date according to the
🔹 LastDay
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
This attribute is used to resolve ambiguities in subsequent payment dates when
the Begin
date falls on the last day of a month with fewer
than 31 days. If the value of the Begin
attribute is not a
valid date, then the value of this attribute is ignored. If the value of the
Term
attribute is 1
, then the value of this attribute is
ignored.
Set this attribute’s value to true
if the intent was to make subsequent
payments occur on the last day of the month. A value of false
indicates that
subsequent payment dates will fall on the day number specified by the
Begin
date.
As an example, if the calling application specifies a
Begin
date of 2010-02-28
, then subsequent payment dates
for a monthly payment frequency will be:
- on the 28th of each subsequent month if
LastDay="false"
. - on the last day of each subsequent month if
LastDay="true"
.
🔹 MinPmt
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If specified, this field will dictate a minimum payment. If a calculated payment falls below the specified minimum payment value, then the minimum payment value will be used instead.
When a minimum payment is used, the principal reduction of the loan will be
accelerated. In some loan scenarios, this will result in an early payoff of the
loan before the specified Term
of the payment stream. In
this situation, the final payment will always pay off the loan, and will be
smaller than the specified minimum payment.
🔹 PmtType
Data Type | Values | Default |
---|---|---|
Enum | CalcPmt , FixedPmt , PayInt , PayPrin , PmtEsc | CalcPmt |
Various types of payment streams may be requested by use of this attribute.
CalcPmt
- Compute target payment(s) that defines a common payment.FixedPmt
- Payments in this stream are specified as theAmount
attribute. If theAmount="0"
, the payment is skipped.PayInt
- Interest only payments with or without additional principal defined as theAmount
attribute.PayPrin
- Pure principal payment. Interest accrued will persist as unpaid interest beyond the pure principal payment.PmtEsc
- Escrow the payments. Each payment will increase a pool of escrowed payments that amortize the loan on the year-end date. (SeeMYED
attribute of the<BusinessRules>
element).
Same Day Payments - By design or chance, payments can land on the same
calendar day. How they behave depends on the combination of PmtType
attributes. All possible combinations are considered below:
-
CalcPmt
+CalcPmt
- Merge into oneCalcPmt
event whoseAmount
is equal to the sum of the individualAmount
attributes. -
CalcPmt
+FixedPmt
- Replace theCalcPmt
with theFixedPmt
. -
CalcPmt
+PayInt
- Replace theCalcPmt
with thePayInt
. -
CalcPmt
+PayPrin
- If thePayPrin
Amount
is specified as a fixed dollar amount, increase theCalcPmt
Amount
by thePayPrin
Amount
and delete thePayPrin
event. Otherwise, keep both payments. -
FixedPmt
+FixedPmt
- Retain both payments separately. -
FixedPmt
+PayInt
- Retain both payments separately. -
FixedPmt
+PayPrin
- Retain both payments separately. -
PayInt
+PayInt
- Merge into onePayInt
event whoseAmount
is the sum of the twoPayInt
Amount
attributes. -
PayInt
+PayPrin
- Merge into one PayInt event, with thePayPrin
Amount
added to thePayInt
Amount
. -
PayPrin
+PayPrin
- Merge into one payment, adding theAmount
attributes together.
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | 1 , 2 , 4 , 6 , 12 , 24 , 26 , 52 | 12 |
PPY
is an abbreviation for payments per year, and as one might surmise,
determines the payment frequency for the payment stream. If the value of
theBegin
attribute is not a valid date, then the value of
this attribute is ignored.
🔹 ReplaceIdx
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | -1 |
The ReplaceIdx
attribute allows applications to restrict the enforcement of a
replacement payment to a specific <PmtStream>
. If specified, the
value of ReplaceIdx
must be an integer >= 0. If not included in the request,
then ReplaceIdx
will be set internally to a value of -1
, which means that
this replacement payment rule will be applied to all matching payments.
If specified, the value of ReplaceIdx
represents the numeric index of the
<PmtStream>
element to which the replacement payment will only
be applied.
Example 1:
<!-- 2 overlapping payment streams -->
<PmtStream Begin="2024-01-01" Term="36" PmtType="PayInt" />
<PmtStream Begin="2024-01-01" Term="36" PmtType="PayPrin" Amount="1000" />
<!-- Replacement payment streams target only the “PayPrin” stream above -->
<PmtStream Begin="0000-01-00" PmtType="FixedPmt" ReplaceIdx="1"/>
<PmtStream Begin="0000-03-00" PmtType="FixedPmt" ReplaceIdx="1"/>
<PmtStream Begin="0000-04-00" PmtType="FixedPmt" ReplaceIdx="1"/>
In the example above, the first <PmtStream>
with a
PmtType
of PayInt
has an index of 0
, with the
PayPrin
payment stream having an index of 1
, etc.
All three replacement payment streams (with indexes of 2, 3, and 4) indicate
that they are targeting the PayPrin
payment stream only by specifying
ReplaceIdx="1"
. Also note that once the replacement payments are applied to
the applicable payments, those payments will no longer be considered to be a
part of the original payment stream, but instead will be considered to be a part
of the replacement payment stream that was applied.
Example 2:
Assume we wanted to build a repayment schedule of 24 interest only payments, followed by 36 computed equal payments. Also, assume that we wanted to skip the interest only payments made in December. Then, we could build a request in the following manner:
<PmtStream Begin="2024-06-01" PmtType="CalcPmt" Term="60" />
<PmtStream Begin="0001-00-00" PmtType="PayInt" Term="24" />
<PmtStream Begin="0000-12-00" PmtType="FixedPmt" ReplaceIdx="1" />
Above, PmtStream[0]
sets up the basic repayment schedule with 60 computed
equal payments. Then, PmtStream[1]
replaces payments 1-24 with interest only
payments. Finally, PmtStream[2]
replaces the December payment in the interest
only period with a skipped payment.
If you are creating overlapping payment streams with payments that fall on the
same day, then we recommend that you set the value of the
Merge
attribute of the <EditOutput>
element to false
. If Merge
is left at its default value
of true
, merging of payments occurs before replacement payments are enforced,
thus making targeting a given payment stream much more difficult if they are
merged with a payment from a second payment stream.
🔹 SemimonthlyDay
([0..31], 0)
Data Type | Values | Default |
---|---|---|
Integer | [0...31] | 0 |
When specifying a semimonthly payment stream, the day number on which the first
payment is made determines the day number for all of the following odd numbered
payments. If you omit this attribute or specify a value of 0
, then the even
numbered payments will be generated using the default method within the SCEX.
If you wish to specify the day number on which even numbered payments fall
(overriding the default method used in the SCEX), then set the value of this
attribute to the desired day number. Setting the value of this attribute to 31
will cause all even payments to fall on the last day of the month.
As an example, if you want to specify a semi-monthly payment stream beginning on January 1, 2014 with payments that fall on the 1st and 15th of each month for 24 payments, the element should look something like this:
<PmtStream PmtType="CalcPmt" Begin="2014-01-01" Amount="0"
Term="24" PPY="24" SemimonthlyDay="15" />
🔹 Term
Data Type | Values | Default |
---|---|---|
Integer | >= 1 | 1 |
The term attribute indicates the the number of payments to be made at the
specified payment frequency (see PPY
above), after which the
payment stream is completed. The default value is 1
. If the value of the
Begin
attribute is not a valid date, then the value of
this attribute is ignored.
🔹 Weekends
Data Type | Values | Default |
---|---|---|
Enum | Ignore , Prev , Near , Next | Ignore |
If payment stream dates (including the specified start date) are not allowed to
fall on a Saturday or Sunday, then set the value of this field to something
other than Ignore
. The meaning of the other three values are defined below:
Prev
- The date will be moved to the Friday before the computed weekend date.Near
- The date will be moved to the Friday before the computed weekend date if the computed weekend date falls on a Saturday, otherwise it will be moved to the Monday after.Next
- The date will be moved to the Monday after the computed weekend date.
Note that two other attributes can cause the computed dates to be adjusted -
AllowFeb29
and Weekends
. For a complete description
of how these three fields work together, please see the documentation for the
Holidays
attribute.
🟦 <Protection>
Element Type | Data Type |
---|---|
Parent | - |
If the calling application wishes to add any payment protection products to the
loan (e.g. credit insurance or debt protection), then this element and at least
one <Product>
child element must be present.
Attributes:
🔹DataDirPath
,🔹ShowDataPath
🔹 DataDirPath
Data Type | Values | Default |
---|---|---|
String | any | default data directory |
If this attribute is set, the SCEX will look for a data folder containing the
setup files in the path specified. Thus, if the DataDirPath
is set to
C:\SCEX\
, the SCEX will look for the setup files in C:\SCEX\data
.
If the calling application wishes to specify the data directory path in its
entirety (e.g. the calling app does not want the SCEX to append \data
to the
provided path), then simply terminate the specified DataDirPath
with an
asterisk (*
). Thus, if the DataDirPath
is set to C:\SCEX\bank1\*
, the SCEX
will look for the setup files in C:\SCEX\bank1\
.
If this attribute is not set, the SCEX will attempt to locate the data folder in
the default data directory path location, which can be retrieved using the
<inVERSION>
module query, and set via the SCEX API.
This attribute is useful if you wish to use only a single installation of the
SCEX, but have many different setup file groupings. By specifying a different
DataDirPath
for each grouping, you can easily separate the groups from one
another instead of grouping them all together in a single directory.
🔹 ShowDataPath
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
This attribute determines if the data directory path used in the calculation of
the loan will be disclosed in the response as an attribute of the
<Protection>
element.
🟦 <Protection>
→<Product>[]
Element Type | Data Type |
---|---|
Parent | - |
Each protection product is individually defined through the use of a <Product>
element (along with its child elements).
As an example, if a loan was requested with single decreasing life, single disability, single involuntary unemployment, and joint property insurances, then the input XML detailing the protection requests would look similar to the following:
<Protection DataDirPath="c:\scex\">
<!-- Credit Life -->
<Product Code="CL">
<Birthday>1966-04-16</Birthday>
</Product>
<!-- Accident and Helth -->
<Product Code="AH">
<Birthday>1969-11-21</Birthday>
</Product>
<!-- Involuntary Unemployment -->
<Product Code="IU">
<Birthday>1966-04-16</Birthday>
</Product>
<!-- Personal Property -->
<Product Code="PP">
<Birthday>1966-04-16</Birthday>
<Birthday>1969-11-21</Birthday>
</Product>
</Protection>
Note: Life (Code="CL"
) may end up with two resulting products - decreasing
and level, depending on the loan type and protection parameters.
Attributes:
🔹Account
,🔹Code
,🔹Dismemberment
,🔹Financed
,🔹Method
,🔹ShowFactor
,🔹Table
,🔹UseLevelRates
🔹 Account
Data Type | Values | Default |
---|---|---|
Integer | [1...9999] | 1 |
This attribute specifies the account number that will be used to define the
requested product. Each account is numbered from 1 to 9,999, and each account
corresponds to a set of setup file which define numerous settings which define
the product and how it is calculated, such as the insurance rates, caps,
formulas used, etc. If this attribute is not specified, a default value of 1
will be used.
🔹 Code
Data Type | Values | Default |
---|---|---|
Enum | LI , AH , IU , PP | LI |
This attribute defines the type of payment protection product, and which setup files are references for calculation, rate, and cap purposes. In the description of each product below, ‘NNNN’ is the Account number (see above, an account number of 1 would thus be ‘0001’).
LI
– The requested product is treated as decreasing credit life and will reference theclNNNN.ini
setup file.AH
– The requested product is treated as accident and health and will reference theahNNNN.ini
setup file.IU
– The requested product is treated as involuntary unemployment and will reference theiuNNNN.ini
setup file.PP
– The requested product is treated as property insurance and will reference theppNNNN.ini
setup file.
🔹 Dismemberment
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the account specified has been set up to offer life protection products with
optional dismemberment coverage, and if the optional dismemberment coverage is
desired, then set this attribute’s value to true
. Otherwise, use the default
value of false
.
🔹 Financed
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
Single premium protection products are typically financed (added to the
principal balance). If you wish to have the premiums paid up front at loan
cloasing, then set the value of this field to false
.
🔹 Method
Data Type | Values | Default |
---|---|---|
Enum | Default , Gross , Net , Level | Default |
Some accounts are configured to offer different types of credit life products (usually gross and net). In these accounts, this field allows the calling application to specify which method to use for a given loan. If no method is present in the request, then the default method will be used.
🔹 ShowFactor
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to true
, then the <Cost>
output element (child element of <Product>
) will
include a Factor
attribute which is useful
to Sherman and Associates when debugging protection calculations.
🔹 Table
Data Type | Values | Default |
---|---|---|
Integer | [0...19] | 0 |
When requesting the accident and health product (e.g. the
Code
attribute of <Product>
element is set to
AH
), if the specified account has been set up with multiple disability or debt
cancellation plans, then this attribute determines which plan number will be
used. If no table number is specified, the first table (table zero) will be
used. To find out the number of available plans, use the <AHSetCount>
element
returned from an <inINPUT_TOOL>
query.
If the requested product Code
is not AH
, then this
attribute is ignored.
🔹 UseLevelRates
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the account specified has been set up to offer single premium credit life
using level rates instead of the normal decreasing rates, then set this
attribute’s value to true
. Otherwise, use the default value of false
.
🟦 <Product>
→<Benefit>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this element. Omitting this element will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts for the product in question, or if the product itself does not have the notion of a monthly benefit (such as life and property products), then this element will be ignored.
Attributes: None
🟥 <Product>
→<Birthday>[]
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= 1900-01-01 |
This element contains the date of birth for a borrower who is requesting a
payment protection product. The type of coverage provided (e.g. single or joint)
is determined by the number of <Birthday>
child elements for each
<Product>
element. Thus, to request single accident and health
coverage, the <Product>
element (with Code=“AH”
) requires a
single <Birthday>
child element containing the birthday of the borrower
seeking coverage. Similarly, to request joint decreasing life coverage, the
<Product>
element (with Code=“CL”
) requires two <Birthday>
child elements, each of which contains the birthday of a borrower seeking
coverage.
Since the type of coverage depends upon the number of <Birthday>
elements
present, at lease one must appear and no more than two are allowed (as the only
coverage options are single or joint).
All dates must be in the form of YYYY-MM-DD, and be 10 characters long.
Attributes: None
🟦 <Product>
→<Coverage>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
If you wish to specify a coverage amount less than the maximum allowed, then do so with this element. Omitting this element will assure that the maximum coverage amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified coverage amounts for the product in question, then this element will be ignored.
Attributes: None
🟦 <Product>
→<Term>
(integer, 0)
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Integer | >= 0 | 0 |
If you need to specify a coverage term (in months or payments) less than the maximum allowed, then do so using this element. If this element is omitted, then the loan will be covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user specified coverage terms for this product, then this element will be ignored.
Attributes:
🔹Units
🔹 Units
Data Type | Values | Default |
---|---|---|
Enum | Pmts , Months | Pmts |
The specified numeric coverage term will be interpreted as a number of payments or months, depending upon the value of this attribute.
🟦 <TILARESPA2015>
Element Type | Data Type |
---|---|
Empty | - |
If this element is present in the request, then the SCE will return data for the Integrated Mortgage Disclosures under the Real Estate Settlement Procedures Act (Regulation X) and the Truth In Lending Act (Regulation Z) rule, which is required as of August 1st, 2015. If this element is not present, then the TILA RESPA outputs will not be generated.
Attributes: None
Loan Builder - Response
Please see the Legend to understand the conventions used to document each element and attribute. Note that for responses, the XML elements are documented in the order that they appear in the response.
🟥 <outLOAN_BUILDER>
Element Type | Data Type |
---|---|
Parent | - |
This element is the root parent element that contains all of the relevant
outputs. If a Country
code was provided in
the request, the following attribute will be included.
Attributes:
🔹Country
,🔹CurrencyDP
🔹 Country
Data Type | Values | Default |
---|---|---|
Text | See table | United States of America |
If a valid Country
code was specified as an attribute of the input module
element, the full name of the country associated with the specified Country
code will be reported in this optional attribute.
🔹 CurrencyDP
Data Type | Values | Default |
---|---|---|
Integer | 0 , 2 | 2 |
The number of decimal places that define the currency of the calculation.
🟥 <Results>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which describe the success or failure of the calculation, as well as any XML messages.
<Results>
<Description>Successful Calculation</Description>
</Results>
Attributes: None
🟥 <Results>
→<Description>
Element Type | Data Type |
---|---|
Data | Text |
If the calculation was completed successfully, then this element will contain
the value Successful Calculation
. Otherwise, this element will contain a
description of the problem encountered during the attempted computation.
Attributes: None
🟦 <Results>
→<Note>[]
Element Type | Data Type | Default |
---|---|---|
Data | Text | NULL |
The <Note>
elements present important calculation comments to more fully
explain outputs that may either not be apparant in the inputs or have overriden
input assumptions. These notes are thoroughly detailed in the Appendix titled
`Calculation Notes'.
Attributes:
🔹Code
🔹 Code
Data Type | Values | Default |
---|---|---|
Integer | >= 1 | n/a |
The unique integer identifying the <Note>
in question. This Code
may be useful
if the calling application would like to override the default description or
check for a given note's Code
.
🟦 <Results>
→<XMLDetail>[]
Element Type | Data Type | Default |
---|---|---|
Data | Text | NULL |
The <XMLDetail>
elements are messages passed back to the calling application
which detail the status of the XML request. If the SCEX issues any warnings
regarding unrecognized elements or attributes, then each warning message will be
displayed in an <XMLDetail>
element.
Attributes: None
🟦 <FedBox>
Element Type | Data Type |
---|---|
Parent | - |
This element groups together all child elements which contain numerical FedBox information, such as the Amount Financed, Finance Charge, Total of Payments, and Regulation Z Annual Percentage Rate.
<FedBox>
<AmtFin>10070.00</AmtFin>
<FinChg>1685.80</FinChg>
<TotPmts>11755.80</TotPmts>
<RegZAPR Type="Actuarial">10.3420</RegZAPR>
<MAPR Advance="9960.00" Max="37.000" MaxExceeded="false">11.1001</MAPR>
</FedBox>
Attributes: None
🟥 <FedBox>
→<AmtFin>
Element Type | Data Type |
---|---|
Data | Currency |
The Regulation Z Amount Financed, which is defined as the amount of credit provided to you or on your behalf.
Attributes: None
🟥 <FedBox>
→<FinChg>
Element Type | Data Type |
---|---|
Data | Currency |
This element contains the Regulation Z Finance Charge, described as the dollar amount the credit extension will cost you.
Attributes: None
🟥 <FedBox>
→<TotPmts>
Element Type | Data Type |
---|---|
Data | Currency |
The amount which the borrower will have paid when the borrower has made all scheduled payments.
Attributes: None
🟦 <FedBox>
→<TAP>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | n/a |
The total amount payable element is only returned with the response if the value
of the ShowTap
attribute of the
<EditOutput>
element in the request is true
.
The value of this element is computed as the sum of: (i) the total of payments,
(ii) all non-financed APR affecting fees, (iii) all out-of-pocket non-APR
affecting fees, and (iv) all out-of-pocket APR affecting fees.
Attributes:
🔹PocketAPR
,🔹PrepaidNF
🔹 Pocket
Data Type | Default |
---|---|
Currency | 0 |
The value of this attribute is the sum of all out-of-pocket non-APR affecting fees. This attribute will only be returned if the value is greater than zero.
🔹 PocketAPR
Data Type | Default |
---|---|
Currency | 0 |
The value of this attribute is the sum of all out-of-pocket APR affecting fees not paid on an advance. This attribute will only be returned if the value is greater than zero.
🔹 PrepaidNF
Data Type | Default |
---|---|
Currency | 0 |
The value of this attribute is the sum of all non-financed APR prepaid fees (APR affecting fees paid on the same date as an advance). This attribute will only be returned if the value is greater than zero.
🟥 <FedBox>
→<RegZAPR>
Element Type | Data Type |
---|---|
Data | Decimal |
The Regulation Z APR, which is the cost of the extension of credit expressed as a yearly rate. The Reg. Z APR element has a few attributes, described below:
Attributes:
🔹Max
,🔹MaxExceeded
,🔸Type
🔹 Max
(decimal)
Data Type | Default |
---|---|
Decimal | n/a |
This attribute specifies the maximum APR as specified in the request (see
Max
). If no maximum APR has been specified, then
this attribute will not be present. The value of this attribute should be
displayed as a percentage. As an example, for Max="36.000"
, you would disclose
a maximum APR of 36.000%.
🔹 MaxExceeded
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
If a maximum APR has been specified, then the value of this attribute indicates
whether or not the current loan exceeds the maximum allowed APR. As an example,
if the maximum APR has been set to 36% and the APR for the returned loan was
37.125%, the <RegZAPR>
element would be:
<RegZAPR Type="Actuarial" Max="36.000" MaxExceeded="true">37.125</RegZAPR>`
🔸 Type
Data Type |
---|
Text |
This attribute returns the name of the method used to compute the reported APR.
The possible values are as follows: Actuarial
, [Calendar Name] US Rule
,
EU_APR
, Canadian_APR
, Open_End
, XIRR
, XIRR360
, IRR
, YieldIRR
, and
NotComputed
.
🟦 <FedBox>
→<MAPR>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | n/a |
If the military APR has been requested (see the
UseMAPR
attribute of the
<APR>
element), then this element will be included in
the output. The value of the element is the military APR, and the element has a
few attributes, described below.
Attributes:
🔸Advance
,🔹Max
,🔹MaxExceeded
🔸 Advance
Data Type |
---|
Currency |
This attribute is the equivalent of the Amount Financed for the Military APR. Specifically, it is the principal balance less any MAPR fees, debt protection, etc.
🔹 Max
Data Type | Default |
---|---|
Currency | n/a |
This attribute specifies the maximum Military APR as specified in the request
(see the MAPR_Max
attribute of the
<APR>
element). If not specified, a default value of
36% is assumed. The value of this attribute should be displayed as a percentage.
As an example, for Max="36.000", you would disclose a maximum Military APR of
36.000%.
🔹 MaxExceeded
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
The value of this attribute 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>
element would be:
<MAPR Advance="1350.00" Max="36.000" MaxExceeded="true">37.125</MAPR>
🟦 <TILARESPA2015>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which are of interest to fulfilling the
2015 TILA RESPA rule. It will only be present if the
<TILARESPA2015>
element is present in the
request.
Sample TILARESPA2015 output:
<TILARESPA2015>
<TotalLoanCosts>0</TotalLoanCosts>
<CD_TotPmts>27311.07</CD_TotPmts>
<In5Years PaidTotal="27311" PaidPrincipal="25000"/>
<TIP>9.244</TIP>
<MaxPnIPmt Date="2012-11-01">1636.65</MaxPnIPmt>
<MinRate Idx="1">5.651</MinRate>
<MaxRate Idx="1">5.651</MaxRate>
<ProjectedPayments NumCols="3">
<PPCol Num="1" Title="Year 1">
<Years Start="1" End="1"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
<PPCol Num="2" Title="Year 2">
<Years Start="2" End="2"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
<PPCol Num="3" Title="Year 3">
<Years Start="3" End="3"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
</ProjectedPayments>
</TILARESPA2015>
Attributes: None
🟦 <TILARESPA2015>
→<LoanCost>[]
Element Type | Data Type |
---|---|
Data | Currency |
For every <Fee>
element present in the input which has
its IsLoanCost
attribute 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>
input element), there will be a
corresponding <LoanCost>
element. The value of this element will be the
numerical value of the fee, rounded to the nearest dollar.
🔹 In5Years
Data Type | Default |
---|---|
Currency | <LoanCost> |
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 attribute will be present and disclose the portion of this loan cost that is accrued during the first five years.
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
This attribute will hold the same value as the attribute of the same name for
the <Fee>
element. It is recommended that each fee
have a unique Name
for identification purposes.
🟥 <TILARESPA2015>
→<TotalLoanCosts>
Element Type | Data Type |
---|---|
Data | Currency |
This element holds the sum of all borrower paid loan costs. Since all
<LoanCost>
element values are rounded dollar amounts, the value of this
element will also be a rounded dollar amount.
Attributes: None
🟥 <TILARESPA2015>
→<CD_TotPmts>
Element Type | Data Type |
---|---|
Data | Currency |
This element holds 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 will be the numerical value of the sum.
Attributes: None
🟥 <TILARESPA2015>
→<In5Years>
Element Type | Data Type |
---|---|
Empty | - |
This element is empty, with all important values required for the new "In 5 Years" section returned in the following two attributes of this element.
Attributes:
🔸PaidPrincipal
,🔸PaidTotal
🔸 PaidPrincipal
Data Type |
---|
Currency |
This attribute 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.
🔸 PaidTotal
Data Type |
---|
Currency |
This attribute 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.
🟥 <TILARESPA2015>
→<TIP>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the total interest percentage, rounded to three or fewer decimal places, as required.
Attributes: None
🟥 <TILARESPA2015>
→<MaxPnIPmt>
Element Type | Data Type |
---|---|
Data | Currency |
The value of this element holds the maximum scheduled principal and interest payment during the term of the loan.
Attributes: 🔸
Date
🔸 Date
Data Type |
---|
Date |
This attribute contains 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. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🟥 <TILARESPA2015>
→<MinRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the minimum possible interest rate applied during the term of the loan.
Attributes: 🔸
Idx
🔸 Idx
Data Type |
---|
Integer |
This attribute contains the payment number for which the minimum rate is first applicable.
🟥 <TILARESPA2015>
→<MaxRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the maximum possible interest rate applied during the term of the loan.
Attributes: 🔸
Idx
🔸 Idx
Data Type |
---|
Integer |
This attribute contains the payment number for which the maximum rate is first applicable.
🟥 <TILARESPA2015>
→<ProjectedPayments>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which are of interest to filling the
Projected Payments table. It will only be present if the <TILARESPA2015>
element is present in the XML request for a supported loan type.
Attributes: 🔸
NumCols
🔸 NumCols
Data Type | Values |
---|---|
Integer | [1...4] |
This attribute will hold the number of columns which must be present in the Projected Payments table. It will be a numeric value from 1 to 4.
🟥 <ProjectedPayments>
→<PPCol>[]
Element Type | Data Type |
---|---|
Parent | - |
For every column required in the Projected Payments table, there will be an
associated <PPCol>
element. This element is a parent to child elements which
contain data associated with a single column of the table.
🔸 Num
Data Type | Values |
---|---|
Integer | [1...4] |
This attribute will hold the number of the column to which the following data applies.
🔸 Title
Data Type |
---|
Text |
The value of this attribute 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.
🟥 <ProjectedPayments>
→<PPCol>
→<Years>
Element Type | Data Type |
---|---|
Empty | - |
The attributes of this element hold the beginning and ending year numbers for which this column data applies. The element itself is empty.
🔸 End
Data Type |
---|
Integer |
The ending year associated with this column's data.
🔸 Start
Data Type |
---|
Integer |
The beginning year associated with this column's data.
🟥 <ProjectedPayments>
→<PPCol>
→<PnIPmt>
Element Type | Data Type |
---|---|
Empty | - |
This empty element has several attributes which describe the principal and interest payments associated with this column.
🔸 Balloon
Data Type | Values |
---|---|
Boolean | true , false |
If any of the payments associated with this column are balloon payments (e.g.
isolated payments that are more than twice the value of a regular periodic
payment), then the value of this attribute will be true
.
🔸 IntOnly
Data Type | Values |
---|---|
Enum | all , some , none |
none
- No payments associated with the column are Interest Onlysome
- Some, but not all, of the payments associated with the column are Interest Only.all
- All of the payments associated with the column are Interest Only.
Note that for the purposes of this attribute, 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.
🔸 Max
Data Type |
---|
Currency |
This attribute holds the maximum principal and interest payment for this column.
If this value is not the same as the value of the Min
attribute, then a range of rounded payments must be displayed. If the values are
the same, then only a single value needs to be disclosed.
🔸 Min
Data Type |
---|
Currency |
This attribute holds the minimum principal and interest payment for this column.
🟥 <ProjectedPayments>
→<PPCol>
→<MIPmt>
Element Type | Data Type |
---|---|
Data | Currency |
The value of this element 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.
Attributes: None
🟥 <ProjectedPayments>
→<PPCol>
→<TotalPmt>
Element Type | Data Type |
---|---|
Empty | - |
This empty element has two attributes which describe the estimated total payment or range of payments associated with this column. Note that this value does not include any estimated escrow, as the SCEX does not support escrow calculations. The calling application will need to increase these values by the estimated escrow amounts if any are present.
🔸 Max
Data Type |
---|
Currency |
This attribute holds the maximum estimated total payment for this column. If
this value is not the same as the value of the Min
attribute,
then a range of rounded payments must be displayed. If the values are the same,
then only a single value needs to be disclosed.
🔸 Min
Data Type |
---|
Currency |
This attribute holds the minimum estimated total payment for this column.
🟥 <Moneys>
Element Type | Data Type |
---|---|
Parent | - |
This element groups together those other major cash amounts not disclosed under
the <FedBox>
element, such as the principal balance, interest
change, fee amounts and debt protection premiums.
<Moneys>
<Principal>10120.00</Principal>
<Interest>1635.80</Interest>
<OddDaysPrepaid OddDayCount="15" DailyCost="2.77">41.55</OddDaysPrepaid>
<FinFees>120.00</FinFees>
<FinChgFees>91.55</FinChgFees>
<PocketFees>65.00</PocketFees>
<MAPRFees>201.55</MAPRFees>
<Protection Category="None" PerPmt="0.00" PerDay="0.00">0.00</Protection>
<Fee Name="FinFee">60.00</Fee>
<Fee Name="MAPR FinFee">60.00</Fee>
<Fee Name="Prepaid Fee">50.00</Fee>
<Fee Name="MAPR Pocket Fee">50.00</Fee>
<Fee Name="Pocket Fee">15.00</Fee>
</Moneys>
Attributes: None
🟥 <Moneys>
→<Proceeds>
Element Type | Data Type |
---|---|
Data | Currency |
This element contains the sum of all <Advance>
amounts.
Attributes: None
🟥 <Moneys>
→<Principal>
Element Type | Data Type |
---|---|
Data | Currency |
The principal balance is the amount on which interest is accrued. The principal balance consists of the amount requested by the borrower, any fees which are financed, as well as financed protection premiums.
Attributes: None
🟥 <Moneys>
→<Interest>
Element Type | Data Type |
---|---|
Data | Currency |
This element contains the total interest accrued during the term of the loan, assuming the borrower will make all scheduled payments.
Attributes: None
🟦 <Moneys>
→<FinFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element contains the sum of all <Fee>
elements
having AddToPrin
set to true
and occuring
the date of an advance. If this element's value is zero, it will not show up in
the results.
Attributes: None
🟦 <Moneys>
→<Prepaid>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element represents all prepaid finance charges and contains the sum of all
<Fee>
elements occurring on an advance and having
AddToFinChg
set to true
. If this
element's value is zero, it will not show up in the results.
Attributes: None
🟦 <Moneys>
→<OthNonAPRFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element contains the sum of all <Fee>
elements
having AddToPrin
set to true
not
occuring the date of an advance. If this element's value is zero, it will not
show up in the results.
Attributes: None
🟦 <Moneys>
→<ServiceChg>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element represents all service charge <Fee>
elements and contains the sum of all fees not occurring on an
Advance
and having
AddToFinChg
set to true
. If this
element's value is zero, it will not show up in the results.
Attributes: None
🟦 <Moneys>
→<PocketFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element 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 element will not show up in the XML output.
Attributes: None
🟦 <Moneys>
→<MAPRFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element 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.
Attributes: None
🟦 <Moneys>
→<BalAdjusts>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
The sum of all balance adjustments (see <BalAdj>
)
is reported in this element.
Attributes: None
🟦 <Moneys>
→<ConInterest>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If the requested loan is a construction loan with a permanent loan attached and the account specified is set up to compute construction loans via the 'Simple' method, then this element 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 <Interest>
element, and
both loans reflected in a single, combined amortization schedule.
If the requested loan was not a construction loan, or if construction loans have not been set up for the given account, then this element will not appear in the results.
Attributes:
🔸IsPrepaid
🔸 IsPrepaid
Data Type | Values |
---|---|
Boolean | true , false |
If the construction interest is disclosed as interest only payments in the
amortization schedule, then the value of this attribute will be set to false
.
Otherwise, the value of this attribute will be set to true
.
🟦 <Moneys>
→<OddDaysPrepaid>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element, if present, holds the total odd days prepaid finance charge. If no odd days prepaid fee was requested, then this element will not be present in the output.
Attributes:
🔹AddToPmt
,🔹DailyCost
,🔸OddDayCount
,🔹OddMonths
🔹 AddToPmt
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
If the odd days interest has been added to the first payment, this attribute
will be present in the output with a value of true
. If the odd days interest has
been treated as a prepaid finance charge, then this attribute will not be
present and a default value of false
should be assumed.
🔹 DailyCost
Data Type | Default |
---|---|
Currency | n/a |
If the odd days prepaid fee is computed using a rounded daily cost, then the value of this attribute will hold that value. If the odd days prepaid is not computed using a rounded daily cost, then this attribute will not be present.
🔸 OddDayCount
Data Type |
---|
Integer |
This attribute holds the number of odd days computed by the SCE for the requested loan.
🔹 OddMonths
Data Type | Default |
---|---|
Integer | n/a |
This attribute holds the number of odd months computed by the SCE for the
requested loan when using odd days accrual method 250
.
🟦 <Moneys>
→<MinIntChgAdj>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a minimum interest charge was requested and the final payment was adjusted to meet this minimum interest charge, then this element will be returned in the response and will contain the value of the minimum finance charge adjustment.
Attributes: None
🟦 <Moneys>
→<MinFinChgAdj>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a minimum finance charge was requested and the final payment was adjusted to meet this minimum finance charge, then this element will be returned in the response and will contain the value of the minimum finance charge adjustment.
Attributes: None
🟦 <Moneys>
→<MortIns>
If mortgage insurance was requested and not of the single premium variety, then this element will return the
Attributes: None
🟦 <Moneys>
→<Advance>[]
Element Type | Data Type | Default |
---|---|---|
Data | Currency | n/a |
If the returned loan computed any advance amounts (see the
Compute
attribute of the
<Advance>
input element for more information),
then for each advance in the loan there will be an
<Advance>
element containing the computed advance
amount.
If all of the loan's advances were specified and not computed, then there will
not be any <Advance>
elements found in the Loan
Builder response.
Attributes:
🔸Date
🔸 Date
Data Type |
---|
Date |
Contains the date on which the advance is made.
🟦 <Moneys>
→<Fee>[]
Element Type | Data Type | Default |
---|---|---|
Data | Currency | n/a |
For each non-zero <Fee>
requested in the loan
calculation, there will be a <Fee>
element containing the computed fee amount.
Attributes:
🔹Name
🔹 Name
Data Type | Default |
---|---|
Text | n/a |
Contains the value of the Name attribute of the corresponding
<Fee>
element from the request. If no such attribute
is present in the input element, then none will be present in the output
element.
🟥 <Accrual>
Element Type | Data Type |
---|---|
Parent | - |
This element groups together interest accrual information, such as the accrual method used, days to the first payment, and the loan’s maturity date.
<Accrual>
<Method>Actual/365 USRule</Method>
<Days1Pmt DayCount="Actual">31</Days1Pmt>
<Maturity>2025-12-01</Maturity>
</Accrual>
Attributes: None
🟥 <Accrual>
→<Method>
The <Method>
element contains a text description of the interest accrual
method used to compute the loan (e.g. Unit Period 365 Simple
).
Attributes: None
🟥 <Accrual>
→<Days1Pmt>
Element Type | Data Type |
---|---|
Data | Integer |
This element contains the number of days to the first payment, computed by one of two methods as specified in this element’s sole attribute.
Attributes:
🔸DayCount
🔸 DayCount
Data Type | Values |
---|---|
Enum | Actual , True360 |
Actual
- The actual number of days between these two dates are used.31
would be the day count for the period between 2024-01-01 and 2024-02-01.True360
- All months have 30 days.30
would be the day count for the period between 2024-01-01 and 2024-02-01.
🟥 <Accrual>
→<Maturity>
Element Type | Data Type |
---|---|
Data | Date |
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. Hence, a maturity date of February 15, 2020 would be specified as:
<Maturity>2020-02-15</Maturity>
Attributes: None
🟥 <PmtStream>[]
Element Type | Data Type |
---|---|
Empty | - |
The <PmtStream>
element(s) describe the scheduled stream of payments for the
computed loan in the order paid. Instead of disclosing each and every payment
individually (which is done in the <AmTable>
element), the payment
streams group together consecutive equal payments to produce a compressed output
view.
The following code translates to "Twelve consecutive payments of $879.31 computed at 10.000% that begin on January 22nd, 2024".
<PmtStream Term="12" Pmt="879.31" Rate="10.000" Begin="2024-01-22"/>
Each element describes a single stream of equal payments, using the following attributes to define the important properties of each resulting payment stream:
Attributes:
🔸Begin
,🔹Idx
,🔹IsSplitRate
,🔸Pmt
,🔹PPY
,🔸Rate
,🔸Term
🔸 Begin
Data Type |
---|
Date |
This attribute contains the date on which the first payment for this given
payment stream is scheduled. All dates are in the form of YYYY-MM-DD,
and must be 10 characters long. In the example above, the payment stream
is scheduled to begin on January 22, 2024. Hence, the Begin
attribute for the
first payment stream element would be specified as Begin="2014-01-22"
.
🔹 Idx
Data Type | Default |
---|---|
Integer | n/a |
If the value of the request's TagPmts
attribute is set to true
, then this attribute will appear for each
<PmtStream>
element. The value of this attribute identifies
which input payment stream element gave rise to it.
If the value of this attribute is -1
, then perfect amortization was enforced
(e.g. the AmError
attribute of the
<BusinessRules>
input element is set to Allow
).
If the value of this attribute is -2
, then an early payoff event was
triggered, which is caused by (i) specifying the
EarlyPayoffDate
attribute of
the <EditOutput>
input element, or (ii) using
whole dollar rounding which can shorten the specified term of the loan, or (iii)
specifying a fixed or minimum payment amount which also may shorten the
specified term of the loan.
🔹 IsSplitRate
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
If this payment stream accrued interest using split-rate tiers, then this
attrbute will be present and set to true
. Otherwise, this attribute will not
be returned and has a value of false
.
🔸 Pmt
Data Type |
---|
Currency |
The Pmt
attribute contains the computed payment amount for this payment
stream. For the sample payment stream above, the payment is 879.31.
🔹 PPY
Data Type | Values | Default |
---|---|---|
Integer | 1 , 2 , 4 , 6 , 12 , 24 , 26 , 52 | n/a |
If the Term
attribute's value is greater than one, then the
periodic payment frequency for this payment stream is also disclosed.
🔹 Rate
Data Type | Default |
---|---|
Decimal | see below |
Contains the interest rate used for the duration of this payment stream.
Usually, the interest rate will remain fixed for the duration of the loan unless
you are computing an adjustable rate loan or you are computing a LaserPro
construction loan with permanent loan attached. If this payment stream accrued
interest using split-rate tiers (see
<EditInterest>
→<Tier>
,
then this attrbute will not be returned.
🔸 Term
Data Type |
---|
Integer |
The Term
attribute holds the number of contiguous payments that make up the
given payment stream. In the example payment streams above, the term for the
payment stream is 12
.
🟦 <Mortgage_Insurance>
Element Type | Data Type |
---|---|
Parent | - |
If mortgage insurance is present on the requested loan, then this element and all required child elements (documented below) will be included in the response.
Attributes: None
🟥 <Mortgage_Insurance>
→<MI_Rate>
Element Type | Data Type |
---|---|
Empty | - |
Attributes of this empty element disclose the rate, premium per year, and premium per period.
Attributes:
🔸PremiumPerPeriod
,🔸PremiumPerYear
,🔸Rate
🔸 PremiumPerPeriod
Data Type |
---|
Currency |
The periodic mortgage insurance premium amount.
🔸 PremiumPerYear
Data Type |
---|
Currency |
The annual mortgage insurance premium amount.
🔸 Rate
Data Type |
---|
Decimal |
The percentage rate used in the mortgage insurance calculation.
🟦 <Mortgage_Insurance>
→<UpFront>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
The value of this element represents the up front fee paid for mortgage insurance. If there is no up front fee, then this element will not be present in the response.
Attributes: None
🟦 <Mortgage_Insurance>
→<Periodic>
Element Type | Data Type |
---|---|
Empty | - |
Attributes of this empty element provide the loan to value ratio, as well as the
payment indexes when the principal balance falls below the specified
DropLTV
and
WarnLTV
percentage values. This element
is only present if a corresponding <Periodic>
element is found in the XML request.
Attributes:
🔸IndexToDrop
,🔸IndexToWarn
,🔸LTV
🔸 IndexToDrop
Data Type |
---|
Integer |
The value of this attribute indicates the payment index on which the remaining
principal balance to home value ratio drops below the specified
DropLTV
percentage. Mortgage insurance
coverage stops after this payment.
🔸 IndexToWarn
Data Type |
---|
Integer |
The value of this attribute indicates the payment index on which the remaining
principal balance to home value ratio drops below the specified
WarnLTV
percentage.
🔸 LTV
Data Type |
---|
Decimal |
The loan to value ratio of the computed loan, expressed as a percentage.
🟦 <Protection>
Element Type | Data Type |
---|---|
Parent | - |
If protection products are requested, then this element will be present in the
output, along with <Product>
child elements detailing each
requested protection product.
🔸 LoanType
Data Type | Values |
---|---|
Enum | ltEqual , ltBalloon , ltSinglePay , ltIntOnly , ltPrinPlus , ltSkipsIrregs , ltSkipsPickups , ltARM , ltCommercial , ltHighlyIrregular |
Protection products are often limited to certain types of loan repayment schedules, such as regular equal and balloon payment loans. Also, different formulas and various other settings may be used for different loan repayment types.
The value of this attribute returns the type of loan repayment schedule that the SCE determines after analyzing the computed loan's repayment structure.
🔹 Path
Data Type | Default |
---|---|
Text | n/a |
This optional attribute will hold the value of the data path used by the SCEX to
find the required setup files for protection calculations. This attribute will
only be present if the
ShowDataPath
attribute of the
request <Protection>
element is set to true
.
🟥 <Protection>
→<Product>[]
Element Type | Data Type |
---|---|
Parent | - |
For each distinct payment protection product that the calling application
requested with a loan, a <Product>
element (along with child elements) will be
returned. Note that no child elements will be present unless the Result
attribute of this element is Full
or Partial
. If coverage is dropped, no
child elements will be present.
Attributes:
🔸Abbrev
,🔸Code
,🔸DropCode
,🔸DropReason
,🔸Formula
,🔹IsDP
,🔸Name
,🔹RateType
,🔸Result
,🔹Table
🔸 Abbrev
Data Type |
---|
Decimal |
The abbreviation for the product as stored in its corresponding setup file.
🔸 Code
Data Type | Values |
---|---|
Enum | LI , LL , AH , IU , PP |
This attribute defines the type of payment protection product that this element,
and all child elements, refers to. It mirrors the request
<Product>
element's
Code
attribute defined earlier in the input
section, with the addition of the LL
code which indicates a level credit life
product.
LI
- LifeLL
- Level LifeAH
- Accident & Health (Disability)IU
- Involuntary UnemploymentPP
- Personal Property
🔸 DropCode
Data Type |
---|
Integer |
If the requested protection was dropped by the SCEX for any reason, then the
value of this attribute will be greater than zero. In this case, no child
elements of <Product>
will be present.
A value of zero indicates that the requested product was included with the loan,
and as such, the child elements of <Product>
which describe the
coverage details, should be parsed. Please see the table which lists each drop
code and reason.
Please see the table of drop codes for a full list of all codes and their associated reasons.
🔸 DropReason
Data Type |
---|
Text |
If the requested protection product was successfully included in the loan, then
the value of this attribute will be Valid Calculation
and corresponds to a
DropCode
value of 0
.
If the requested protection was dropped by the SCEX for any reason (and hence,
the value of DropCode
is greater than 0
), then this
attribute will provide a brief description of why the protection was dropped.
Please see the table which lists each drop code and reason.
Please see the table of drop codes for a full list of all codes and their associated reasons.
🔸 Formula
Data Type |
---|
Text |
The Formula
attribute 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.
Please refer to the table of formula codes for more information.
🔹 IsDP
Data Type | Values | Default |
---|---|---|
Enum | true , false | false |
This attribute indicates if the product has been set up as debt protection. If
this attribute is not present, then the default value of false
should be used
(which indicates that the product has been set up as insurance instead).
🔸 Name
Data Type |
---|
Text |
The full name of the product as stored in its corresponding setup file.
🔹 RateType
Data Type | Values | Default |
---|---|---|
Enum | Fixed , Variable | Fixed |
This attribute will only be present in the output 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 attribute is not present, then a value of Fixed
should be assumed as
only one rate has been used in the protection calculation.
If this attribute 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 attribute will indicate this rate change with a value of
Variable
.
🔸 Result
Data Type | Values |
---|---|
Enum | Full , Partial , Drop |
The value of this attribute informs the calling application if the requested
coverage has been fully provided, partially provided (i.e. one or more coverage
caps have been exceeded and partial coverage has been extended), or completely
dropped. If coverage has been dropped, then the <Product>
element
will not have any child elements.
Full
- Full coveragePartial
- Partial coverage of some kind has been imposed on the loan.Drop
- Coverage has been dropped.
🔹 Table
Data Type | Default |
---|---|
Text | n/a |
AH protection is usually associated with a particular table of rates, such as "30 Day Retro". The name of the rate table being used is stored in this attribute.
🟦 <Protection>
→<Product>
→<Note>[]
Element Type | Data Type | Default |
---|---|---|
Data | Text | n/a |
The following notes may appear in the XML output to further clarify the calculation methodology. Each note is associated with a numeric code and text return value. Each will be further described in the list below:
Code | Description |
---|---|
1 | Benefit is Minimum Payment over term of coverage. When computing a loan with skipped, pickup, or irregular payments, there are a few different ways one can compute a benefit amount. This method uses the minimum non-zero payment as the benefit. |
2 | Benefit is Average Payment over term of coverage (excludes zero payments). Similar to above, this method uses the average of all non-zero payments over the term of coverage as the benefit. |
3 | Benefit is the Computed Payment. Similar to above, this method uses the computed payment as the benefit. |
4 | Benefit is True Average Payment over term of coverage (includes zero payments). Similar to above, this method uses the average of all payments over the term of coverage, including skips, as the benefit. |
5 | Protection factor uses days per period conversion. The protection calculation has converted the periodic rate to a daily rate. |
6 | Switch to Rate Set two. The protection calculation has switched to the second set of rates. |
7 | Switch method to Net. The protection calculation has switched to net coverage. |
8 | Switch method to Ordinary Life. The protection calculation has switched to ordinary life coverage. |
Attributes:
🔸Code
🔸 Code
Data Type |
---|
Integer |
The unique integer identifying the protection product <Note>
in
question. This Code
may be useful if the calling application would like to
override the default description or check for a given <Note>
element's Code
.
🟦 <Protection>
→<Product>
→<Cost>
Element Type | Data Type |
---|---|
Empty | - |
A breakdown of the cost for protection is provided by the attributes of this element.
<Cost Premium="827.26" PerPmt="19.28" PerDay="0.63" Factor="1.0154"/>
Attributes of this empty element 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.
The only time there will be two <Cost>
elements to parse is when the account
has been set up to use Plateau’s Uniguard product, and the user has requested
joint coverage. If this is the case, then two <Cost>
elements are provided to
disclose two premiums instead of a single aggregate joint premium.
🔹 Factor
Data Type | Default |
---|---|
Decimal | n/a |
The rate factor used to compute the premium for the requested protection
product. Note that this attribute is only present if the
ShowFactor
attribute of the associated
<Product>
request element is set to true
.
🔸 PerDay
Data Type |
---|
Currency |
The daily cost of coverage, expressed as currency.
🔸 PerPmt
Data Type |
---|
Currency |
The cost of coverage expressed as currency per payment.
🔸 Premium
Data Type |
---|
Currency |
The total cost for this protection over the term of the loan.
🔸 Rate
Data Type |
---|
Decimal |
The rate factor used to compute the premium for the requested protection product.
🟦 <Protection>
→<Product>
→<Coverage>
Element Type | Data Type |
---|---|
Empty | - |
The aggregate coverage amount and note are provided in the following attributes of this empty element
🔸 Amount
Data Type |
---|
Currency |
Attribute which contains the aggregate coverage amount for this protection product.
🔸 Code
Data Type |
---|
Integer |
If the requested protection was capped by the SCE for any reason, then the value of this attribute will be greater than zero. A value of zero indicates that the requested product was included with the loan for the full coverage amount of the loan.
🔸 Note
Data Type |
---|
Text |
The value of theNote
attribute will describe the type of coverage provided. If full coverage has been
provided on the aggregate coverage, then the value will be Full Coverage
.
Otherwise, the note will describe the type of partial coverage used.
🟦 <Protection>
→<Product>
→<Benefit>
Element Type | Data Type |
---|---|
Empty | - |
Disability and involuntary unemployment products require dislcosure of the benefit amount.
🔸 BenMon
Data Type |
---|
Currency |
Attribute which contains the monthly benefit amount for this protection product.
🔸 BenPer
Data Type |
---|
Currency |
Attribute which contains the periodic benefit amount for this protection product.
🔸 Code
Data Type |
---|
Integer |
If the requested protection was capped by the SCE for any reason, then the value of this attribute will be greater than zero. A value of zero indicates that the requested product was included with the loan for the full coverage amount of the loan.
🔸 Note
Data Type |
---|
Text |
This Note 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.
🟦 <Protection>
→<Product>
→<Borrower>[]
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the term of coverage of a specified borrower, for the requested product. The following attributes are defined for this purpose:
Attributes:
🔸AgeAtIssue
,🔸AgeAtMaturity
,🔹AmMonths
,🔸Birthday
,🔸Code
,🔸Maturity
,🔸Note
,🔸Months
,🔸Pmts
🔸 AgeAtIssue
Data Type |
---|
Special |
If coverage is written on this borrower, then the value of this attribute 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.
🔸 AgeAtMaturity
Data Type |
---|
Special |
If coverage is written on this borrower, then the value of this attribute 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.
🔹AmMonths
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only be returned when the protection product is configured to use TruStage's single premium formula #5, and contains the computed amortization term used in the premium computation.
🔸 Birthday
Data Type |
---|
Date |
This attribute contains the birthday associated with the borrower, as specified in the request. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🔸 Code
Data Type |
---|
Integer |
If the requested protection was capped by the SCEX for any reason, then the value of this attribute will be greater than zero. A value of zero indicates that the requested product was included with the loan for the full coverage amount of the loan.
🔸 Maturity
Data Type |
---|
Date |
The value of this attribute contains the coverage maturity date for this particular borrower.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🔸 Months
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of months.
🔸 Pmts
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of payments.
🟦 <Protection>
→<Product>
→<Caps>
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the maximum terms, amounts, and ages associated with the requested product.
Attributes:
🔹AttainAge
,🔹Benefit
,🔹BenPer
,🔹Coverage
,🔹InceptAge
,🔹Term
,🔹TermPer
🔹 AttainAge
Data Type | Default |
---|---|
Integer | n/a |
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 then this attribute will not be present.
🔹 Benefit
Data Type | Default |
---|---|
Currency | n/a |
Contains the maximum monthly benefit amount, expressed as currency. If no cap is present or applicable, then this attribute will not be present.
🔹 BenPer
Data Type | Default |
---|---|
Currency | n/a |
Contains the maximum periodic benefit amount, expressed as currency. If no cap is present or applicable, or if the payment frequency of the requested loan is monthly, then this attribute will not be present.
🔹 Coverage
Data Type | Default |
---|---|
Currency | n/a |
Contains the maximum aggregate coverage amount, expressed as currency. If no cap is present or applicable, then this attribute will not be present.
🔹 InceptAge
Data Type | Default |
---|---|
Integer | n/a |
Contains the maximum age a borrower may be at loan inception, expressed in years. If no cap is present or applicable, then this attribute will not be present.
🔹 Term
Data Type | Default |
---|---|
Integer | n/a |
Contains the maximum coverage term, expressed in months. If no cap is present or applicable, then this attribute will not be present.
🔹 TermPer
Data Type | Default |
---|---|
Integer | n/a |
Contains the maximum coverage term, expressed as a number of payments. If no cap is present or applicable, or if the payment frequency of the requested loan is monthly, then this attribute will not be present.
🟦 <AmTable>
Element Type | Data Type |
---|---|
Parent | - |
This element (if present) contains child elements which describe the loan's
amortization information. This element (and all of its child elements) will be
present unless the ShowAmTable
attribute of the <EditOutput>
element is set to
false
.
The following <AmTable>
Attributes will only occur if a Canadian APR was
computed as part of the loan.
🔹 AvgBal
Data Type | Default |
---|---|
Currency | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute is the average balance of the loan used in the Canadian APR calculation.
🔹 Months
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🔹 OddDays
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🔹 Weeks
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🟦 <AmTable>
→<GrandTotals>
Element Type | Data Type |
---|---|
Empty | - |
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 the following attributes:
<GrandTotals PmtTot="10551.72" IntTot="551.68" PrinTot="10000.04"/>
🔸 IntTot
Data Type |
---|
Currency |
Contains the sum of all interest attributes in the AmLine
elements.
This amount will differ from the <Moneys>
→<Interest>
element if there is a nonzero EndBal
for the final line of
amortization. The two will differ by this non-zero EndBal
.
🔸 PmtTot
Data Type |
---|
Currency |
Contains the total of payments scheduled for the computed loan.
🔸 PrinTot
Data Type |
---|
Currency |
Like IntTot
above, this attribute contains the total amount
paid to principal during the loan term, assuming all payments are made as
scheduled.
🟦 <AmTable>
→<SubTotals>[]
Element Type | Data Type |
---|---|
Empty | - |
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 <SubTotals>
element present. The element itself is empty, as all the
interesting data is found in the following attributes:
<SubTotals Year="2024" Start="1" Events="12"
PmtSub="10551.72" IntSub="551.68" PrinSub="10000.04"/>
Attributes:
🔸Events
,🔸IntSub
,🔸PmtSub
,🔸PrinSub
,🔸Start
,🔸Year
🔸 Events
Data Type |
---|
Integer |
This attribute defines the number of amortization events (contained in
<AmLine>
elements which are defined below) which belong to this
calendar year.
🔸 IntSub
Data Type |
---|
Currency |
Holds the total amount paid to interest over the year in question, assuming all payments are made as scheduled.
🔸 PmtSub
Data Type |
---|
Currency |
Contains the total of payments scheduled for the year in question.
🔸 PrinSub
Data Type |
---|
Currency |
Like IntSub
above, this attribute contains the total amount paid to principal
during the year in question, assuming all payments are made as scheduled.
🔸 Start
Data Type |
---|
Integer |
This attribute defines the first amortization event which falls in the specified
calendar year. To find the <AmLine>
element which corresponds to
this value, match the Idx attribute of the <AmLine>
element with
the integer value reported by this attribute.
🔸 Year
Data Type |
---|
Integer |
The given calendar year for which the subtotal data is applicable.
🟥 <AmTable>
→<AmLine>[]
Element Type | Data Type |
---|---|
Empty | - |
There is one <AmLine>
element 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.) However, some loan protection methods (TruStage's monthly
renewable product, to be exact) have amortization events which correspond to
loan protection premiums being added to the loan balance on specific dates.
<AmLine Idx="1" Date="2024-01-01" BegBal="10000.00"
Pmt="879.31" Int="84.93" Prin="794.38" EndBal="9205.62"/>
As with the <GrandTotals>
and <SubTotals>
elements, this
element is empty and contains all of the useful information for a given point in
the amortization of a loan in the following attributes.
Attributes:
🔸BegBal
,🔸Date
,🔸EndBal
,🔹FeeTot
,🔸Idx
,🔸Int
,🔸Pmt
,🔹PmtEsc
,🔸Prin
,🔹ProtUnpaid
,🔹Type
,🔹UnpaidInt
🔸 BegBal
Data Type |
---|
Currency |
The principal balance before the amortization event occurs.
🔸 Date
Data Type |
---|
Date |
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.
🔸 EndBal
Data Type |
---|
Currency |
The principal balance amount, after the amortization event has taken place.
🔹 FeeTot
Data Type | Default |
---|---|
Currency | 0 |
The total of all fees paid at this event.
🔸 Idx
Data Type |
---|
Integer |
The index of the amortization event, which is either the payment number, or
zero. A value of zero designates a protection premium that was charged on a date
other than a payment date. (Occurs with protection category TrueMOB
).
🔸 Int
Data Type |
---|
Currency |
The amount of the payment which goes to pay interest.
🔸 Pmt
Data Type |
---|
Currency |
The amount of the payment (or zero if the event is a True MOB protection premium).
🔹 PmtEsc
Data Type | Default |
---|---|
Currency | n/a |
If the computed loan is an annual rest mortgage, then the sum of escrowed payments for each amortization event will appear in this attribute. If the computed loan is not an annual rest mortgage, then this attribute will not be returned.
🔸 Prin
Data Type |
---|
Currency |
The amount of the payment which goes to reduce the principal balance.
🔹 ProtUnpaid
Data Type | Default |
---|---|
Currency | 0 |
If the loan includes escrowed True MOB protection products, and if a payment is not sufficient to pay the accrued fees, then any unpaid protection fees will be carried forward in this attribute to be paid off as soon as possible in a future payment.
🔹 Type
Data Type | Default |
---|---|
Text | n/a |
The type of event is recorded in this attribute, such as Advance
or
FixedPmt
. If any fees are included in the loan, then the value of this
attribute for those fee events will be the Name
of the fee, as specified in
the request.
🔹 UnpaidInt
Data Type | Default |
---|---|
Currency | n/a |
This attribute 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 places. If rounded, then the unpaid interest is displayed to two (2) decimal places.
Loan Classification
Payment protection products (such as the various credit insurances and debt cancellation plans) are most often defined and calculated for various regular loan repayment schedules. As an example, single premium credit life insurance usually defines one formula for computing the premium on equal payment loans, whereas a different formula is used for balloon loans and single payment notes. It is very common for a product to be allowed on a given regular loan type, but not to be allowed for another.
Since the Loan Builder module allows the calling application complete flexibility when requesting a loan, when protection is requested with a loan, the SCE must analyze the loan to determine what type of loan it is categorized as for the purposes of computing protection.
What follows is a discussion of all loan classifications recognized by the loan builder module, and the requirements that must be met for the SCE to classify a specified loan as such.
Equal Payment Loan
To be classified as an equal payment loan, the requested loan must have one
<Advance>
element, one
<EditInterest>
element, one
<PmtStream>
element with a
PmtType
attribute set to CalcPmt
with
a Term
> 1
, no
<Construction>
element, and no
EarlyPayoffDate
attribute.
Example: An equal payment loan with 120 payments.
<inLOAN_BUILDER>
<EditInterest Date="2017-06-12" IntRate="5.15" AccrualCode="304" />
<Advance Date="2017-06-12" Amount="50000.00" />
<PmtStream Begin="2017-07-12" PmtType="CalcPmt" Term="120" />
</inLOAN_BUILDER>
Single Payment Note
To be classified as a single payment note, all of the conditions specified for
equal payment loan classification hold, with the exception that the
<PmtStream>
element must have the
Term
attribute set to a value of 1
.
Example: A loan with a single payment.
<inLOAN_BUILDER>
<EditInterest Date="2017-10-01" IntRate="7.5" AccrualCode="310" />
<Advance Date="2017-10-01" Amount="50000.00" />
<PmtStream Begin="2017-12-31" PmtType="CalcPmt" Term="1" />
</inLOAN_BUILDER>
Balloon Loan with a Specified Amortization Term
To be classified as a balloon payment loan (computed via a specified
amortization term), the requested loan must have one
<Advance>
element, one
<EditInterest>
element, one
<PmtStream>
element with a
PmtType
attribute set to CalcPmt
and a
Term
> 1
, no
<Construction>
element, and one
EarlyPayoffDate
attribute set
to the payment number on which the loan will be terminated.
Example: A 60 payment balloon loan with regular payments computed based upon a 120 month amortization term.
<inLOAN_BUILDER>
<EditOutput EarlyPayoffDate="0060-00-00" />
<EditInterest Date="2017-06-12" IntRate="5.15" AccrualCode="304" />
<Advance Date="2017-06-12" Amount="50000.00" />
<PmtStream Begin="2017-07-12" PmtType="CalcPmt" Term="120" />
</inLOAN_BUILDER>
Balloon Loan with a Specified Regular Payment
To be classified as a balloon payment loan (computed via a specified regular
payment), the requested loan must have one
<Advance>
element, one
<EditInterest>
element, one
<PmtStream>
element with
PmtType
attribute set to FixedPmt
and
Term
> 1
, an optional second
<PmtStream>
element with
PmtType
attribute set to CalcPmt
and
Begin
set to a value formatted as
NNNN-00-00
(where NNNN is the value of
Term
in the first
<PmtStream>
element), no
<Construction>
element, and no
EarlyPayoffDate
attribute. Note
that the calling application does not need to specify a replacement payment type
of CalcPmt
, as the SCE will automatically adjust the final payment to generate
a final payment which amortizes the loan.
Example: 119 specified regular payments of $500, with a computed final balloon payment.
<inLOAN_BUILDER>
<EditInterest Date="2017-06-12" IntRate="5.15" AccrualCode="304" />
<Advance Date="2017-06-12" Amount="50000.00" />
<PmtStream Begin="2017-07-12" PmtType="FixedPmt" Amount="500.00" Term="120" />
<PmtStream Begin="0120-00-00" PmtType="CalcPmt" />
</inLOAN_BUILDER>
Balloon Loan with a Specified Final Payment
To be classified as a balloon payment loan (computed via a specified final
payment), the requested loan must have one
<Advance>
element, one
<EditInterest>
element, one
<PmtStream>
element with a
PmtType
attribute set to CalcPmt
and
Term
> 1
, and a second
<PmtStream>
element set up as a replacement
payment specifying the final payment number with
PmtType
attribute set to FixedPmt
, no
<Construction>
element, and no
EarlyPayoffDate
attribute.
Example: 119 computed regular payments with a specified final balloon payment of $10,000.
<inLOAN_BUILDER>
<EditInterest Date="2017-06-12" IntRate="5.15" AccrualCode="304" />
<Advance Date="2017-06-12" Amount="50000.00" />
<PmtStream Begin="2017-07-12" PmtType="CalcPmt" Term="120" />
<PmtStream Begin="0120-00-00" PmtType="FixedPmt" Amount="10000.00" Term="1" />
</inLOAN_BUILDER>
Interest Only Loan
To be classified as an interest only loan, the requested loan must have one
<Advance>
element, one
<EditInterest>
element, one
<PmtStream>
element with a
PmtType
attribute set to PayInt
and
Amount
attribute set to 0
and
Term
> 1
, no
<Construction>
element, and no
EarlyPayoffDate
attribute. Note
that the calling application does not need to specify a replacement payment type
of CalcPmt
, as the SCE will automatically adjust the final payment to
generate a final payment which amortizes the loan.
Example: 119 interest only payments, with a final balloon.
<inLOAN_BUILDER>
<EditInterest Date="2017-06-12" IntRate="5.15" AccrualCode="304" />
<Advance Date="2017-06-12" Amount="50000.00" />
<PmtStream Begin="2017-07-12" PmtType="PayInt" Amount="0.00" Term="120" />
</inLOAN_BUILDER>
Fixed Principal Plus Interest Loan
To be classified as a fixed principal plus interest loan, the requested
loan must have one <Advance>
element, one
<EditInterest>
element, one
<PmtStream>
element with a
PmtType
attribute set to PayInt
and
Amount
attribute > 0
and
Term
> 1
, no
<Construction>
element, and no
EarlyPayoffDate
attribute. Note
that the calling application does not need to specify a replacement payment type
of CalcPmt
, as the SCE will automatically adjust the final payment to generate
a final payment which amortizes the loan.
Example: 119 fixed principal payments of $250, with a final balloon.
<inLOAN_BUILDER>
<EditInterest Date="2017-06-12" IntRate="5.15" AccrualCode="304" />
<Advance Date="2017-06-12" Amount="50000.00" />
<PmtStream Begin="2017-07-12" PmtType="PayInt" Amount="250.00" Term="120" />
</inLOAN_BUILDER>
Skipped / Irregular Payment Loan
To be classified as a skipped and/or irregular payment loan, the requested loan
must have one <Advance>
element, one
<EditInterest>
element, one
<PmtStream>
element with a
PmtType
attribute set to CalcPmt
and
Term
> 1
, additional replace payment
streams which produce skipped and/or irregular payments, no
<Construction>
element, and no
EarlyPayoffDate
attribute.
Example: Equal payment loan with all December payments skipped.
<inLOAN_BUILDER>
<EditInterest Date="2017-06-12" IntRate="5.15" AccrualCode="304" />
<Advance Date="2017-06-12" Amount="50000.00" />
<PmtStream Begin="2017-07-12" PmtType="CalcPmt" Term="120" />
<PmtStream Begin="0000-12-00" PmtType="FixedPmt" Amount="0" />
</inLOAN_BUILDER>
Highly Irregular Loan
A loan builder loan is classified as highly irregular if it does not fall in one of the above classifications.
Equal Payment Loans
Equal payment loans are the most common type of loan calculated, and are usually the main focus of a lending institution. The four basic variables involved in an equal payment loan are: amount, rate, term and payment.
Most of the time, a user will want to specify the amount, rate and term, and then have the SCE compute the resulting payment. However, there are times when a specific payment is desired, and the amount or term must then be computed. The SCE supports these rollback calculations, and each is documented in this chapter.
Compute Payment
Most equal payment loan calculations are requested with the loan's proceeds, interest rate, and term known. The SCE then computes the regular payment that best amortizes the loan's ending balance to zero in accordance with the accrual method and options included in the loan request.
Sample Request
The following is a sample SCEX request for an equal payment loan calculation where the interest rate, proceeds, and term are specified and the regular payment is computed.
<inEQUAL_PMT Account="1" DataDirPath="C:\SCEX\" AccrualCode="32" PPY="monthly">
<LoanDate>2024-10-18</LoanDate>
<PmtDate>2024-11-18</PmtDate>
<IntRate>10.123</IntRate>
<Proceeds>10000.00</Proceeds>
<TotalDown>2500.00</TotalDown>
<Term>12</Term>
<Fee Name="Fee1" CalcType="Dollar"
Entry="25.00" MaxValue="25.00"
AddToPrin="true" AddToFinChg="false" />
</inEQUAL_PMT>
Sample Response
The following is the XML response associated with the request above, at the time this documentation was being written (2024-10):
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE outEQUAL_PMT SYSTEM "outEQUAL_PMT.dtd">
<outEQUAL_PMT>
<Results>
<Description>Successful Calculation</Description>
<Payment>881.92</Payment>
</Results>
<FedBox>
<AmtFin>10025.00</AmtFin>
<FinChg>558.04</FinChg>
<TotPmts>10583.04</TotPmts>
<TotalSalePrice>13083.04</TotalSalePrice>
<RegZAPR Type="Actuarial">10.121</RegZAPR>
</FedBox>
<Moneys>
<Principal>10025.00</Principal>
<Interest>558.04</Interest>
<FinFees>25.00</FinFees>
<Protection Category="None" PerPmt="0.00" PerDay="0.00">0.00</Protection>
<Fee Name="Fee1">25.00</Fee>
</Moneys>
<Accrual>
<Method>Actual/365 US Rule</Method>
<Days1Pmt DayCount="Actual">31</Days1Pmt>
<Maturity>2025-10-18</Maturity>
</Accrual>
<PmtStream Term="12" Pmt="881.92" Rate="10.123" Begin="2024-11-18"/>
<AmTable>
<GrandTotals PmtTot="10583.04" IntTot="558.05" PrinTot="10024.99"/>
<SubTotals Year="2024" Start="1" Events="2" PmtSub="1763.84" IntSub="162.98" PrinSub="1600.86"/>
<SubTotals Year="2025" Start="3" Events="10" PmtSub="8819.20" IntSub="395.07" PrinSub="8424.13"/>
<AmLine Idx="1" Date="2024-11-18" BegBal="10025.00" Pmt="881.92" Int="86.19" Prin="795.73" EndBal="9229.27"/>
<AmLine Idx="2" Date="2024-12-18" BegBal="9229.27" Pmt="881.92" Int="76.79" Prin="805.13" EndBal="8424.14"/>
<AmLine Idx="3" Date="2025-01-18" BegBal="8424.14" Pmt="881.92" Int="72.43" Prin="809.49" EndBal="7614.65"/>
<AmLine Idx="4" Date="2025-02-18" BegBal="7614.65" Pmt="881.92" Int="65.47" Prin="816.45" EndBal="6798.20"/>
<AmLine Idx="5" Date="2025-03-18" BegBal="6798.20" Pmt="881.92" Int="52.79" Prin="829.13" EndBal="5969.07"/>
<AmLine Idx="6" Date="2025-04-18" BegBal="5969.07" Pmt="881.92" Int="51.32" Prin="830.60" EndBal="5138.47"/>
<AmLine Idx="7" Date="2025-05-18" BegBal="5138.47" Pmt="881.92" Int="42.75" Prin="839.17" EndBal="4299.30"/>
<AmLine Idx="8" Date="2025-06-18" BegBal="4299.30" Pmt="881.92" Int="36.96" Prin="844.96" EndBal="3454.34"/>
<AmLine Idx="9" Date="2025-07-18" BegBal="3454.34" Pmt="881.92" Int="28.74" Prin="853.18" EndBal="2601.16"/>
<AmLine Idx="10" Date="2025-08-18" BegBal="2601.16" Pmt="881.92" Int="22.36" Prin="859.56" EndBal="1741.60"/>
<AmLine Idx="11" Date="2025-09-18" BegBal="1741.60" Pmt="881.92" Int="14.97" Prin="866.95" EndBal="874.65"/>
<AmLine Idx="12" Date="2025-10-18" BegBal="874.65" Pmt="881.92" Int="7.28" Prin="874.64" EndBal="0.01"/>
</AmTable>
</outEQUAL_PMT>
Roll to Amount
Instead of specifying the interest rate, amount, and term and then computing a payment, sometimes it is helpful for the borrower to be able to specify a desired payment, rate and term and then see what amount the borrower can afford to borrower. Sherman and Associates calls this type of calculation a Roll to Amount.
Sample Request
The following is a sample SCEX request for an equal payment loan calculation where the loan amount (i.e. proceeds) is computed.
<inEQUAL_PROCEEDS Account="2" AccrualCode="330" DataDirPath="C:\SCEX\" PPY="monthly">
<LoanDate>2024-10-18</LoanDate>
<PmtDate>2024-11-18</PmtDate>
<IntRate>10.123</IntRate>
<Payment>300.00</Payment>
<Term>12</Term>
<Fee Entry="25.00" MaxValue="25.00" CalcType="Dollar"
AddToPrin="true" AddToFinChg="false" />
</inEQUAL_PROCEEDS>
Sample Response
The following is the XML response associated with the roll to amount request above, at the time this documentation was being written (2024-10):
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE outEQUAL_PROCEEDS SYSTEM "outEQUAL_PROCEEDS.dtd">
<outEQUAL_PROCEEDS>
<Results>
<Description>Successful Calculation</Description>
<Proceeds>3385.34</Proceeds>
<Payment>300.00</Payment>
<Final>300.00</Final>
</Results>
<FedBox>
<AmtFin>3410.34</AmtFin>
<FinChg>189.66</FinChg>
<TotPmts>3600.00</TotPmts>
<RegZAPR Type="Actuarial">10.112</RegZAPR>
</FedBox>
<Moneys>
<Principal>3410.34</Principal>
<Interest>189.66</Interest>
<FinFees>25.00</FinFees>
<Protection Category="None" PerPmt="0.00" PerDay="0.00">0.00</Protection>
<Fee>25.00</Fee>
</Moneys>
<Accrual>
<Method>Actual/Actual US Rule</Method>
<Days1Pmt DayCount="Actual">31</Days1Pmt>
<Maturity>2025-10-18</Maturity>
</Accrual>
<PmtStream Term="12" Pmt="300.00" Rate="10.123" Begin="2024-11-18"/>
<AmTable>
<GrandTotals PmtTot="3600.00" IntTot="189.66" PrinTot="3410.34"/>
<SubTotals Year="2024" Start="1" Events="2" PmtSub="600.00" IntSub="55.29" PrinSub="544.71"/>
<SubTotals Year="2025" Start="3" Events="10" PmtSub="3000.00" IntSub="134.37" PrinSub="2865.63"/>
<AmLine Idx="1" Date="2024-11-18" BegBal="3410.34" Pmt="300.00" Int="29.24" Prin="270.76" EndBal="3139.58"/>
<AmLine Idx="2" Date="2024-12-18" BegBal="3139.58" Pmt="300.00" Int="26.05" Prin="273.95" EndBal="2865.63"/>
<AmLine Idx="3" Date="2025-01-18" BegBal="2865.63" Pmt="300.00" Int="24.61" Prin="275.39" EndBal="2590.24"/>
<AmLine Idx="4" Date="2025-02-18" BegBal="2590.24" Pmt="300.00" Int="22.27" Prin="277.73" EndBal="2312.51"/>
<AmLine Idx="5" Date="2025-03-18" BegBal="2312.51" Pmt="300.00" Int="17.96" Prin="282.04" EndBal="2030.47"/>
<AmLine Idx="6" Date="2025-04-18" BegBal="2030.47" Pmt="300.00" Int="17.46" Prin="282.54" EndBal="1747.93"/>
<AmLine Idx="7" Date="2025-05-18" BegBal="1747.93" Pmt="300.00" Int="14.54" Prin="285.46" EndBal="1462.47"/>
<AmLine Idx="8" Date="2025-06-18" BegBal="1462.47" Pmt="300.00" Int="12.57" Prin="287.43" EndBal="1175.04"/>
<AmLine Idx="9" Date="2025-07-18" BegBal="1175.04" Pmt="300.00" Int="9.78" Prin="290.22" EndBal="884.82"/>
<AmLine Idx="10" Date="2025-08-18" BegBal="884.82" Pmt="300.00" Int="7.61" Prin="292.39" EndBal="592.43"/>
<AmLine Idx="11" Date="2025-09-18" BegBal="592.43" Pmt="300.00" Int="5.09" Prin="294.91" EndBal="297.52"/>
<AmLine Idx="12" Date="2025-10-18" BegBal="297.52" Pmt="300.00" Int="2.48" Prin="297.52" EndBal="0.00"/>
</AmTable>
</outEQUAL_PROCEEDS>
Roll to Term
The roll to term calculation computes a loan amount given an interest rate, proceeds, and desired payment.
Note that the term returned will be the minimum term such that the computed payment is less than or equal to the desired payment. Since the number of payments in a loan is an integer, it is most often the case that the resulting payment will not exactly match the desired payment. However, it is guaranteed to be less than or equal to the desired payment.
Sample Request
The following is a sample SCEX request for an equal payment loan calculation where the loan term is computed.
<inEQUAL_TERM Account="1" AccrualCode="202"
DataDirPath="C:\SCEX\" PPY="monthly">
<LoanDate>2024-10-18</LoanDate>
<PmtDate>2024-11-18</PmtDate>
<IntRate>10.123</IntRate>
<Proceeds>7500.00</Proceeds>
<Payment>400.00</Payment>
<Fee Entry="25.00" MaxValue="25.00" CalcType="Dollar"
AddToPrin="true" AddToFinChg="false" />
</inEQUAL_TERM>
Sample Response
The following is the XML response associated with the roll to term request above, at the time this documentation was being written (2024-10):
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE outEQUAL_TERM SYSTEM "outEQUAL_TERM.dtd">
<outEQUAL_TERM>
<Results>
<Description>Successful Calculation</Description>
<Term>21</Term>
<Payment>392.58</Payment>
</Results>
<FedBox>
<AmtFin>7525.00</AmtFin>
<FinChg>719.18</FinChg>
<TotPmts>8244.18</TotPmts>
<RegZAPR Type="Actuarial">10.142</RegZAPR>
</FedBox>
<Moneys>
<Principal>7525.00</Principal>
<Interest>719.18</Interest>
<FinFees>25.00</FinFees>
<Protection Category="None" PerPmt="0.00" PerDay="0.00">0.00</Protection>
<Fee>25.00</Fee>
</Moneys>
<Accrual>
<Method>Unit Period 365 Simple</Method>
<Days1Pmt DayCount="Actual">31</Days1Pmt>
<Maturity>2026-07-18</Maturity>
</Accrual>
<PmtStream Term="21" Pmt="392.58" Rate="10.123" Begin="2024-11-18"/>
<AmTable>
<GrandTotals PmtTot="8244.18" IntTot="719.13" PrinTot="7525.05"/>
<SubTotals Year="2024" Start="1" Events="2" PmtSub="785.16" IntSub="125.41" PrinSub="659.75"/>
<SubTotals Year="2025" Start="3" Events="12" PmtSub="4710.96" IntSub="503.29" PrinSub="4207.67"/>
<SubTotals Year="2026" Start="15" Events="7" PmtSub="2748.06" IntSub="90.43" PrinSub="2657.63"/>
<AmLine Idx="1" Date="2024-11-18" BegBal="7525.00" Pmt="392.58" Int="64.70" Prin="327.88" EndBal="7197.12"/>
<AmLine Idx="2" Date="2024-12-18" BegBal="7197.12" Pmt="392.58" Int="60.71" Prin="331.87" EndBal="6865.25"/>
<AmLine Idx="3" Date="2025-01-18" BegBal="6865.25" Pmt="392.58" Int="57.91" Prin="334.67" EndBal="6530.58"/>
<AmLine Idx="4" Date="2025-02-18" BegBal="6530.58" Pmt="392.58" Int="55.09" Prin="337.49" EndBal="6193.09"/>
<AmLine Idx="5" Date="2025-03-18" BegBal="6193.09" Pmt="392.58" Int="52.24" Prin="340.34" EndBal="5852.75"/>
<AmLine Idx="6" Date="2025-04-18" BegBal="5852.75" Pmt="392.58" Int="49.37" Prin="343.21" EndBal="5509.54"/>
<AmLine Idx="7" Date="2025-05-18" BegBal="5509.54" Pmt="392.58" Int="46.48" Prin="346.10" EndBal="5163.44"/>
<AmLine Idx="8" Date="2025-06-18" BegBal="5163.44" Pmt="392.58" Int="43.56" Prin="349.02" EndBal="4814.42"/>
<AmLine Idx="9" Date="2025-07-18" BegBal="4814.42" Pmt="392.58" Int="40.61" Prin="351.97" EndBal="4462.45"/>
<AmLine Idx="10" Date="2025-08-18" BegBal="4462.45" Pmt="392.58" Int="37.64" Prin="354.94" EndBal="4107.51"/>
<AmLine Idx="11" Date="2025-09-18" BegBal="4107.51" Pmt="392.58" Int="34.65" Prin="357.93" EndBal="3749.58"/>
<AmLine Idx="12" Date="2025-10-18" BegBal="3749.58" Pmt="392.58" Int="31.63" Prin="360.95" EndBal="3388.63"/>
<AmLine Idx="13" Date="2025-11-18" BegBal="3388.63" Pmt="392.58" Int="28.59" Prin="363.99" EndBal="3024.64"/>
<AmLine Idx="14" Date="2025-12-18" BegBal="3024.64" Pmt="392.58" Int="25.52" Prin="367.06" EndBal="2657.58"/>
<AmLine Idx="15" Date="2026-01-18" BegBal="2657.58" Pmt="392.58" Int="22.42" Prin="370.16" EndBal="2287.42"/>
<AmLine Idx="16" Date="2026-02-18" BegBal="2287.42" Pmt="392.58" Int="19.30" Prin="373.28" EndBal="1914.14"/>
<AmLine Idx="17" Date="2026-03-18" BegBal="1914.14" Pmt="392.58" Int="16.15" Prin="376.43" EndBal="1537.71"/>
<AmLine Idx="18" Date="2026-04-18" BegBal="1537.71" Pmt="392.58" Int="12.97" Prin="379.61" EndBal="1158.10"/>
<AmLine Idx="19" Date="2026-05-18" BegBal="1158.10" Pmt="392.58" Int="9.77" Prin="382.81" EndBal="775.29"/>
<AmLine Idx="20" Date="2026-06-18" BegBal="775.29" Pmt="392.58" Int="6.54" Prin="386.04" EndBal="389.25"/>
<AmLine Idx="21" Date="2026-07-18" BegBal="389.25" Pmt="392.58" Int="3.28" Prin="389.30" EndBal="-0.05"/>
</AmTable>
</outEQUAL_TERM>
Equal Payment, Compute Payment - Request
Please see the Legend to understand the conventions used to document each element and attribute. Note that for requests, the XML elements are documented in alphabetical order by parent element.
🟥 <inEQUAL_PMT>
Element Type | Data Type |
---|---|
Parent | - |
This element is the root element for the request. It is a parent element that has no data, but does have several attributes that offer a wide variety of adjustments.
Attributes:
🔹Account
,🔹AccrualCode
,🔹AprType
,🔹Country
,🔹DataDirPath
,🔹ForceReload
,🔹HideAmort
,🔹Lastday
,🔹MAPR_Max
,🔹Metavante
,🔹OddFinal
,🔹PmtDollarRound
,🔹PmtRound
,🔹PPY
,🔹UseMAPR
,🔹YieldPPY
🔹 Account
Data Type | Values | Default |
---|---|---|
Integer | [1...9999] | 1 |
This attribute specifies which account should be used to compute the requested
loan. Each account is numbered from 1 to 9,999, and each account corresponds to
a set of setup files which define numerous settings which may affect the loan
calculation, such as the accrual method, insurance methods and rates, etc. If
this attribute is not specified, a default value of 1
will be used.
🔹 AccrualCode
Data Type | Values | Default |
---|---|---|
Enum | See table | default |
This property allows an accrual method to be used other than the accrual method dictated by the setup file for the given account. If no accrual code attribute is specified, the method defined in the setup file will be used. The Accrual Code Table lists all valid accrual codes available. Note that for the split rate accrual codes (i.e. those above 500), the split rate tiers must be defined in the setup file.
🔹 AprType
Data Type | Values | Default |
---|---|---|
Enum | See below | default |
This attribute allows the calling application to specify an APR calculation method which will override the default value found in the setup file for the given account. If this attribute is set to a valid value, then the specified method will be used to compute the APR for this loan calculation.
If the Country
attribute has been set by the calling
application and this attribute is not set, then the APR method used will be
determined by the specified country. For the United States of America, the
default APR method is actuarial
. For a country in the European Union, the
default value is eu
(European Union APR). For Canada, the default APR method
is ca
(Canadian APR).
default
- Use setup file value.actuarial
- Appendix J Actuarial APRusrule
- US Rule APReu
- European Union APRca
- Canadian APRxirr
- Extended Internal Rate of Return (same as excel function)xirr360
- XIRR using a 360 divisor rather than a 365 divisorirr
- Simple Internal Rate of Return (same as excel function)
If this attribute is not specified and the Country
attribute
is not specified, then the value of default
will be used which informs the SCE
to use the APR method defined in the setup file for the specified
Account
.
🔹 Country
Data Type | Values | Default |
---|---|---|
Alpha-2 or Numeric-3 code | See table | US |
This attribute allows the calling application to specify a two (2) character or
three (3) digit country code. If none is provided, then a default value of US
will be used. Please see the Country Codes Table for the
list of supported countries and their associated codes.
Currently, the country code is used to determine the default value of the
AprType
attribute (see above).
🔹 DataDirPath
Data Type | Values | Default |
---|---|---|
Text | See below | See below |
If this attribute is set, the SCE will look for a data folder containing the
setup files in the path specified. Thus, if the DataDirPath
is set to
C:\SCEX\
, the SCE will look for the setup files in C:\SCEX\data
.
If the calling application wishes to specify the data directory path in its
entirety (e.g. the calling app does not want the SCE to append \data
to the
provided path), then simply terminate the specified DataDirPath
with an
asterisk (*
). Thus, if the DataDirPath
is set to C:\SCEX\bank1\*
, the SCE
will look for the setup files in C:\SCEX\bank1\
.
If this attribute is not set, the SCE will attempt to locate the data folder in
the default data directory path location, which can be retrieved using the
<inVERSION>
module query, and set via the SCE API.
This attribute is useful if you wish to use only a single installation of the
SCE, but have many different setup file groupings. By specifying a different
DataDirPath
for each grouping, you can easily separate the groups from one
another instead of grouping them all together in a single directory.
🔹 ForceReload
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
The SCE caches setup files previously used. This improves performance for
subsequent loan requests using one of the cached accounts. However, if you need
the SCE to reload the setup files for a given request (e.g. you just copied
over new setup files), then you can set this attribute to true
and the setup
files will be forced to reload. If left at the default value of false
, then
setup files are only reloaded when the SCE notices that one of the setup files
has been modified.
🔹 HideAmort
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
This attribute determines whether or not an amortization schedule will be
included in the response, given a successful loan calculation. If you do not
require the use of the amortization schedule, then setting this attribute to
true
will suppress its output. The default value of false
will return the
amortization schedule as part of the response.
🔹 Lastday
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If present, this attribute overrides the Last Day setting in the setup files, which only applies to loans computed with an actual day interest accrual calendar where the first payment date falls at the end of a month with fewer than 31 days. As an example, if the first payment date is on April 30, should the following payment dates be made on the 30th of each month, or on the last day of the month?
If no value is specified for this attribute, then the setup file setting will be
used. If true
is specified, then conditions triggering a last day situation
will result in payments which fall at the end of the month. A value of false
indicates that when dictated, subsequent payment dates will not be moved to the
last day of the month.
🔹 MAPR_Max
Data Type | Values | Default |
---|---|---|
Decimal | [-99.999...600] | 36.0 |
If you are computing the Military APR (see UseMAPR
below) and
wish to override the default maximum APR value of 36
%, then specify the
desired maximum as the value of this attribute.
🔹 Metavante
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to a value of true
, then the
<Metavante>
element will be included in the
response. Also, some loans will also disclose
<MinInterestPmt>
and
<MaxInterestPmt>
elements.
🔹 OddFinal
Data Type | Values | Default |
---|---|---|
Enum | default , true , false , 1 , 0 | default |
This attribute allows the calling application to specify an odd final payment
calculation method which will override the default value found in the setup file
for the given account. If not specified, then the value of default
will be used.
Odd final payments are sometimes desired to produce perfect amortization (i.e. an ending balance of zero after the final payment is made).
🔹 PmtDollarRound
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Payments are normally rounded to the penny, according to the method specified by
the PmtRound attribute (see below). If the payment should be rounded to the
dollar instead of the penny, then set the value of this attribute to true
.
Note that for some loans (such as those with longer terms or relatively small proceeds), rounding the payment up or to the nearest dollar may require a shortened loan term to prevent one or more negative payments at the end of the loan.
🔹 PmtRound
Data Type | Values | Default |
---|---|---|
Enum | default , nearest , up , down , best | default |
This attribute allows the calling application to specify a payment rounding
option which will override the value found in the setup file. If not specified,
then the value of default
will be used.
default
- Use method specified in setup file.nearest
- Round computed payment to the nearest penny, using 5/4 rounding. e.g. 300.242 = 300.24, 300.245 = 300.25.up
- Round computed payment up to the next penny. e.g. 300.241 = 300.25.down
- Round computed payment down to the previous penny. e.g. 300.249 = 300.24.best
- Once the unrounded payment has been computed, amortize the loan using the rounded down and rounded up payment, and then return the payment which amortizes the loan’s ending balance closest to zero.
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | See below | monthly |
PPY is an abbreviation for payments per year, and as one might surmise,
determines the payment frequency for the loan. The default value of monthly
will
result in a loan with 12 payments per year. If you require a loan with a payment
frequency other than monthly, specify it using this attribute.
Value | Translation | Description |
---|---|---|
1 | Annual | Once Per Year |
2 | SemiAnnual | Twice Per year (every six months) |
4 | Quarterly | Four per year (every three months) |
6 | Bimonthly | Six per year (every two months) |
12 | Monthly | Twelve per year (every month) |
24 | Semimonthly | Twice Per Month* |
26 | Biweekly | Every two weeks |
52 | Weekly | Every week |
* Semimonthly loans are characterized by making two payments per month on the same days. A common semimonthly schedule is to make payments every 1st and 16th of the month. Another common schedule is the 15th and the end of every month.
🔹 UseMAPR
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to a value of true
, the SCE will compute the Military
APR in addition to the Regulation Z APR. The <MAPR>
element will be included in the XML loan response.
🔹 YieldPPY
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 , 4 , 6 , 12 | 0 |
Canadian mortgages may compute periodic interest using a fractional power of a
periodic yield. If set to a value other than 0
, this value determines the
period. Please contact us for further information if you support mortgage
calculations in Canada. Note that when using this attribute with a value other
than zero, the calling application must include an odd days prepaid fee in the
request.
🟦 <Construction>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | Not a construction loan |
Include the <Construction>
element to configure a construction period on a
loan. The use of this element requires setup files configured to support
construction loans, or specification of the Method
to be used.
If the specified account is not set up to support construction loans, this
element will be ignored.
Attributes:
🔹Accrual
,🔹Active
,🔹HalfCommitment
,🔹Method
,🔹PermanentAttached
,🔹PPY
,🔸Rate
,🔸Term
,🔹UnitOddDayDivisor
🔹 Accrual
Data Type | Values | Default |
---|---|---|
Enum | default , unitperiod , actual360 , actual365 | default |
If the loan request is a construction loan with no permanent loan attached, this attribute allows the calling application to specify the accrual method used.
default
- The setup files determine the default value for interest accrual.unitperiod
- Compute periodic interest using a 1/PPY factor.actual360
- Compute periodic interest using the actual # of days between payments/360.actual365
- Compute periodic interest using the actual # of days between payments/365.
🔹 Active
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this loan request includes a construction loan, then set this attribute to
true
. If no construction loan is desired, either do not specify the
<Construction>
element or set this attribute to false
.
🔹 HalfCommitment
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
During the term of the construction loan, the estimated interest for disclosure
purposes may be either computed on the full or half commitment amounts. By
setting this attribute to true
, interest will be estimated using half of the
initial commitment amount (i.e. the principal balance). The default value of
false
will cause interest to be estimated using the entire initial commitment
amount.
🔹 Method
Data Type | Values | Default |
---|---|---|
Enum | default , simple , laserpro , intonly | default |
There are three methods used to define how construction loans are computed and
disclosed. A method of default
tells the SCE to use the method
configured in the setup file. The meaning of the three methods are as follows:
simple
- Compute an aggregate construction interest amount for the entire construction period for both pure construction loans and construction to permanent loans.laserpro
- Compute an aggregate construction interest amount for the entire construction period for pure construction loans. For construction to permanent loans, compute and disclose discrete interest-only payments during the construction period.intonly
- Compute and disclose discrete interest-only payments during the construction period for both pure construction loans and construction to permanent loans.
🔹 PermanentAttached
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Construction loans may be computed on their own, or they may be attached to a
permanent loan which begins at the conclusion of the construction loan. If a
permanent loan is attached to the construction loan, then set this attribute’s
value to true
and set up the permanent loan information in the request
elements.
The default value of false
indicates that this is solely a construction loan
with no permanent attached. In this case, you still need to set up the
<LoanDate>
, <PmtDate>
and <Proceeds>
elements.
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | 1 , 2 , 4 , 6 , 12 , 24 , 26 , 52 | 12 |
The PPY
attribute allows the calling application to specify the payment
frequency during the construction period. The default value of monthly will
result in a construction loan with 12 payments per year. If you require a
payment frequency during the construction period other than monthly, then
specify it using this attribute. Note that if a permanent loan is attached to
the construction loan, that the permanent loan's payment frequency may differ
from the construction period’s payment frequency.
🔸 Rate
Data Type | Values | Default |
---|---|---|
Decimal | [-99.999...600] | 0 |
This attribute determines the rate applied to the appropriate commitment amount during the term of the construction loan.
🔸 Term
Data Type | Values | Default |
---|---|---|
Integer | [1...60] * | 0 |
The term of the construction loan (in payments) is specified using this attribute. Please note that the term may not exceed five years.
* 60 is the maximum number of months in the Construction period. In general, the maximum entry is 5 *
PPY
, where the PPY is the payments per year attribute of the<Construction>
element.
🔹 UnitOddDayDivisor
(enum, [], Ignore)
Data Type | Values | Default |
---|---|---|
Enum | ignore , 360 , 365 , vardpy | ignore |
When specifying an Accrual
method of type unitperiod
, this
attribute allows the calling application to specify how odd days between the
loan and first payment dates are taken into account.
ignore
means that all odd days are ignored, and the calculation will assume
one full unit period. 360
and 365
will compute the actual number of days
between the loan date and first payment date, and then use either a 360 or 365
divisor to determine the amount of interest accrued during that period. vardpy
accrues interest in the same manner as accrual code 250/350.
🟦 <Fee>[]
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No fee |
Unlike most other elements, any number of fees may be defined, or none at all. All of the information used to compute a fee is contained in its attributes.
Attributes:
🔹AddToFinChg
,🔹AddToPrin
,🔹Adjust
,🔹CalcType
,🔸Entry
,🔹IsLoanCost
,🔹MAPR
,🔹MaxValue
,🔹MinValue
,🔹Name
🔹 AddToFinChg
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
If this fee should be included in the Reg. Z Finance Charge (and hence, affect
the APR), then set this attribute to true
. The default value of false
indicates that the fee does not affect the Finance Charge nor APR.
🔹 AddToPrin
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this fee should be added to the principal balance (e.g. the fee is financed
along with the amount requested), then set this attribute to true
. If set to
false
, then the fee is paid up front out of the borrower’s pocket.
🔹 Adjust
Data Type | Values | Default |
---|---|---|
Currency | any | 0 |
The optional attribute Adjust
allows the calling application to increase or
decrease the base amount on which a fee is calculated. If a negative value is
specified and this adjustment would produce a negative base amount, then a value
of zero is returned for the given fee. This attribute has no effect on fees with
a CalcType
of Dollar
.
As an example, in Tennessee you may need to define a financed, non-APR affecting fee to be computed by decreasing the amount financed by $2,000, and then multiplying this reduced amount by 0.115. The way to accomplish this in the SCEX is as follows:
<Fee CalcType="OnAmtFin" Entry="0.115" Adjust="-2000" AddToPrin="true" AddToFinChg="false" />
🔹 CalcType
Data Type | Values | Default |
---|---|---|
Enum | Dollar , OnProceeds , OnAmtFin , OnPrin , DocStamp | Dollar |
The value of this attribute determines how the fee is to be computed, as described below:
Dollar
- TheEntry
attribute is understood as a flat dollar amount.OnProceeds
- TheEntry
attribute is understood as a percentage value, to be applied to the loan’s proceeds. AnEntry
of1.0
would represent a fee of 1.0% of proceeds.OnAmtFin
- TheEntry
attribute is understood as a percentage value, to be applied to the Amount Financed. AnEntry
of0.5
would represent a fee of 0.5% of Amount Financed.OnPrin
- TheEntry
attribute is understood as a percentage value, to be applied to the loan’s principal balance. AnEntry
of0.125
would represent a fee of 0.125% of principal balance.DocStamp
- TheEntry
attribute is understood as a Florida doc stamp rate, to be applied to the loan’s principal balance. AnEntry
of0.35
would represent a fee of 0.35% of the principal balance. You must set the AddToFinChg attribute to false, otherwise the doc stamp fee will return a value of zero.
🔸 Entry
Data Type | Values |
---|---|
Decimal or Currency | >= 0 |
The Entry
is the basic starting point fee value that determines the dollar
value of the resulting fee computation. How this attribute is interpreted
depends upon the CalcType
attribute, described above. This
value is either a dollar value or a percentage (aka "points").
🔹 IsLoanCost
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
When requesting the new TILA RESPA outputs (via the
<TILARESPA2015>
element), the SCE needs to know which fees need
to be considered borrower paid loan costs, as defined in the rule. Please note
that if the fee is paid by a lender or other third party, then the fee does not
affect the loan calculation and should not be sent to the SCE. If it is sent,
then the value of this attribute should be set to false
.
🔹 MAPR
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If you wish to compute the Military APR, then certain fees may not be considered
Regulation Z APR affecting fees, but are considered Military APR affecting fees.
In this case, you will need to set the value of this attribute to true
.
Fees which are added to the finance charge (e.g.
AddToFinChg
="true"
) are always considered MAPR fees,
regardless of the stated value of this attribute.
Note that debt protection products are automatically included in the calculation of the Military APR, no matter what method is used for payment (e.g. single premium vs. monthly outstanding balance).
🔹 MaxValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If a maximum value for the fee is specified and is greater than zero, then if the computed fee exceeds this maximum value, then this maximum value will be used instead. If no maximum value is specified or is set to a value of zero, then no maximum will be enforced. Please note that this attribute is applied to all fee types documented.
🔹 MinValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If a minimum value for the fee is specified and is greater than zero, and if the
Entry
attribute holds a value greater than zero, then if the
computed fee is less than this minimum value, then this minimum value will be
used instead. If no minimum value is specified or is set to a value of zero,
then no minimum will be enforced. If a specified minimum value exceeds a
specified maximum value, then the minimum value will be ignored. Please note
that this attribute is applied to all fee types documented.
🔹 Name
Data Type | Values | Default |
---|---|---|
Text | any | n/a |
This attribute is for convenience purposes only, and does not affect the
calculation of the fee in any manner. If a Name
attribute is specified for the
<Fee>
element, then the corresponding <Fee>
element in the XML output will have a Name
attribute with the same value. This allows you to easily differentiate fees in
the response.
🟦 <Format>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | See attributes |
The <Format>
element is one of the first elements parsed from a request, as the
attributes of this empty element affect how date and numeric values are parsed
and validated.
Attributes:
🔹CurrencyDecimals
,🔹DateFormat
,🔹DateSeparator
,🔹DecimalSeparator
,🔹StrictDP
,🔹ThousandSeparator
🔹 CurrencyDecimals
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 | 2 |
When displaying and parsing Currency values, the value of this attribute
determines the maximum number of decimal places allowed after the
DecimalSeparator
.
🔹 DateFormat
Data Type | Values | Default |
---|---|---|
Enum | YMD , MDY , DMY | YMD |
When displaying and parsing Date values, this field determines the expected
format for all Date fields. The following DateFormat
options are allowed:
YMD
- All dates should be formatted as YYYY-MM-DD.MDY
- All dates should be formatted as MM-DD-YYYY.DMY
- All dates should be formatted as DD-MM-YYYY.
Note that the character which separates the individual month, day, and year
portions of the date is configurable via the
DateSeparator
attribute.
🔹 DateSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | - |
When displaying and parsing Date values, this attribute determines the character used to separate the individual month, day, and year portions of a date.
🔹 DecimalSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | . |
When displaying and parsing Currency or Decimal numeric values, this attribute determines the character used to separate the fractional part from the whole.
🔹 StrictDP
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 , | false |
If the value of this attribute is true
, then the SCE will strictly verify the
number of decimal places allowed for currency input values. Thus, if the calling
application sends in a request with a currency amount of 1000.005
, the SCE
will return an error code.
If the value of this attribute is false
, then currency values sent in with an
invalid number of decimal places will be rounded to the correct number of
decimal places by the SCE (using five/four rounding), and a warning message with
this information will be returned with the response.
🔹 ThousandSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | , |
When displaying numeric values, this attribute determines the character used to separate the thousands places from the hundreds. Note that when parsing numeric values, the value of this attribute is ignored.
🟥 <IntRate>
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | [-99.999...600] |
The element data will determine the annual interest rate used for the loan. (Split rate loans require use of the setup files.)
The interest rate should be expressed as an annual percentage. For example, a loan computed with an interest rate of 6.125% would be specified as:
<IntRate>6.125</IntRate>
Attributes: None
🟦 <IntStartDate>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= <LoanDate> and <= <PmtDate> | <LoanDate> |
This element contains the date on which interest begins to accrue on the loan’s
principal balance. If this element is not specified, then the interest start
date is defaulted to be the <LoanDate>
. Also note that the
interest start date must be equal to the loan date when computing a construction
loan. The interest start date (when specified) must be on or after the loan
date, as well as on or before the <PmtDate>
. All dates must be in
the form of YYYY-MM-DD, and be 10 characters long. Hence, an interest start date
April 27, 2024 would be specified as:
<IntStartDate>2024-04-27</IntStartDate>
Attributes: None
🟥 <LoanDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= 1900-01-01 |
This element determines when interest begins to accrue. If interest begins on a
later date, use the <IntStartDate>
element to define the date
on which interest begins to accrue.
This element contains the date on which the loan amount is disbursed and interest begins to accrue. All dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a loan date of March 4, 2024 would be specified as:
<LoanDate>2024-03-04</LoanDate>
Attributes: None
🟦 <Mortgage_Insurance>
Element Type | Data Type | Values | Default |
---|---|---|---|
Parent | - | - | No mortgage insurance |
The <Mortgage_Insurance>
element determines if this loan includes one of the
supported types of mortgage insurance (MI) - PMI or FHA. This element contains
child elements which further specify mortgage insurance options.
NOTE: Mortgage insurance is only supported on equal, balloon, and interest only loan builder requests at this time.
Attributes:
🔹CashDown
,🔹LoanAmt
,🔸PropertyValue
,🔹Type
🔹 CashDown
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
The CashDown
attribute represents a cash down payment made at closing. If
specified and greater than zero, this amount will be deducted from the principal
balance. If not specified, the cash down payment will default to zero.
🔹 LoanAmt
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | Principal balance |
The LoanAmt
attribute represents the amount by which the PMI rates are
multiplied to produce a level PMI premium. If not specified, then the principal
balance will be used to compute the annual premium.
🔹 PropertyValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
This attribute’s value represents the appraised property value, and will be used in the calculation of the loan to value ratio.
🔹 Type
Data Type | Values | Default |
---|---|---|
Enum | pmi , fha | pmi |
This attribute determines the type of mortgage insurance to include with the
loan. If the Type
attribute is set to FHA
, a different MI premium is
computed every twelve months based upon the average outstanding principal
balance during that same term. The MI calculation adheres strictly to the HUD
regulation.
🟥 <Mortgage_Insurance>
→<MI_Rate>[]
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | >= 0 |
The value of this element specifies the cost of mortgage insurance per $100 of
the loan amount. Note that there may be more than one <MI_Rate>
element
defined in an XML loan request (see the Switch
attribute
below).
As an example, a loan computed with a MI rate of $1.50 per $100 would be
specified as <MI_Rate>1.50</MI_Rate>
.
Attributes:
🔸Switch
🔹 Switch
Data Type | Values | Default |
---|---|---|
Integer | > 0 | 0 |
This optional attribute defines the payment number beyond which the associated MI rate will apply. If not specified, the value will default to zero.
Thus, if there is only a single MI rate, one may omit this attribute. Single rate example (use a rate of $1.50 for the entire term of MI coverage):
<MI_Rate>1.50</MI_Rate>
Multiple rate example (use a rate of $1.50 for the first 10 years, with a rate of $0.20 for coverage beyond 10 years):
<MI_Rate>1.50</MI_Rate>
<MI_Rate Switch="120">0.20</MI_Rate>
🟦 <Mortgage_Insurance>
→<Periodic>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Integer | >= 0 | 0 |
The value of this element represents the term beyond which MI is no longer
included. As an example, if mortgage insurance must be removed after the 180th
payment, then the calling application should specify <Periodic>180</Periodic>
in the XML loan request. 0
means no term removal is in effect.
🔹 DropLTV
Data Type | Values | Default |
---|---|---|
Decimal | >= 0 and <= 100 | 0 |
The value of this attribute determines the loan to value ratio at which MI
should be removed, and is expressed as a percentage. For example, if you wish to
automatically drop MI when the loan to value ratio first equals or falls below
78%, then you would specify DropLTV="78.0"
.
🔹 WarnLTV
Data Type | Values | Default |
---|---|---|
Decimal | >= 0 and <= 100 | 0 |
The value of this attribute determines the loan to value ratio at which a
warning should be issued, and is expressed as a percentage of LTV (loan to
value). For example,if you wish to know when the loan to value ratio first
equals or falls below 80%, then you would specify WarnLTV="80.0"
.
🟦 <Mortgage_Insurance>
→<UpFront>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Decimal | >= 0 | 0 |
This element determines the up front fee for mortgage insurance, as disclosed in
the <PMI_Fee>
element in the results. If this element is not
specified, no up front fee will be computed. Note that ZOMP (zero option monthly
premium) products do not have an up front fee, which means that this element can
be omitted or set to zero.
The following attributes define how the fee is computed and disclosed.
🔹 Paid
Data Type | Values | Default |
---|---|---|
Enum | Financed , AtClosing , ByLender | AtClosing |
If the value of this attribute is set to Financed,
then the computed up front
fee will be added to the principal balance and the finance charge. A value of
AtClosing
will cause the value of the fee to be added to the finance charge
alone. Finally, a value of ByLender
means that the up front fee is to be paid by
the lender; hence, the value of the fee is a Pocket Fee that is not added to
either the principal balance nor the finance charge.
🔹 Units
Data Type | Values | Default |
---|---|---|
Enum | Months , Points , Years | Months |
If the Units attribute is set to Months
, the value of the
<UpFront>
element represents the number of periodic MI premiums to
be paid at closing.
If the Units attribute is set to Years
, the value of the
<UpFront>
element represents the number of annual MI premiums to
be paid at closing.
Many single premium products define the up front fee as a number of years of MI to be paid up front.
Finally, if the Units attribute is set to Points
, the value of the
<UpFront>
element represents the percentage of principal to be
paid up front. As of October 3, 2011, FHA loans use points.
🟦 <OddDaysPrepaid>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No odd days prepaid interest |
If odd days interest should be treated as a prepaid finance charge or added to the first payment, then include this empty element in the request. The attributes of this element determine how odd days interest is computed and handled.
Attributes:
🔹AccrualCode
,🔹AddToPmt
,🔹AddToPrin
,🔹AnchorDate
,🔹ForceUnitPeriod
,🔹NoCap
,🔹UseDailyCost
,🔹UseNegODI
🔹 AccrualCode
Data Type | Values | Default |
---|---|---|
Enum | See below | 220 |
The accrual code defines how the odd days interest is computed.
Note that accrual code 250
("Variable Days Per Year") defines the basis divisor
days to be equal to 12 multiplied by the number of days in the month of the date
on which interest begins to accrue. Thus, if the interest start date falls in
November, then the number of basis days is 360. If the interest start date falls
in a month with 31 days, then the number of basis days is 372. For an interest
start date in February, the number of basis days will either be 336 or 348,
depending upon whether or not it is a leap year.
AccrualCode | Description |
---|---|
204 | Unit period simple w/ true 360 calendar and 360 day divisor |
205 | Unit period simple w/ true 360 calendar and 365 day divisor |
210 | Actual / 360 simple |
211 | True 365 / 360 simple |
220 | Actual / 365 simple |
221 | True 365 / 365 simple |
230 | Actual / Actual simple |
231 | Midnight 366 simple |
250 | Unit period simple w/ variable DPY divisor |
🔹 AddToPmt
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application wants the odd days interest to be added to the first
payment, then set the value of this attribute to true
. A value of false
indicates that the odd days interest will be treated as a prepaid fee.
🔹 AddToPrin
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If any odd days interest should be treated as a financed prepaid fee, then set
the value of this attribute to true
. Note that if both
AddToPmt
and AddToPrin
are set to true
, then a warning
message will be returned by the SCEX and the value of AddToPrin
will be set to
false
.
🔹 AnchorDate
Data Type | Values | Default |
---|---|---|
Enum | BackUnitPeriod , BackDaysPerPeriod | BackUnitPeriod |
The computed number of odd days is the number of days between the loan date and the anchor date. This attribute determines how to arrive at the anchor date.
BackUnitPeriod
- The anchor date is one unit period prior to the specified first payment date.BackDaysPerPeriod
- The anchor date is the number of days per period prior to the first payment date.
Please note that for both of these methods, the period used will be that associated with the payment stream in which the first payment occurs.
🔹 ForceUnitPeriod
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the loan's interest accrual is unit period, this attribute forces the period
to the first payment to be 1/12 (or 1/(PmtsPerYear) in general). Without this
attribute an accrual code of 202
(Unit Period /365) would use a factor of
Days/365 rather than the expected 1/12.
🔹 NoCap
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
When an odd days interest fee is present and financed, the value of this
attribute determines if the ODI fee is added to the principal balance for the
purposes of computing the ODI fee (e.g. if it is capitalized). If this value is
true
, the ODI is computed on the true principal balance less the ODI; false
means "compute ODI on the true principal balance.
🔹 UseDailyCost
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the total odd days prepaid fee is computed by first generating a rounded (to
the nearest penny) daily cost and then multiplying this value by the computed
number of odd days, then set the value of this property to true
.
A value of false
means that the daily cost is left unrounded, and the total
prepaid fee is rounded after the computation is complete.
🔹 UseNegODI
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If there are negative odd days in the loan, then the value of this attribute
determines if a negative odd days interest fee is computed. If the value of this
attribute is false
, then negative odd days fees are not allowed, the SCEX will
return a value of zero in this situation, and the computed payment will be
adjusted to take into account the negative odd days. A value of true
will
return a negative odd days interest fee (in effect, it then becomes an odd days
interest credit) when there are negative odd days in a loan.
🟥 <PmtDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= <LoanDate> and >= <IntStartDate> |
This element contains the date on which the first payment of the loan is made, and must be on or after the loan date.
All dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a first payment date of April 4, 2024 would be specified as:
<PmtDate>2005-04-04</PmtDate>
Attributes: None
🟥 <Proceeds>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | >= 0 |
The proceeds specifies the amount the customer has frequested to borrow, ignoring every other financed quantity. Proceeds of up to one billion dollars are accepted.
The amount should be expressed as a number. For example, a request including
<Proceeds>10000.00</Proceeds>
indicates an amount requested of 10,000.
Attributes: None
🟦 <Protection>
Element Type | Data Type | Values | Default |
---|---|---|---|
Parent | - | - | No protection included |
The <Protection>
element is used to specify debt protection coverages such as
life, disability, involuntary unemployment, personal property and debt
cancellation. Each type of coverage is specified by its own sub-element, along
with the borrower birthdays. The following attributes apply to this element:
Attributes:
🔹FinanceProt
,🔹LineOfCredit
,🔹Mandatory
,🔹ShowBorrowerInfo
,🔹ShowCaps
🔹 FinanceProt
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
If the computed premiums for single premium debt protection products should be
financed along with the proceeds, then this attribute should be set to true
(which is the default value if not specified). A value of false
indicates that
the computed premiums will not be financed with the proceeds, and hence will be
paid out of pocket by the borrower. Note that this applies to single premium
insurance products only!
🔹 LineOfCredit
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this is an account using TruStage’s MOB insurance, and if this loan is a line
of credit where product term caps should be ignored, then set this attribute to
true
. Otherwise, leave this attribute unspecified or set it to false
.
🔹 Mandatory
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the value of this attribute is set to true
, then any computed payment
protection premium or fee will be considered a mandatory fee which will be
included as a part of the Regulation Z Finance Charge, and hence affect the
Regulation Z APR. In this case, the <Protection>
element in the response will contain a
Mandatory
="true"
attribute indicating this.
If the Mandatory attribute is set to false
, the loan will treat any premiums /
fees as normal.
🔹 ShowBorrowerInfo
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application would like to have data returned for each specified
borrower instead of a single <CovTerm>
element, then
set the value of this attribute to true
. Otherwise, leave this attribute
unspecified or set it to false
. See the <Borrower>
and <CovTerm>
elements defined in the response for
more information.
🔹 ShowCaps
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application would like to have cap information (e.g., maximum
terms, coverage amounts, ages, etc.) returned for each product offered, set the
value of this attribute to true
. Otherwise, leave this attribute unspecified
or set it to false
. See the <Caps>
element for more
information.
🟦 <Protection>
→<Birthday1>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= 1900-01-01 | No birthday specified |
This element contains the date of birth for the primary borrower. All dates must
be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a birthday of
April 9, 1972 would be specified as <Birthday1>1972-04-09</Birthday1>
. Note
that this element must be set if the Covers attribute of any of the four debt
coverage elements is set to borrower1
or both
.
Attributes: None
🟦 <Protection>
→<Birthday2>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= 1900-01-01 | No birthday specified |
This element contains the date of birth of the secondary borrower. All dates
must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a birthday
of May 21, 1969 would be specified as <Birthday2>1969-05-21</Birthday2>
.
Attributes: None
🟦 <Protection>
→<Disability>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No disability coverage |
The <Disability>
element determines what type of disability coverage is
requested for the loan. It also serves double duty as the debt cancellation
coverage element, for accounts set up to compute debt cancellation using the
disability tables. The element itself is empty, with all information needed for
disability coverage request being specified in the following attributes:
🔹 Benefit
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in the appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <Disability>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will assure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user specified coverage terms, then this attribute will be ignored.
🔹 Table
Data Type | Values | Default |
---|---|---|
Integer | [0...19] | 0 |
If the specified account has been set up with multiple disability or debt
cancellation plans, then this attribute determines which plan number will be
used. If no table number is specified, the first table (table zero) will be
used. To find out the number of available plans, use the
<AhSetCount>
element in the
<inINPUT_TOOL>
response.
🟦 <Protection>
→<Life>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No life coverage |
The <Life>
element determines what type of life coverage is requested for the
loan. The element itself is empty, with all information needed for a life
coverage request being specified in the following attributes:
Attributes:
🔹Coverage
,🔹Covers
,🔹CovTerm
,🔹Dismemberment
,🔹Method
,🔹UseLevelRates
🔹 Coverage
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
If you wish to specify a coverage amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum coverage amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified coverage amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in the appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <life>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will assure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user specified coverage terms, then this attribute will be ignored.
🔹 Dismemberment
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the specified account has been set up to offer optional dismemberment coverage to be offered with life coverage (using an increased rate in the premium calculation), then this attribute determines whether or not this additional coverage will be provided.
🔹 Method
Data Type | Values | Default |
---|---|---|
Enum | default , net , gross | default |
If the specified account has been set up to offer single premium life coverage
by default, net or gross coverage, then this attribute can be used to specify
which type of coverage to compute with the loan. For all other accounts, the
default value of default
should be used (or simply do not specify the attribute
at all).
🔹 UseLevelRates
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the account specified has been set up to offer single premium credit life
using level rates instead of the normal decreasing rates, then set this
attribute’s value to true
. Otherwise, use the default value of false
.
🟦 <Protection>
→<Property>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No property coverage |
The <Property>
element determines what type of personal property coverage is
requested for the loan. The element itself is empty, with all information needed
for coverage request being specified in the following attributes:
🔹 Coverage
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a coverage amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum coverage amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user-specified coverage amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The value borrower1
represents single coverage on the primary borrower (whose
birthday is contained in element <Birthday1>
). A request for
joint coverage on both borrowers is indicated by a value of both
. Finally, if
no coverage is desired, specify a value of none
or omit the <Property>
element entirely.
🟦 <Protection>
→<Unemployment>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No unemployment coverage |
The <Unemployment>
element determines what type of involuntary unemployment
coverage is requested for the loan. The element itself is empty, with all
information needed for a coverage request being specified in the following
attributes:
🔹 Benefit
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in the appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <Unemployment>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will ensure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user-specified coverage terms, then this attribute will be ignored.
🟦 <ServiceCharge>[]
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No service charge |
As with the <Fee>
element, any number of <ServiceCharge>
elements
may be added to a loan. Service charges are supported on single, equal, and
balloon payment loans only.
The <ServiceCharge>
element itself contains no data. Instead, all of the
information used to compute the service charge is contained in the following
attributes of the element:
🔸 Entry
(decimal, 0)
How this attribute is interpreted depends upon the Type
attribute, described below. It is the numeric amount defining either the lump
sum or periodically paid service charge.
🔹 Exact
(boolean, false)
The Exact
attribute is only considered when the service charge is of
Type
LumpSum
. When the calculated periodic amount is
rounded, it will most often times produce a total service charge amount that
differs from that entered.
If the Exact
attribute is set to true
, then the final periodic amount will be
adjusted so that the sum of all periodic amounts is exactly equal to the entered
amount (and will result in an odd final payment). A value of false
indicates
that the final periodic amount will not be adjusted.
🔹 Name
(text, "")
This attribute is for convenience purposes only, and does not affect the
calculation of the service charge in any manner. If a Name
attribute is
specified for the <ServiceCharge>
element, then the corresponding
<ServiceCharge>
element in the response will have a
Name
attribute with the same value. This allows
you to easily differentiate fees in the response.
🔹 Round
(enum, [nearest, up, down], nearest)
This attribute is only considered when the service charge is of
Type
LumpSum
. It determines how the calculated periodic
amount is rounded.
🔹 Type
(enum, [LumpSum, Periodic], LumpSum)
A service charge of Type
of LumpSum
allows the calling application to specify an
amount that will be spread out evenly over the loan’s payment stream. On the
other hand, a Periodic
service charge is the amount which will be added to each
payment.
🟥 <Term>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | [2...600] * |
The value of this element indicates the number of payments in the loan.
The term must be entered as a number of payments, not a duration of time.
Therefore, <Term>72</Term>
represents 72 payments, not 72 months (or years).
This term is intimately tied to the PPY
(# of payments per year)
attribute of the root element. If the value of the PPY
attribute
was 24
(semimonthly) for this loan, the 72 payments would mean that the
duration of the loan is three years, since years = number of payments / payments
per year = 72 / 24 = 3.
* In general, the term can be no greater than 50 years, so the maximum entry would be 50 *
PPY
. Weekly loans, however, are limited to 30 years, or 1,560 payments.
Attributes: None
🟦 <TILARESPA2015>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No TILA RESPA disclosures |
The presence or absence of this element determines whether or not the TILA RESPA data table is present in the output.
If this element is present in the loan request, then the SCEX will return data for the Integrated Mortgage Disclosures under the Real Estate Settlement Procedures Act (Regulation X) and the Truth In Lending Act (Regulation Z) rule, which is required as of August 1st, 2015. If this element is not present, then the TILA RESPA outputs will not be generated.
Attributes: None
🟦 <TotalDown>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
This optional element represents the total down payment that the borrower has applied to reduce the requested proceeds. It may consist of a cash down payment, net trade-in value, or rebate. You only need to specify a total down payment if the loan needs to disclose a total sale price. Typical examples of these loan types are auto and boat loans.
To generate a total down payment, please see the chapter detailing the SCEX’s Auto Prompts module.
Attributes: None
Equal Payment, Compute Payment - Response
Please see the Legend to understand the conventions used to document each element and attribute. Note that for responses, the XML elements are documented in the order that they appear in the response.
🟥 <outEQUAL_PMT>
Element Type | Data Type |
---|---|
Parent | - |
This element is the root element of the response, and contains all of the relevant outputs.
Attributes:
🔹CountryName
🔹 CountryName
Data Type | Values | Default |
---|---|---|
Text | See table | United States of America |
If a valid Country
code was specified as an
attribute of the input module element, the full name of the country associated
with the specified Country code will be reported in this attribute.
🟥 <Results>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which describe the success or failure of the calculation, any warning or error messages, and the most important numerical results for the query.
<Results>
<Description>Successful Calculation</Description>
<Payment>881.92</Payment>
</Results>
Attributes: None
🟥 <Results>
→<Description>
Element Type | Data Type |
---|---|
Data | Text |
If the calculation was completed successfully, then this element will contain
the value Successful Calculation
. Otherwise, this element will contain a
description of the problem encountered during the attempted computation.
Attributes: None
🟦 <Results>
→<XMLDetail>[]
Element Type | Data Type | Default |
---|---|---|
Data | Text | NULL |
The <XMLDetail>
elements are messages passed back to the calling application
which detail the status of the XML request. If the SCEX issues any warnings
regarding unrecognized elements or attributes, then each warning message will be
displayed in an <XMLDetail>
element.
Attributes: None
🟥 <Results>
→<Payment>
Element Type | Data Type |
---|---|
Data | Currency |
The computed payment for the requested equal payment loan.
Attributes: None
🟦 <Results>
→<Final>
Element Type | Data Type |
---|---|
Data | Currency |
If the specified account has been set up to disclose an odd final payment (usually done to perfectly amortize the loan at its conclusion), then this element will be present and contain the odd final payment amount.
Attributes: None
🟥 <FedBox>
Element Type | Data Type |
---|---|
Parent | - |
Some of the most important compliance related outputs are organized into the
<FedBox>
disclosures.
<FedBox>
<AmtFin>10025.00</AmtFin>
<FinChg>558.04</FinChg>
<TotPmts>10583.04</TotPmts>
<TotalSalePrice>13083.04</TotalSalePrice>
<RegZAPR Type="Actuarial">10.121</RegZAPR>
</FedBox>
Attributes: None
🟥 <FedBox>
→<AmtFin>
Element Type | Data Type |
---|---|
Data | Currency |
The Regulation Z Amount Financed, which is defined as the amount of credit provided to you or on your behalf.
Attributes: None
🟥 <FedBox>
→<FinChg>
Element Type | Data Type |
---|---|
Data | Currency |
This element contains the Regulation Z Finance Charge, described as the dollar amount the credit extension will cost you.
Attributes: None
🟥 <FedBox>
→<TotPmts>
Element Type | Data Type |
---|---|
Data | Currency |
The amount which the borrower will have paid when the borrower has made all scheduled payments.
Attributes: None
🟦 <FedBox>
→<TotalSalePrice>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | <TotPmts> |
The sum of the total of payments plus the total down payment. Please note that
if no <TotalDown>
element was specified in the
request, then this element will not be present.
Attributes: None
🟥 <FedBox>
→<RegZAPR>
Element Type | Data Type |
---|---|
Data | Decimal |
The Regulation Z APR, which is the cost of the extension of credit expressed as a yearly rate. The Reg. Z APR element has a few attributes, described below:
Attributes:
🔹Max
,🔹MaxExceeded
,🔸Type
🔹 Max
Data Type | Default |
---|---|
Decimal | n/a |
This attribute specifies the maximum APR as configured in the account's setup files. If no maximum APR has been specified, then this attribute will not be present. The value of this attribute should be displayed as a percentage. As an example, for Max="36.000", you would disclose a maximum APR of 36.000%.
🔹 MaxExceeded
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
If a maximum APR is configured in the account's setup files, then the value of
this attribute indicates whether or not the current loan exceeds the maximum
allowed APR. As an example, if the maximum APR has been set to 36% and the APR
for the returned loan was 37.125%, the <RegZAPR>
element would be:
<RegZAPR Type="Actuarial" Max="36.000" MaxExceeded="true">37.125</RegZAPR>
🔸 Type
Values | |
---|---|
Enum | Actuarial , USRule , EU_APR , Canadian_APR , XIRR , XIRR360 , IRR , YieldIRR , Open_End |
This attribute specifies the method used to compute the reported APR: Actuarial or US Rule The method used is dictated by the setup files for the given account, but may be overridden in the XML input query.
Actuarial
- Governed by Appendix J to Regulation Z. Default US APR.USRule
- Used by large banks to mirror loan amortization.EU_APR
- Default European Union APR.Canadian_APR
- Default APR for Canada.XIRR
- Extended Internal Rate of Return (same as excel function).XIRR360
-XIRR
using a 360 divisor rather than a 365 divisor.YieldIRR
- Canadian mortgages may compute periodic interest using a fractional power of a periodic yield.Open_End
- Simply returns the interest rate.
🟦 <FedBox>
—><MAPR>
Element Type | Data Type |
---|---|
Data | Decimal |
If the military APR has been requested, then this element will be included in the output. The value of the element is the military APR, and the element has a few attributes, described below:
Attributes:
🔸Advance
,🔹Max
,🔹MaxExceeded
🔸 Advance
Data Type |
---|
Currency |
This attribute is the equivalent of the Amount Financed for the Military APR. Specifically, it is the principal balance less any MAPR fees, debt protection, etc.
🔹 Max
Data Type | Default |
---|---|
Decimal | 36.0 |
This attribute specifies the maximum Military APR as specified in the input XML
(see MAPR_Max
). If not specified, a default value
of 36% is assumed. The value of this attribute should be displayed as a
percentage. As an example, for Max="36.0"
, you would disclose a maximum
Military APR of 36.0%.
🔹 MaxExceeded
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
The value of this attribute 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>
element would be:
<MAPR Advance="1350.00" Max="36.000" MaxExceeded="true">37.125</MAPR>
🟦 <TILARESPA2015>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which are of interest to fulfilling the
2015 TILA RESPA rule. It will only be present if the
<TILARESPA2015>
element is present in the
request.
Sample TILARESPA2015 output:
<TILARESPA2015>
<TotalLoanCosts>0</TotalLoanCosts>
<CD_TotPmts>27311.07</CD_TotPmts>
<In5Years PaidTotal="27311" PaidPrincipal="25000"/>
<TIP>9.244</TIP>
<MaxPnIPmt Date="2012-11-01">1636.65</MaxPnIPmt>
<MinRate Idx="1">5.651</MinRate>
<MaxRate Idx="1">5.651</MaxRate>
<ProjectedPayments NumCols="3">
<PPCol Num="1" Title="Year 1">
<Years Start="1" End="1"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
<PPCol Num="2" Title="Year 2">
<Years Start="2" End="2"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
<PPCol Num="3" Title="Year 3">
<Years Start="3" End="3"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
</ProjectedPayments>
</TILARESPA2015>
Attributes: None
🟦 <TILARESPA2015>
→<LoanCost>[]
Element Type | Data Type |
---|---|
Data | Currency |
For every <Fee>
element present in the input which has
its IsLoanCost
attribute 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>
input element), there will be a
corresponding <LoanCost>
element. The value of this element will be the
numerical value of the fee, rounded to the nearest dollar.
🔹 In5Years
Data Type | Default |
---|---|
Currency | <LoanCost> |
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 attribute will be present and disclose the portion of this loan cost that is accrued during the first five years.
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
This attribute will hold the same value as the attribute of the same name for
the <Fee>
element. It is recommended that each fee
have a unique Name
for identification purposes.
🟥 <TILARESPA2015>
→<TotalLoanCosts>
Element Type | Data Type |
---|---|
Data | Currency |
This element holds the sum of all borrower paid loan costs. Since all
<LoanCost>
element values are rounded dollar amounts, the value of this
element will also be a rounded dollar amount.
Attributes: None
🟥 <TILARESPA2015>
→<CD_TotPmts>
Element Type | Data Type |
---|---|
Data | Currency |
This element holds 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 will be the numerical value of the sum.
Attributes: None
🟥 <TILARESPA2015>
→<In5Years>
Element Type | Data Type |
---|---|
Empty | - |
This element is empty, with all important values required for the new "In 5 Years" section returned in the following two attributes of this element.
Attributes:
🔸PaidPrincipal
,🔸PaidTotal
🔸 PaidPrincipal
Data Type |
---|
Currency |
This attribute 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.
🔸 PaidTotal
Data Type |
---|
Currency |
This attribute 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.
🟥 <TILARESPA2015>
→<TIP>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the total interest percentage, rounded to three or fewer decimal places, as required.
Attributes: None
🟥 <TILARESPA2015>
→<MaxPnIPmt>
Element Type | Data Type |
---|---|
Data | Currency |
The value of this element holds the maximum scheduled principal and interest payment during the term of the loan.
Attributes: 🔸
Date
🔸 Date
Data Type |
---|
Date |
This attribute contains 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. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🟥 <TILARESPA2015>
→<MinRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the minimum possible interest rate applied during the term of the loan.
Attributes: 🔸
Idx
🔸 Idx
Data Type |
---|
Integer |
This attribute contains the payment number for which the minimum rate is first applicable.
🟥 <TILARESPA2015>
→<MaxRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the maximum possible interest rate applied during the term of the loan.
Attributes: 🔸
Idx
🔸 Idx
Data Type |
---|
Integer |
This attribute contains the payment number for which the maximum rate is first applicable.
🟥 <TILARESPA2015>
→<ProjectedPayments>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which are of interest to filling the
Projected Payments table. It will only be present if the <TILARESPA2015>
element is present in the XML request for a supported loan type.
Attributes: 🔸
NumCols
🔸 NumCols
Data Type | Values |
---|---|
Integer | [1...4] |
This attribute will hold the number of columns which must be present in the Projected Payments table. It will be a numeric value from 1 to 4.
🟥 <ProjectedPayments>
→<PPCol>[]
Element Type | Data Type |
---|---|
Parent | - |
For every column required in the Projected Payments table, there will be an
associated <PPCol>
element. This element is a parent to child elements which
contain data associated with a single column of the table.
🔸 Num
Data Type | Values |
---|---|
Integer | [1...4] |
This attribute will hold the number of the column to which the following data applies.
🔸 Title
Data Type |
---|
Text |
The value of this attribute 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.
🟥 <ProjectedPayments>
→<PPCol>
→<Years>
Element Type | Data Type |
---|---|
Empty | - |
The attributes of this element hold the beginning and ending year numbers for which this column data applies. The element itself is empty.
🔸 End
Data Type |
---|
Integer |
The ending year associated with this column's data.
🔸 Start
Data Type |
---|
Integer |
The beginning year associated with this column's data.
🟥 <ProjectedPayments>
→<PPCol>
→<PnIPmt>
Element Type | Data Type |
---|---|
Empty | - |
This empty element has several attributes which describe the principal and interest payments associated with this column.
🔸 Balloon
Data Type | Values |
---|---|
Boolean | true , false |
If any of the payments associated with this column are balloon payments (e.g.
isolated payments that are more than twice the value of a regular periodic
payment), then the value of this attribute will be true
.
🔸 IntOnly
Data Type | Values |
---|---|
Enum | all , some , none |
none
- No payments associated with the column are Interest Onlysome
- Some, but not all, of the payments associated with the column are Interest Only.all
- All of the payments associated with the column are Interest Only.
Note that for the purposes of this attribute, 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.
🔸 Max
Data Type |
---|
Currency |
This attribute holds the maximum principal and interest payment for this column.
If this value is not the same as the value of the Min
attribute, then a range of rounded payments must be displayed. If the values are
the same, then only a single value needs to be disclosed.
🔸 Min
Data Type |
---|
Currency |
This attribute holds the minimum principal and interest payment for this column.
🟥 <ProjectedPayments>
→<PPCol>
→<MIPmt>
Element Type | Data Type |
---|---|
Data | Currency |
The value of this element 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.
Attributes: None
🟥 <ProjectedPayments>
→<PPCol>
→<TotalPmt>
Element Type | Data Type |
---|---|
Empty | - |
This empty element has two attributes which describe the estimated total payment or range of payments associated with this column. Note that this value does not include any estimated escrow, as the SCEX does not support escrow calculations. The calling application will need to increase these values by the estimated escrow amounts if any are present.
🔸 Max
Data Type |
---|
Currency |
This attribute holds the maximum estimated total payment for this column. If
this value is not the same as the value of the Min
attribute,
then a range of rounded payments must be displayed. If the values are the same,
then only a single value needs to be disclosed.
🔸 Min
Data Type |
---|
Currency |
This attribute holds the minimum estimated total payment for this column.
🟥 <Moneys>
Element Type | Data Type |
---|---|
Parent | - |
This element groups together those other major cash amounts not disclosed under
the <FedBox>
element, such as the principal balance, interest
change, fee amounts and protection premiums.
<Moneys>
<Principal>10120.00</Principal>
<Interest>1635.80</Interest>
<OddDaysPrepaid OddDayCount="15" DailyCost="2.77">41.55</OddDaysPrepaid>
<FinFees>120.00</FinFees>
<FinChgFees>91.55</FinChgFees>
<PocketFees>65.00</PocketFees>
<MAPRFees>201.55</MAPRFees>
<Protection Category="None" PerPmt="0.00" PerDay="0.00">0.00</Protection>
<Fee Name="FinFee">60.00</Fee>
<Fee Name="Prepaid Fee">50.00</Fee>
</Moneys>
Attributes: None
🟥 <Moneys>
→<Principal>
Element Type | Data Type |
---|---|
Data | Currency |
The principal balance is the amount on which interest is accrued. The principal balance consists of the amount requested by the borrower, any fees which are financed, as well as financed protection premiums.
Attributes: None
🟥 <Moneys>
→<Interest>
Element Type | Data Type |
---|---|
Data | Currency |
This element contains the total interest accrued during the term of the loan, assuming the borrower will make all scheduled payments.
Attributes: None
🟦 <Moneys>
→<ConstructInterest>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If the requested loan is a construction loan with a permanent loan attached and the account specified is set up to compute construction loans via the "Simple" method, then this element 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 <Interest>
element, and
both loans reflected in a single, combined amortization schedule.
If the requested loan was not a construction loan, or if construction loans have not been set up for the given account, then this element will not appear in the results.
Attributes: None
🟦 <Moneys>
→<OddDaysPrepaid>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element, if present, holds the total odd days prepaid finance charge. If no odd days prepaid fee was requested, then this element will not be present in the output.
Attributes:
🔹AddToPmt
,🔹DailyCost
,🔸OddDayCount
,🔹OddMonths
🔹 AddToPmt
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
If the odd days interest has been added to the first payment, this attribute
will be present in the output with a value of true
. If the odd days interest has
been treated as a prepaid finance charge, then this attribute will not be
present and a default value of false
should be assumed.
🔹 DailyCost
Data Type | Default |
---|---|
Currency | n/a |
If the odd days prepaid fee is computed using a rounded daily cost, then the value of this attribute will hold that value. If the odd days prepaid is not computed using a rounded daily cost, then this attribute will not be present.
🔸 OddDayCount
Data Type |
---|
Integer |
This attribute holds the number of odd days computed by the SCE for the requested loan.
🔹 OddMonths
Data Type | Default |
---|---|
Integer | n/a |
This attribute holds the number of odd months computed by the SCE for the
requested loan when using odd days accrual method 250
.
🟦 <Moneys>
→<MinInterestPmt>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | n/a |
The <MinInterestPmt>
element will only appear if the
Metavante
attribute has been set to true
,
and even then only under certain loan conditions. The element itself contains no
data, as all required data is found in the following two attributes:
🔸 Index
Data Type |
---|
Integer |
The Index
attribute specifies the payment number in the payment stream at which
the minimum interest payment is achieved.
🔸 Pmt
Data Type |
---|
Currency |
The interest payment amount for the given Index
.
🟦 <Moneys>
→<MaxInterestPmt>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | n/a |
The <MaxInterestPmt>
element will only appear if the
Metavante
attribute has been set to true
,
and even then only under certain loan conditions. The element itself contains no
data, as all required data is found in the following two attributes:
🔸 Index
Data Type |
---|
Integer |
The Index
attribute specifies the payment number in the payment stream at which
the maximum interest payment is achieved.
🔸 Pmt
Data Type |
---|
Currency |
The interest payment amount for the given Index
.
🟦 <Moneys>
→<FinFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element contains the sum of all financed fees requested for the loan. If no financed fees were requested, then this element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<FinChgFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element contains the sum of all APR affecting fees (those fees which are
added to the <FinChg>
) requested for the loan. If no APR affecting
fees were requested, then this element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<PocketFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element 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 element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<MAPRFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element 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.
Attributes: None
🟦 <Moneys>
→<Protection>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
Contains the total cost of all protection plans included with the computed loan.
For the individual plan costs, see the <ProtectionInfo>
elements described
below. The attributes of this element are as follows:
Attributes:
🔸Category
,🔹IsDp
,🔹Mandatory
,🔸PerDay
,🔸PerPmt
🔸 Category
Data Type | Values |
---|---|
Enum | See below |
This attribute specifies the category under which the computed loan protection falls. The possible values for this attribute are:
None
- No protection catetory has been identified.SP
- Single Premium protection financed at loan closing.MOB
- Monthly outstanding balance (paid on Payments).TrueMOB
- Premiums paid monthly on a date specified in the setup files.PaidSP
- Single premium protection paid at closing.ConstantMOB
- CMOB is a product paid with payments and a constant amount.AddToPmtMOB
- MOB insurance added to a constant P&I payment, resulting in variable payments.
🔹 IsDp
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
This attribute indicates if the specified account’s protection is set up as debt
protection. If this attribute 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).
🔹 Mandatory
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
This attribute should only appear in the response if the value of the attribute
is true
. If this attribute does not appear in the output, then the value of
this attribute should default to false
. If the value of the Mandatory
attribute is true
, then the total premium/fee amount for all insurance/debt
protection products has been treated as a part of the Regulation Z Finance
Charge, and hence will affect the Reg. Z APR.
🔸 PerDay
Data Type |
---|
Currency |
Contains the cost of all loan protection products expressed as dollars per day.
🔸 PerPmt
Data Type |
---|
Currency |
Contains the cost of all loan protection products expressed as dollars per payment.
🟦 <Moneys>
→<MinIntChgAdj>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a minimum interest charge is configured in the account’s setup files and the final payment was adjusted to meet this minimum interest charge, then this element will be returned in the response and will contain the value of the minimum finance charge adjustment.
Attributes: None
🟦 <Moneys>
→<MinFinChgAdj>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a minimum finance charge is configured in the account’s setup files and the final payment was adjusted to meet this minimum finance charge, then this element will be returned in the response and will contain the value of the minimum finance charge adjustment.
Attributes: None
🟦 <Moneys>
→<Fee>[]
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
For each non-zero fee requested in the loan calculation, there will be a <Fee>
element containing the computed fee amount.
Attributes:
🔹Name
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
Contains the value of the Name attribute of the corresponding
<Fee>
element from the request. If no such attribute is
present in the <Fee>
element, then none will be present
in the response element.
🟦 <Moneys>
→<ServiceCharge>[]
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
For each non-zero service charge requested in the loan calculation, there will
be a <ServiceCharge>
element containing the total service charge amount.
Attributes:
🔹Name
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
Contains the value of the Name attribute of the corresponding
<ServiceCharge>
element from the request. If no such
attribute is present in the request element, then none will be present in the
response element.
🟦 <Moneys>
→<PMI_Fee>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If PMI has been requested on the loan, and if a number of up front payments have been specified, then this element will hold the total PMI fee for all upfront payments.
Attributes: None
🟥 <Accrual>
Element Type | Data Type |
---|---|
Parent | - |
This element groups together interest accrual information, such as the accrual method used, days to the first payment, and the loan’s maturity date.
<Accrual>
<Method>Actual/365 US Rule</Method>
<Days1Pmt DayCount="Actual">74</Days1Pmt>
<Maturity>2015-07-01</Maturity>
</Accrual>
Attributes: None
🟥 <Accrual>
→<Method>
Element Type | Data Type |
---|---|
Data | Text |
The <Method>
element contains a textual description of the interest accrual
method used to compute the loan (e.g. "Unit Period 365 Simple").
Attributes: None
🟥 <Accrual>
→<Days1Pmt>
Element Type | Data Type |
---|---|
Data | Integer |
This element contains the number of days to the first payment, computed by one of two methods as specified in this element’s sole attribute.
Attributes:
🔸DayCount
🔸 DayCount
Data Type | Values |
---|---|
Enum | Actual , True360 |
Actual
- The actual number of days between these two dates are used.31
would be the day count for the 2024-01-01 to 2024-02-01.True360
- All months have 30 days.30
would be the day count for 2024-01-01 to 2024-02-01.
🟥 <Accrual>
→<Maturity>
(YYYY-MM-DD)
Element Type | Data Type |
---|---|
Data | Date |
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. Hence, a maturity date of February 15, 2020 would be specified as
<Maturity>2020-02-15</Maturity>
.
Attributes: None
🟦 <PMI>
Element Type | Data Type |
---|---|
Empty | - |
The PMI element 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
<Payment>
element, the <PmtStream>
element(s), the
<TotPmts>
element, nor the Pmt
attribute of the
<AmLine>
element.
<PMI Rate="1.00" LTV="100.00" PremiumPerYear="964.08" PremiumPerPeriod="80.34"/>
The element itself contains no data, as all associated PMI data is found in the following attributes:
Attributes:
🔹IndexToRemove
,🔹IndexToWarn
,🔸LTV
,🔸PremiumPerPeriod
,🔸PremiumPerYear
,🔸Rate
🔹 IndexToRemove
Data Type | Default |
---|---|
Integer | 0 |
This attribute only appears if the PercentToRemove PMI input attribute 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.
In the sample above, after four payments are made, the ending principal balance to home value ratio drops below 70%, and hence the calculation engine returns IndexToRemove="4". Note that no PMI is included in the amortization schedule for payment numbers four or greater.
🔹 IndexToWarn
Data Type | Default |
---|---|
Integer | 0 |
This attribute only appears if the PercentToWarn PMI input attribute is specified, and indicates that the payment index on which the remaining principal balance to home value ratio drops below the specified percentage. In the sample above, after three payments are made, the ending principal balance to home value ratio drops below 80%, and hence the calculation engine returns IndexToWarn="3".
🔸 LTV
Data Type |
---|
Decimal |
The loan to value ratio of the computed loan, expressed as a percentage.
🔸 PremiumPerPeriod
Data Type |
---|
Currency |
The periodic PMI premium amount.
🔸 PremiumPerYear
Data Type |
---|
Currency |
The annual PMI premium amount
🔸 Rate
Data Type |
---|
Decimal |
The percentage rate used in the PMI calculation.
🟥 <PmtStream>[]
Element Type | Data Type |
---|---|
Empty | - |
The <PmtStream>
element(s) describe the scheduled stream of payments for the
computed loan in the order paid. Instead of disclosing each and every payment
individually (which can be done with the <AmTable>
element), the
payment streams group together consecutive equal payments to produce a
compressed output view.
The following code translates to "Twelve consecutive payments of $879.31 computed at 10.000% begin on January 22nd, 2024".
<PmtStream Term="12" Pmt="879.31" Rate="10.000" Begin="2024-01-22"/>
Each element describes a single stream of equal payments, using the following attributes to define the important properties of each resulting payment stream:
🔸 Begin
Data Type |
---|
Date |
This attribute contains 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. In the example above, the first payment stream
is scheduled to begin on September 18, 2005. Hence, the Begin attribute for the
first payment stream element would be specified as Begin="2005-09-18"
.
🔸 Pmt
Data Type |
---|
Currency |
The Pmt
attribute contains the computed payment amount for this payment stream.
For the sample payment stream above, the payment amount is 879.31.
🔸 Rate
Data Type |
---|
Decimal |
Contains the interest rate used for the duration of this payment stream. Usually, the interest rate will remain fixed for the duration of the loan unless you are computing an adjustable rate loan or you are computing a LaserPro construction loan with permanent loan attached.
🔸 Term
Data Type |
---|
Integer |
The Term
attribute holds the number of contiguous payments that make up the
given payment stream. In the example payment stream above, the term for the
stream is 12.
🟦 <ProtectionInfo>[]
Element Type | Data Type |
---|---|
Parent | - |
These elements (there may be more than one if more than one type of protection was requested) contain information related to the various protection products requested on the given loan. Each element group provides complete results for each requested product (decreasing life, level life, disability/debt cancellation, involuntary unemployment, or personal property).
🔸 Formula
Data Type | Values |
---|---|
Enum | see Protection Formulas |
The Formula
attribute contains an abbreviated description of the formula used
to compute the desired protection product. The formula codes are described
here.
🔸 Product
Data Type | Values |
---|---|
Enum | Life , Level , Disability , Unemployment , Property |
This attribute informs the calling application to which type of protection product this element refers: decreasing life, level life, disability/debt cancellation, involuntary unemployment or personal property.
🔹 RateType
Data Type | Values |
---|---|
Enum | Fixed , Variable |
Fixed
- Protection rate stays constant during the calculations.Variable
- Protection rate changed from Joint to Single as the loan evolves.
🟥 <ProtectionInfo>
→<CalcResult>
Element Type | Data Type |
---|---|
Data | Text |
This element 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 child elements
of <ProtectionInfo>
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 child elements of
<ProtectionInfo>
, as the product was not computed.
<CalcResult>Valid Calculation</CalcResult>
Attributes: None
🟥 <ProtectionInfo>
→<Cost>
Element Type | Data Type |
---|---|
Empty | - |
Attributes of this empty element 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.
The only time there will be two <Cost>
elements to parse is when the account
has been set up to use Plateau’s Uniguard product, and the user has requested
joint coverage. If this is the case, then two <Cost>
elements are provided to
disclose two premiums instead of a single aggregate joint premium.
<Cost Premium="827.26" PerPmt="19.28" PerDay="0.63" Factor="1.0154"/>
🔸 Factor
Data Type |
---|
Decimal |
The rate factor used to compute the premium for the requested protection product.
🔸 PerDay
Data Type |
---|
Currency |
The daily cost of coverage, expressed in dollars.
🔸 PerPmt
Data Type |
---|
Currency |
The cost of coverage expressed as dollars per payment.
🔸 Premium
Data Type |
---|
Currency |
The total cost for this protection over the term of the loan.
🟥 <ProtectionInfo>
→<Coverage>
Element Type | Data Type |
---|---|
Empty | - |
The aggregate coverage amount and note are provided in the following attributes of this empty element:
<Coverage Amount="75000.00" Note="Partial Coverage of $75,000"/>
🔸 Amount
Data Type |
---|
Currency |
This attribute contains the aggregate coverage amount for this protection product.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🟥 <ProtectionInfo>
→<Benefit>
Element Type | Data Type |
---|---|
Empty | - |
This empty element will only show up for the disability and involuntary unemployment products.
<Benefit Amount="1000.00" Note="Partial Benefit of $1,000"/>
🔸 Amount
Data Type |
---|
Currency |
Attribute which contains the monthly benefit amount for this protection product.
🔸 Note
Data Type |
---|
Text |
This Note
will describe 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.
🔹 Periodic
Data Type | Default |
---|---|
Currency | n/a |
If the account has been configured to disclose periodic benefits (as opposed to
monthly benefit amounts, which are returned in the Amount
attribute described above), and if the specified payment frequency is other than
monthly, then this attribute will be present and will hold the periodic benefit
amount.
🟦 <ProtectionInfo>
→<CovTerm>
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the term of coverage for the requested product. If the request has specified the coverage term, then this element will be populated with that term.
<CovTerm InMonths="75" InPmts="75" Maturity="2018-09-22" Note="Truncated: Keep Benefit"/>
🔹 InDays
Data Type | Default |
---|---|
Integer | n/a |
Attribute which expresses the term of coverage in days. This attribute will only be present for the level life product, and even then only if needed (for example, when covering single payment notes).
🔸 InMonths
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of months.
🔸 InPmts
Data Type |
---|
Integer |
Contains the number of payments covered.
🔸 Maturity
(YYYY-MM-DD)
Data Type |
---|
Date |
This attribute contains the maturity date for the requested coverage. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🟦 <ProtectionInfo>
→<Borrower>[]
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the term of
coverage of a specified borrower, for the requested product. Note that this
element will only be present if the input XML request has specified
ShowBorrowerInfo
= "true"
, and a valid
birthdate was provided. The following attributes are defined for this purpose:
Attributes:
🔸AgeAtIssue
,🔸AgeAtMaturity
,🔸Birthday
,🔸Maturity
,🔸Months
,🔸Note
,🔸Pmts
🔸 AgeAtIssue
Data Type |
---|
Special - see below |
If coverage is written on this borrower, then the value of this attribute 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.
🔸 AgeAtMaturity
Data Type |
---|
Special - see below |
If coverage is written on this borrower, then the value of this attribute 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.
🔸 Birthday
Data Type |
---|
Date |
This attribute contains the birthday associated with the borrower, as specified in the request. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🔸 Maturity
Data Type |
---|
Date |
The value of this attribute contains the coverage maturity date for this particular borrower.
🔸 Months
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of months.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🔸 Pmts
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of payments.
🟦 <ProtectionInfo>
→<Caps>
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the maximum
terms, amounts, and ages associated with the requested product. This element
will only be present if the ShowCaps
attribute
of the <Protection>
element is set to true
.
<Caps Cov="75000" Ben="1000" Term="84" InceptAge="65" AttainAge="66"/>
Attributes:
🔸AttainAge
,🔸Ben
,🔸Cov
,🔸InceptAge
,🔸Term
🔸 AttainAge
Data Type |
---|
Integer |
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.
🔸 Ben
Data Type |
---|
Currency |
Contains the maximum monthly benefit amount, expressed in dollars. If no cap is present or applicable, then a value of zero is returned.
🔸 Cov
Data Type |
---|
Currency |
Contains the maximum aggregate coverage amount, expressed in dollars. If no cap is present or applicable, then a value of zero is returned.
🔸 InceptAge
Data Type |
---|
Integer |
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.
🔸 Term
Data Type |
---|
Integer |
Contains the maximum coverage term, expressed in months. If no cap is present or applicable, then a value of zero is returned.
🟦 <AmTable>
Element Type | Data Type |
---|---|
Parent | - |
This element (if present) contains child elements which describe the loan's
amortization information. This element (and all of its child elements) will only
be present if the HideAmort
property of the
root element of the input query is set to false
.
<AmTable>
Attributes will only occur as feedback data for Canadian APR's.
🔹 AvgBal
Data Type | Default |
---|---|
Currency | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute is the average balance of the loan used in the Canadian APR calculation.
🔹 Months
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🔹 OddDays
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🔹 Weeks
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🟦 <AmTable>
→<GrandTotals>[]
Element Type | Data Type |
---|---|
Empty | - |
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 the following attributes:
<GrandTotals PmtTot="10551.72" IntTot="551.68" PrinTot="10000.04"/>
Attributes:
🔹AHTot
,🔹CLTot
,🔸IntTot
,🔹IUTot
,🔹PMITot
,🔸PmtTot
,🔸PrinTot
,🔹SCTot
🔹 AHTot
Data Type | Default |
---|---|
Currency | 0 |
The AHTot
attribute 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 over the duration
of the loan.
🔹 CLTot
Data Type | Default |
---|---|
Currency | 0 |
The CLTot
attribute 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.
🔸 IntTot
Data Type |
---|
Currency |
Contains the sum of all interest attributes in the AmLine
elements.
This amount will be different from the <Interest>
element if
there is a nonzero EndBal
for the final line of
amortization. The two will differ by this non-zero EndBal
.
🔹 IUTot
Data Type | Default |
---|---|
Currency | 0 |
The IUTot
attribute 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 over the
duration of the loan.
🔹 PMITot
Data Type | Default |
---|---|
Currency | 0 |
The PMITot
attribute 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.
🔸 PmtTot
Data Type |
---|
Currency |
Contains the total of payments scheduled for the computed loan.
🔸 PrinTot
Data Type |
---|
Currency |
Like IntTot
above, this attribute contains the total
amount paid to principal during the loan term, assuming all payments are made as
scheduled.
🔹 SCTot
Data Type | Default |
---|---|
Currency | 0 |
The SCTot
attribute will only appear on loans with service charges. It
contains the total service charge amount paid over the duration of the loan.
🟦 <AmTable>
→<SubTotals>[]
Element Type | Data Type |
---|---|
Empty | - |
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 <SubTotals>
element present. The element itself is empty, as all the
interesting categories are found in the following attributes:
<SubTotals Year="2024" Start="1" Events="12" PmtSub="10551.72" IntSub="551.68" PrinSub="10000.04"/>
Attributes:
🔹AHSub
,🔹CLSub
,🔸Events
,🔸IntSub
,🔹IUSub
,🔹PMISub
,🔸PmtSub
,🔸PrinSub
,🔹SCSub
,🔸Start
,🔸Year
🔹 AHSub
Data Type | Default |
---|---|
Currency | 0 |
The AHSub
attribute 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
.
🔹 CLSub
Data Type | Default |
---|---|
Currency | 0 |
The CLSub
attribute 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
.
🔸 Events
Data Type |
---|
Integer |
This attribute defines the number of amortization events (contained in
<AmLine>
elements which are defined below) which belong to this
calendar Year
.
🔸 IntSub
Data Type |
---|
Currency |
Holds the total amount paid to interest over the Year
in
question, assuming all payments are made as scheduled.
🔹 IUSub
Data Type | Default |
---|---|
Currency | 0 |
The IUSub
attribute 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
.
🔹 PMISub
Data Type | Default |
---|---|
Currency | 0 |
The PMISub
attribute 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 upfront periodic PMI premiums) for PMI during
the Year
.
🔸 PmtSub
Data Type |
---|
Currency |
Contains the total of payments scheduled for the Year
in
question.
🔸 PrinSub
Data Type |
---|
Currency |
Like IntSub
above, this attribute contains the total
amount paid to principal during the Year
in question,
assuming all payments are made as scheduled.
🔹 SCSub
Data Type | Default |
---|---|
Currency | 0 |
The SCSub
attribute will only appear on loans with service charges. It
contains the total of service charges paid during the Year
.
🔸 Start
Data Type |
---|
Integer |
This attribute defines the first amortization event which falls in the specified
calendar Year
. To find the <AmLine>
element
which corresponds to this value, match the Idx attribute of the
<AmLine>
element with the integer value reported by this attribute.
🔸 Year
Data Type |
---|
Integer |
The given calendar year for which the subtotal data is applicable.
🟥 <AmTable>
→<AmLine>[]
Element Type | Data Type |
---|---|
Empty | - |
There is one <AmLine>
element 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.) However, some loan protection methods (TruStage's monthly
renewable product, to be exact) have amortization events which correspond to
loan protection premiums being added to the loan balance on specific dates.
<AmLine Idx="1" Date="2024-01-01" BegBal="10000.00" Pmt="879.31" Int="84.93" Prin="794.38" EndBal="9205.62"/>
As with the <GrandTotals>
and <SubTotals>
elements, this element is empty and contains all of the useful information for a
given point in the amortization of a loan in the following attributes.
Attributes:
🔹AH
,🔸BegBal
,🔹CL
,🔸Date
,🔸EndBal
,🔸Idx
,🔸Int
,🔹IU
,🔹PMI
,🔸Pmt
,🔸Prin
,🔹SC
,🔹UnpaidInt
🔹 AH
Data Type | Default |
---|---|
Currency | 0 |
The AH
attribute 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.
🔸 BegBal
Data Type |
---|
Currency |
The principal balance before the amortization event occurs.
🔹 CL
Data Type | Default |
---|---|
Currency | 0 |
The CL
attribute 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.
🔸 Date
Data Type |
---|
Currency |
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.
🔸 EndBal
Data Type |
---|
Currency |
The principal balance amount, after the amortization event has taken place.
🔸 Idx
Data Type |
---|
Integer |
The index of the amortization event, which is either the payment number, or zero. A value of zero designates a protection premium that was charged on a date other than a payment date. (Occurs with protection category "TrueMOB").
🔸 Int
Data Type |
---|
Currency |
The amount of the payment which goes to pay interest.
🔹 IU
Data Type | Default |
---|---|
Currency | 0 |
The IU
attribute 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.
🔹 PMI
Data Type | Default |
---|---|
Currency | 0 |
This attribute contains the PMI premium for this payment.
🔸 Pmt
Data Type |
---|
Currency |
The amount of the payment (or zero if the event is a "TrueMOB" protection premium).
🔸 Prin
The amount of the payment which goes to reduce the principal balance.
🔹 SC
Data Type | Default |
---|---|
Currency | 0 |
This attribute contains the total service charge for this payment, and will only be present if one or more service charges were requested with the loan.
🔹 UnpaidInt
Data Type | Default |
---|---|
Currency or Decimal | 0 |
This attribute 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 places. If rounded, then the unpaid interest is displayed to two (2) decimal places.
🟦 <Metavante>
Element Type | Data Type |
---|---|
Empty | - |
This element will only be present if the
Metavante
attribute of the root element is
set to true
. The element itself is empty, as all of the useful information is
in the following attributes:
Attributes:
🔸FormsTerm
,🔸HostTerm
🔸 FormsTerm
Data Type |
---|
Integer |
The number of months in the loan, as computed using the Metavante FORMS method.
🔸 HostTerm
Data Type |
---|
Integer |
The number of months in the loan, as computed using the Metavante HOST method.
Roll to Amount - Request
The roll to amount request is almost identical to the compute payment request, with the following differences:
- The root element is
<inEQUAL_PROCEEDS>
instead of<inEQUAL_PMT>
. - There is no
<Proceeds>
element present, since this is the value we are solving for. - The new
<Payment>
element allows the calling application to specify a desired payment amount.
Please see the Legend to understand the conventions used to document each element and attribute. Note that for requests, the XML elements are documented in alphabetical order by parent element.
🟥 <inEQUAL_PROCEEDS>
Element Type | Data Type |
---|---|
Parent | - |
This element is the root element for the request. It is a parent element that has no data, but does have several attributes that offer a wide variety of adjustments.
Attributes:
🔹Account
,🔹AccrualCode
,🔹AprType
,🔹Country
,🔹DataDirPath
,🔹ForceReload
,🔹HideAmort
,🔹Lastday
,🔹MAPR_Max
,🔹Metavante
,🔹OddFinal
,🔹PmtDollarRound
,🔹PmtRound
,🔹PPY
,🔹UseMAPR
,🔹YieldPPY
🔹 Account
Data Type | Values | Default |
---|---|---|
Integer | [1...9999] | 1 |
This attribute specifies which account should be used to compute the requested
loan. Each account is numbered from 1 to 9,999, and each account corresponds to
a set of setup files which define numerous settings which may affect the loan
calculation, such as the accrual method, insurance methods and rates, etc. If
this attribute is not specified, a default value of 1
will be used.
🔹 AccrualCode
Data Type | Values | Default |
---|---|---|
Enum | See table | default |
This property allows an accrual method to be used other than the accrual method dictated by the setup file for the given account. If no accrual code attribute is specified, the method defined in the setup file will be used. The Accrual Code Table lists all valid accrual codes available. Note that for the split rate accrual codes (i.e. those above 500), the split rate tiers must be defined in the setup file.
🔹 AprType
Data Type | Values | Default |
---|---|---|
Enum | See below | default |
This attribute allows the calling application to specify an APR calculation method which will override the default value found in the setup file for the given account. If this attribute is set to a valid value, then the specified method will be used to compute the APR for this loan calculation.
If the Country
attribute has been set by the calling
application and this attribute is not set, then the APR method used will be
determined by the specified country. For the United States of America, the
default APR method is actuarial
. For a country in the European Union, the
default value is eu
(European Union APR). For Canada, the default APR method
is ca
(Canadian APR).
default
- Use setup file value.actuarial
- Appendix J Actuarial APRusrule
- US Rule APReu
- European Union APRca
- Canadian APRxirr
- Extended Internal Rate of Return (same as excel function)xirr360
- XIRR using a 360 divisor rather than a 365 divisorirr
- Simple Internal Rate of Return (same as excel function)
If this attribute is not specified and the Country
attribute
is not specified, then the value of default
will be used which informs the SCE
to use the APR method defined in the setup file for the specified
Account
.
🔹 Country
Data Type | Values | Default |
---|---|---|
Alpha-2 or Numeric-3 code | See table | US |
This attribute allows the calling application to specify a two (2) character or
three (3) digit country code. If none is provided, then a default value of US
will be used. Please see the Country Codes Table for the
list of supported countries and their associated codes.
Currently, the country code is used to determine the default value of the
AprType
attribute (see above).
🔹 DataDirPath
Data Type | Values | Default |
---|---|---|
Text | See below | See below |
If this attribute is set, the SCE will look for a data folder containing the
setup files in the path specified. Thus, if the DataDirPath
is set to
C:\SCEX\
, the SCE will look for the setup files in C:\SCEX\data
.
If the calling application wishes to specify the data directory path in its
entirety (e.g. the calling app does not want the SCE to append \data
to the
provided path), then simply terminate the specified DataDirPath
with an
asterisk (*
). Thus, if the DataDirPath
is set to C:\SCEX\bank1\*
, the SCE
will look for the setup files in C:\SCEX\bank1\
.
If this attribute is not set, the SCE will attempt to locate the data folder in
the default data directory path location, which can be retrieved using the
<inVERSION>
module query, and set via the SCE API.
This attribute is useful if you wish to use only a single installation of the
SCE, but have many different setup file groupings. By specifying a different
DataDirPath
for each grouping, you can easily separate the groups from one
another instead of grouping them all together in a single directory.
🔹 ForceReload
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
The SCE caches setup files previously used. This improves performance for
subsequent loan requests using one of the cached accounts. However, if you need
the SCE to reload the setup files for a given request (e.g. you just copied
over new setup files), then you can set this attribute to true
and the setup
files will be forced to reload. If left at the default value of false
, then
setup files are only reloaded when the SCE notices that one of the setup files
has been modified.
🔹 HideAmort
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
This attribute determines whether or not an amortization schedule will be
included in the response, given a successful loan calculation. If you do not
require the use of the amortization schedule, then setting this attribute to
true
will suppress its output. The default value of false
will return the
amortization schedule as part of the response.
🔹 Lastday
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If present, this attribute overrides the Last Day setting in the setup files, which only applies to loans computed with an actual day interest accrual calendar where the first payment date falls at the end of a month with fewer than 31 days. As an example, if the first payment date is on April 30, should the following payment dates be made on the 30th of each month, or on the last day of the month?
If no value is specified for this attribute, then the setup file setting will be
used. If true
is specified, then conditions triggering a last day situation
will result in payments which fall at the end of the month. A value of false
indicates that when dictated, subsequent payment dates will not be moved to the
last day of the month.
🔹 MAPR_Max
Data Type | Values | Default |
---|---|---|
Decimal | [-99.999...600] | 36.0 |
If you are computing the Military APR (see UseMAPR
below) and
wish to override the default maximum APR value of 36
%, then specify the
desired maximum as the value of this attribute.
🔹 Metavante
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to a value of true
, then the
<Metavante>
element will be included in the
response. Also, some loans will also disclose
<MinInterestPmt>
and
<MaxInterestPmt>
elements.
🔹 OddFinal
Data Type | Values | Default |
---|---|---|
Enum | default , true , false , 1 , 0 | default |
This attribute allows the calling application to specify an odd final payment
calculation method which will override the default value found in the setup file
for the given account. If not specified, then the value of default
will be used.
Odd final payments are sometimes desired to produce perfect amortization (i.e. an ending balance of zero after the final payment is made).
🔹 PmtDollarRound
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Payments are normally rounded to the penny, according to the method specified by
the PmtRound attribute (see below). If the payment should be rounded to the
dollar instead of the penny, then set the value of this attribute to true
.
Note that for some loans (such as those with longer terms or relatively small proceeds), rounding the payment up or to the nearest dollar may require a shortened loan term to prevent one or more negative payments at the end of the loan.
🔹 PmtRound
Data Type | Values | Default |
---|---|---|
Enum | default , nearest , up , down , best | default |
This attribute allows the calling application to specify a payment rounding
option which will override the value found in the setup file. If not specified,
then the value of default
will be used.
default
- Use method specified in setup file.nearest
- Round computed payment to the nearest penny, using 5/4 rounding. e.g. 300.242 = 300.24, 300.245 = 300.25.up
- Round computed payment up to the next penny. e.g. 300.241 = 300.25.down
- Round computed payment down to the previous penny. e.g. 300.249 = 300.24.best
- Once the unrounded payment has been computed, amortize the loan using the rounded down and rounded up payment, and then return the payment which amortizes the loan’s ending balance closest to zero.
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | See below | monthly |
PPY is an abbreviation for payments per year, and as one might surmise,
determines the payment frequency for the loan. The default value of monthly
will
result in a loan with 12 payments per year. If you require a loan with a payment
frequency other than monthly, specify it using this attribute.
Value | Translation | Description |
---|---|---|
1 | Annual | Once Per Year |
2 | SemiAnnual | Twice Per year (every six months) |
4 | Quarterly | Four per year (every three months) |
6 | Bimonthly | Six per year (every two months) |
12 | Monthly | Twelve per year (every month) |
24 | Semimonthly | Twice Per Month* |
26 | Biweekly | Every two weeks |
52 | Weekly | Every week |
* Semimonthly loans are characterized by making two payments per month on the same days. A common semimonthly schedule is to make payments every 1st and 16th of the month. Another common schedule is the 15th and the end of every month.
🔹 UseMAPR
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to a value of true
, the SCE will compute the Military
APR in addition to the Regulation Z APR. The <MAPR>
element will be included in the XML loan response.
🔹 YieldPPY
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 , 4 , 6 , 12 | 0 |
Canadian mortgages may compute periodic interest using a fractional power of a
periodic yield. If set to a value other than 0
, this value determines the
period. Please contact us for further information if you support mortgage
calculations in Canada. Note that when using this attribute with a value other
than zero, the calling application must include an odd days prepaid fee in the
request.
🟦 <Construction>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | Not a construction loan |
Include the <Construction>
element to configure a construction period on a
loan. The use of this element requires setup files configured to support
construction loans, or specification of the Method
to be used.
If the specified account is not set up to support construction loans, this
element will be ignored.
Attributes:
🔹Accrual
,🔹Active
,🔹HalfCommitment
,🔹Method
,🔹PermanentAttached
,🔹PPY
,🔸Rate
,🔸Term
,🔹UnitOddDayDivisor
🔹 Accrual
Data Type | Values | Default |
---|---|---|
Enum | default , unitperiod , actual360 , actual365 | default |
If the loan request is a construction loan with no permanent loan attached, this attribute allows the calling application to specify the accrual method used.
default
- The setup files determine the default value for interest accrual.unitperiod
- Compute periodic interest using a 1/PPY factor.actual360
- Compute periodic interest using the actual # of days between payments/360.actual365
- Compute periodic interest using the actual # of days between payments/365.
🔹 Active
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this loan request includes a construction loan, then set this attribute to
true
. If no construction loan is desired, either do not specify the
<Construction>
element or set this attribute to false
.
🔹 HalfCommitment
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
During the term of the construction loan, the estimated interest for disclosure
purposes may be either computed on the full or half commitment amounts. By
setting this attribute to true
, interest will be estimated using half of the
initial commitment amount (i.e. the principal balance). The default value of
false
will cause interest to be estimated using the entire initial commitment
amount.
🔹 Method
Data Type | Values | Default |
---|---|---|
Enum | default , simple , laserpro , intonly | default |
There are three methods used to define how construction loans are computed and
disclosed. A method of default
tells the SCE to use the method
configured in the setup file. The meaning of the three methods are as follows:
simple
- Compute an aggregate construction interest amount for the entire construction period for both pure construction loans and construction to permanent loans.laserpro
- Compute an aggregate construction interest amount for the entire construction period for pure construction loans. For construction to permanent loans, compute and disclose discrete interest-only payments during the construction period.intonly
- Compute and disclose discrete interest-only payments during the construction period for both pure construction loans and construction to permanent loans.
🔹 PermanentAttached
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Construction loans may be computed on their own, or they may be attached to a
permanent loan which begins at the conclusion of the construction loan. If a
permanent loan is attached to the construction loan, then set this attribute’s
value to true
and set up the permanent loan information in the request
elements.
The default value of false
indicates that this is solely a construction loan
with no permanent attached. In this case, you still need to set up the
<LoanDate>
, <PmtDate>
and <Proceeds>
elements.
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | 1 , 2 , 4 , 6 , 12 , 24 , 26 , 52 | 12 |
The PPY
attribute allows the calling application to specify the payment
frequency during the construction period. The default value of monthly will
result in a construction loan with 12 payments per year. If you require a
payment frequency during the construction period other than monthly, then
specify it using this attribute. Note that if a permanent loan is attached to
the construction loan, that the permanent loan's payment frequency may differ
from the construction period’s payment frequency.
🔸 Rate
Data Type | Values | Default |
---|---|---|
Decimal | [-99.999...600] | 0 |
This attribute determines the rate applied to the appropriate commitment amount during the term of the construction loan.
🔸 Term
Data Type | Values | Default |
---|---|---|
Integer | [1...60] * | 0 |
The term of the construction loan (in payments) is specified using this attribute. Please note that the term may not exceed five years.
* 60 is the maximum number of months in the Construction period. In general, the maximum entry is 5 *
PPY
, where the PPY is the payments per year attribute of the<Construction>
element.
🔹 UnitOddDayDivisor
(enum, [], Ignore)
Data Type | Values | Default |
---|---|---|
Enum | ignore , 360 , 365 , vardpy | ignore |
When specifying an Accrual
method of type unitperiod
, this
attribute allows the calling application to specify how odd days between the
loan and first payment dates are taken into account.
ignore
means that all odd days are ignored, and the calculation will assume
one full unit period. 360
and 365
will compute the actual number of days
between the loan date and first payment date, and then use either a 360 or 365
divisor to determine the amount of interest accrued during that period. vardpy
accrues interest in the same manner as accrual code 250/350.
🟦 <Fee>[]
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No fee |
Unlike most other elements, any number of fees may be defined, or none at all. All of the information used to compute a fee is contained in its attributes.
Attributes:
🔹AddToFinChg
,🔹AddToPrin
,🔹Adjust
,🔹CalcType
,🔸Entry
,🔹IsLoanCost
,🔹MAPR
,🔹MaxValue
,🔹MinValue
,🔹Name
🔹 AddToFinChg
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
If this fee should be included in the Reg. Z Finance Charge (and hence, affect
the APR), then set this attribute to true
. The default value of false
indicates that the fee does not affect the Finance Charge nor APR.
🔹 AddToPrin
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this fee should be added to the principal balance (e.g. the fee is financed
along with the amount requested), then set this attribute to true
. If set to
false
, then the fee is paid up front out of the borrower’s pocket.
🔹 Adjust
Data Type | Values | Default |
---|---|---|
Currency | any | 0 |
The optional attribute Adjust
allows the calling application to increase or
decrease the base amount on which a fee is calculated. If a negative value is
specified and this adjustment would produce a negative base amount, then a value
of zero is returned for the given fee. This attribute has no effect on fees with
a CalcType
of Dollar
.
As an example, in Tennessee you may need to define a financed, non-APR affecting fee to be computed by decreasing the amount financed by $2,000, and then multiplying this reduced amount by 0.115. The way to accomplish this in the SCEX is as follows:
<Fee CalcType="OnAmtFin" Entry="0.115" Adjust="-2000" AddToPrin="true" AddToFinChg="false" />
🔹 CalcType
Data Type | Values | Default |
---|---|---|
Enum | Dollar , OnProceeds , OnAmtFin , OnPrin , DocStamp | Dollar |
The value of this attribute determines how the fee is to be computed, as described below:
Dollar
- TheEntry
attribute is understood as a flat dollar amount.OnProceeds
- TheEntry
attribute is understood as a percentage value, to be applied to the loan’s proceeds. AnEntry
of1.0
would represent a fee of 1.0% of proceeds.OnAmtFin
- TheEntry
attribute is understood as a percentage value, to be applied to the Amount Financed. AnEntry
of0.5
would represent a fee of 0.5% of Amount Financed.OnPrin
- TheEntry
attribute is understood as a percentage value, to be applied to the loan’s principal balance. AnEntry
of0.125
would represent a fee of 0.125% of principal balance.DocStamp
- TheEntry
attribute is understood as a Florida doc stamp rate, to be applied to the loan’s principal balance. AnEntry
of0.35
would represent a fee of 0.35% of the principal balance. You must set the AddToFinChg attribute to false, otherwise the doc stamp fee will return a value of zero.
🔸 Entry
Data Type | Values |
---|---|
Decimal or Currency | >= 0 |
The Entry
is the basic starting point fee value that determines the dollar
value of the resulting fee computation. How this attribute is interpreted
depends upon the CalcType
attribute, described above. This
value is either a dollar value or a percentage (aka "points").
🔹 IsLoanCost
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
When requesting the new TILA RESPA outputs (via the
<TILARESPA2015>
element), the SCE needs to know which fees need
to be considered borrower paid loan costs, as defined in the rule. Please note
that if the fee is paid by a lender or other third party, then the fee does not
affect the loan calculation and should not be sent to the SCE. If it is sent,
then the value of this attribute should be set to false
.
🔹 MAPR
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If you wish to compute the Military APR, then certain fees may not be considered
Regulation Z APR affecting fees, but are considered Military APR affecting fees.
In this case, you will need to set the value of this attribute to true
.
Fees which are added to the finance charge (e.g.
AddToFinChg
="true"
) are always considered MAPR fees,
regardless of the stated value of this attribute.
Note that debt protection products are automatically included in the calculation of the Military APR, no matter what method is used for payment (e.g. single premium vs. monthly outstanding balance).
🔹 MaxValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If a maximum value for the fee is specified and is greater than zero, then if the computed fee exceeds this maximum value, then this maximum value will be used instead. If no maximum value is specified or is set to a value of zero, then no maximum will be enforced. Please note that this attribute is applied to all fee types documented.
🔹 MinValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If a minimum value for the fee is specified and is greater than zero, and if the
Entry
attribute holds a value greater than zero, then if the
computed fee is less than this minimum value, then this minimum value will be
used instead. If no minimum value is specified or is set to a value of zero,
then no minimum will be enforced. If a specified minimum value exceeds a
specified maximum value, then the minimum value will be ignored. Please note
that this attribute is applied to all fee types documented.
🔹 Name
Data Type | Values | Default |
---|---|---|
Text | any | n/a |
This attribute is for convenience purposes only, and does not affect the
calculation of the fee in any manner. If a Name
attribute is specified for the
<Fee>
element, then the corresponding <Fee>
element in the XML output will have a Name
attribute with the same value. This allows you to easily differentiate fees in
the response.
🟦 <Format>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | See attributes |
The <Format>
element is one of the first elements parsed from a request, as the
attributes of this empty element affect how date and numeric values are parsed
and validated.
Attributes:
🔹CurrencyDecimals
,🔹DateFormat
,🔹DateSeparator
,🔹DecimalSeparator
,🔹StrictDP
,🔹ThousandSeparator
🔹 CurrencyDecimals
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 | 2 |
When displaying and parsing Currency values, the value of this attribute
determines the maximum number of decimal places allowed after the
DecimalSeparator
.
🔹 DateFormat
Data Type | Values | Default |
---|---|---|
Enum | YMD , MDY , DMY | YMD |
When displaying and parsing Date values, this field determines the expected
format for all Date fields. The following DateFormat
options are allowed:
YMD
- All dates should be formatted as YYYY-MM-DD.MDY
- All dates should be formatted as MM-DD-YYYY.DMY
- All dates should be formatted as DD-MM-YYYY.
Note that the character which separates the individual month, day, and year
portions of the date is configurable via the
DateSeparator
attribute.
🔹 DateSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | - |
When displaying and parsing Date values, this attribute determines the character used to separate the individual month, day, and year portions of a date.
🔹 DecimalSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | . |
When displaying and parsing Currency or Decimal numeric values, this attribute determines the character used to separate the fractional part from the whole.
🔹 StrictDP
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 , | false |
If the value of this attribute is true
, then the SCE will strictly verify the
number of decimal places allowed for currency input values. Thus, if the calling
application sends in a request with a currency amount of 1000.005
, the SCE
will return an error code.
If the value of this attribute is false
, then currency values sent in with an
invalid number of decimal places will be rounded to the correct number of
decimal places by the SCE (using five/four rounding), and a warning message with
this information will be returned with the response.
🔹 ThousandSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | , |
When displaying numeric values, this attribute determines the character used to separate the thousands places from the hundreds. Note that when parsing numeric values, the value of this attribute is ignored.
🟥 <IntRate>
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | [-99.999...600] |
The element data will determine the annual interest rate used for the loan. (Split rate loans require use of the setup files.)
The interest rate should be expressed as an annual percentage. For example, a loan computed with an interest rate of 6.125% would be specified as:
<IntRate>6.125</IntRate>
Attributes: None
🟦 <IntStartDate>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= <LoanDate> and <= <PmtDate> | <LoanDate> |
This element contains the date on which interest begins to accrue on the loan’s
principal balance. If this element is not specified, then the interest start
date is defaulted to be the <LoanDate>
. Also note that the
interest start date must be equal to the loan date when computing a construction
loan. The interest start date (when specified) must be on or after the loan
date, as well as on or before the <PmtDate>
. All dates must be in
the form of YYYY-MM-DD, and be 10 characters long. Hence, an interest start date
April 27, 2024 would be specified as:
<IntStartDate>2024-04-27</IntStartDate>
Attributes: None
🟥 <LoanDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= 1900-01-01 |
This element determines when interest begins to accrue. If interest begins on a
later date, use the <IntStartDate>
element to define the date
on which interest begins to accrue.
This element contains the date on which the loan amount is disbursed and interest begins to accrue. All dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a loan date of March 4, 2024 would be specified as:
<LoanDate>2024-03-04</LoanDate>
Attributes: None
🟦 <Mortgage_Insurance>
Element Type | Data Type | Values | Default |
---|---|---|---|
Parent | - | - | No mortgage insurance |
The <Mortgage_Insurance>
element determines if this loan includes one of the
supported types of mortgage insurance (MI) - PMI or FHA. This element contains
child elements which further specify mortgage insurance options.
NOTE: Mortgage insurance is only supported on equal, balloon, and interest only loan builder requests at this time.
Attributes:
🔹CashDown
,🔹LoanAmt
,🔸PropertyValue
,🔹Type
🔹 CashDown
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
The CashDown
attribute represents a cash down payment made at closing. If
specified and greater than zero, this amount will be deducted from the principal
balance. If not specified, the cash down payment will default to zero.
🔹 LoanAmt
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | Principal balance |
The LoanAmt
attribute represents the amount by which the PMI rates are
multiplied to produce a level PMI premium. If not specified, then the principal
balance will be used to compute the annual premium.
🔹 PropertyValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
This attribute’s value represents the appraised property value, and will be used in the calculation of the loan to value ratio.
🔹 Type
Data Type | Values | Default |
---|---|---|
Enum | pmi , fha | pmi |
This attribute determines the type of mortgage insurance to include with the
loan. If the Type
attribute is set to FHA
, a different MI premium is
computed every twelve months based upon the average outstanding principal
balance during that same term. The MI calculation adheres strictly to the HUD
regulation.
🟥 <Mortgage_Insurance>
→<MI_Rate>[]
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | >= 0 |
The value of this element specifies the cost of mortgage insurance per $100 of
the loan amount. Note that there may be more than one <MI_Rate>
element
defined in an XML loan request (see the Switch
attribute
below).
As an example, a loan computed with a MI rate of $1.50 per $100 would be
specified as <MI_Rate>1.50</MI_Rate>
.
Attributes:
🔸Switch
🔹 Switch
Data Type | Values | Default |
---|---|---|
Integer | > 0 | 0 |
This optional attribute defines the payment number beyond which the associated MI rate will apply. If not specified, the value will default to zero.
Thus, if there is only a single MI rate, one may omit this attribute. Single rate example (use a rate of $1.50 for the entire term of MI coverage):
<MI_Rate>1.50</MI_Rate>
Multiple rate example (use a rate of $1.50 for the first 10 years, with a rate of $0.20 for coverage beyond 10 years):
<MI_Rate>1.50</MI_Rate>
<MI_Rate Switch="120">0.20</MI_Rate>
🟦 <Mortgage_Insurance>
→<Periodic>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Integer | >= 0 | 0 |
The value of this element represents the term beyond which MI is no longer
included. As an example, if mortgage insurance must be removed after the 180th
payment, then the calling application should specify <Periodic>180</Periodic>
in the XML loan request. 0
means no term removal is in effect.
🔹 DropLTV
Data Type | Values | Default |
---|---|---|
Decimal | >= 0 and <= 100 | 0 |
The value of this attribute determines the loan to value ratio at which MI
should be removed, and is expressed as a percentage. For example, if you wish to
automatically drop MI when the loan to value ratio first equals or falls below
78%, then you would specify DropLTV="78.0"
.
🔹 WarnLTV
Data Type | Values | Default |
---|---|---|
Decimal | >= 0 and <= 100 | 0 |
The value of this attribute determines the loan to value ratio at which a
warning should be issued, and is expressed as a percentage of LTV (loan to
value). For example,if you wish to know when the loan to value ratio first
equals or falls below 80%, then you would specify WarnLTV="80.0"
.
🟦 <Mortgage_Insurance>
→<UpFront>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Decimal | >= 0 | 0 |
This element determines the up front fee for mortgage insurance, as disclosed in
the <PMI_Fee>
element in the results. If this element is not
specified, no up front fee will be computed. Note that ZOMP (zero option monthly
premium) products do not have an up front fee, which means that this element can
be omitted or set to zero.
The following attributes define how the fee is computed and disclosed.
🔹 Paid
Data Type | Values | Default |
---|---|---|
Enum | Financed , AtClosing , ByLender | AtClosing |
If the value of this attribute is set to Financed,
then the computed up front
fee will be added to the principal balance and the finance charge. A value of
AtClosing
will cause the value of the fee to be added to the finance charge
alone. Finally, a value of ByLender
means that the up front fee is to be paid by
the lender; hence, the value of the fee is a Pocket Fee that is not added to
either the principal balance nor the finance charge.
🔹 Units
Data Type | Values | Default |
---|---|---|
Enum | Months , Points , Years | Months |
If the Units attribute is set to Months
, the value of the
<UpFront>
element represents the number of periodic MI premiums to
be paid at closing.
If the Units attribute is set to Years
, the value of the
<UpFront>
element represents the number of annual MI premiums to
be paid at closing.
Many single premium products define the up front fee as a number of years of MI to be paid up front.
Finally, if the Units attribute is set to Points
, the value of the
<UpFront>
element represents the percentage of principal to be
paid up front. As of October 3, 2011, FHA loans use points.
🟦 <OddDaysPrepaid>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No odd days prepaid interest |
If odd days interest should be treated as a prepaid finance charge or added to the first payment, then include this empty element in the request. The attributes of this element determine how odd days interest is computed and handled.
Attributes:
🔹AccrualCode
,🔹AddToPmt
,🔹AddToPrin
,🔹AnchorDate
,🔹ForceUnitPeriod
,🔹NoCap
,🔹UseDailyCost
,🔹UseNegODI
🔹 AccrualCode
Data Type | Values | Default |
---|---|---|
Enum | See below | 220 |
The accrual code defines how the odd days interest is computed.
Note that accrual code 250
("Variable Days Per Year") defines the basis divisor
days to be equal to 12 multiplied by the number of days in the month of the date
on which interest begins to accrue. Thus, if the interest start date falls in
November, then the number of basis days is 360. If the interest start date falls
in a month with 31 days, then the number of basis days is 372. For an interest
start date in February, the number of basis days will either be 336 or 348,
depending upon whether or not it is a leap year.
AccrualCode | Description |
---|---|
204 | Unit period simple w/ true 360 calendar and 360 day divisor |
205 | Unit period simple w/ true 360 calendar and 365 day divisor |
210 | Actual / 360 simple |
211 | True 365 / 360 simple |
220 | Actual / 365 simple |
221 | True 365 / 365 simple |
230 | Actual / Actual simple |
231 | Midnight 366 simple |
250 | Unit period simple w/ variable DPY divisor |
🔹 AddToPmt
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application wants the odd days interest to be added to the first
payment, then set the value of this attribute to true
. A value of false
indicates that the odd days interest will be treated as a prepaid fee.
🔹 AddToPrin
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If any odd days interest should be treated as a financed prepaid fee, then set
the value of this attribute to true
. Note that if both
AddToPmt
and AddToPrin
are set to true
, then a warning
message will be returned by the SCEX and the value of AddToPrin
will be set to
false
.
🔹 AnchorDate
Data Type | Values | Default |
---|---|---|
Enum | BackUnitPeriod , BackDaysPerPeriod | BackUnitPeriod |
The computed number of odd days is the number of days between the loan date and the anchor date. This attribute determines how to arrive at the anchor date.
BackUnitPeriod
- The anchor date is one unit period prior to the specified first payment date.BackDaysPerPeriod
- The anchor date is the number of days per period prior to the first payment date.
Please note that for both of these methods, the period used will be that associated with the payment stream in which the first payment occurs.
🔹 ForceUnitPeriod
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the loan's interest accrual is unit period, this attribute forces the period
to the first payment to be 1/12 (or 1/(PmtsPerYear) in general). Without this
attribute an accrual code of 202
(Unit Period /365) would use a factor of
Days/365 rather than the expected 1/12.
🔹 NoCap
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
When an odd days interest fee is present and financed, the value of this
attribute determines if the ODI fee is added to the principal balance for the
purposes of computing the ODI fee (e.g. if it is capitalized). If this value is
true
, the ODI is computed on the true principal balance less the ODI; false
means "compute ODI on the true principal balance.
🔹 UseDailyCost
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the total odd days prepaid fee is computed by first generating a rounded (to
the nearest penny) daily cost and then multiplying this value by the computed
number of odd days, then set the value of this property to true
.
A value of false
means that the daily cost is left unrounded, and the total
prepaid fee is rounded after the computation is complete.
🔹 UseNegODI
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If there are negative odd days in the loan, then the value of this attribute
determines if a negative odd days interest fee is computed. If the value of this
attribute is false
, then negative odd days fees are not allowed, the SCEX will
return a value of zero in this situation, and the computed payment will be
adjusted to take into account the negative odd days. A value of true
will
return a negative odd days interest fee (in effect, it then becomes an odd days
interest credit) when there are negative odd days in a loan.
🟥 <Payment>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | >= 0 |
The payment specified indicates the desired periodic payment the borrower is
requesting. The dollar amount should be expressed as a number. For example, a
request including <Payment>300.00</Payment>
indicates a desired payment of
$300.
Attributes: None
🟥 <PmtDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= <LoanDate> and >= <IntStartDate> |
This element contains the date on which the first payment of the loan is made, and must be on or after the loan date.
All dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a first payment date of April 4, 2024 would be specified as:
<PmtDate>2005-04-04</PmtDate>
Attributes: None
🟦 <Protection>
Element Type | Data Type | Values | Default |
---|---|---|---|
Parent | - | - | No protection included |
The <Protection>
element is used to specify debt protection coverages such as
life, disability, involuntary unemployment, personal property and debt
cancellation. Each type of coverage is specified by its own sub-element, along
with the borrower birthdays. The following attributes apply to this element:
Attributes:
🔹FinanceProt
,🔹LineOfCredit
,🔹Mandatory
,🔹ShowBorrowerInfo
,🔹ShowCaps
🔹 FinanceProt
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
If the computed premiums for single premium debt protection products should be
financed along with the proceeds, then this attribute should be set to true
(which is the default value if not specified). A value of false
indicates that
the computed premiums will not be financed with the proceeds, and hence will be
paid out of pocket by the borrower. Note that this applies to single premium
insurance products only!
🔹 LineOfCredit
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this is an account using TruStage’s MOB insurance, and if this loan is a line
of credit where product term caps should be ignored, then set this attribute to
true
. Otherwise, leave this attribute unspecified or set it to false
.
🔹 Mandatory
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the value of this attribute is set to true
, then any computed payment
protection premium or fee will be considered a mandatory fee which will be
included as a part of the Regulation Z Finance Charge, and hence affect the
Regulation Z APR. In this case, the <Protection>
element in the response will contain a
Mandatory
="true"
attribute indicating this.
If the Mandatory attribute is set to false
, the loan will treat any premiums /
fees as normal.
🔹 ShowBorrowerInfo
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application would like to have data returned for each specified
borrower instead of a single <CovTerm>
element, then
set the value of this attribute to true
. Otherwise, leave this attribute
unspecified or set it to false
. See the <Borrower>
and <CovTerm>
elements defined in the response for
more information.
🔹 ShowCaps
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application would like to have cap information (e.g., maximum
terms, coverage amounts, ages, etc.) returned for each product offered, set the
value of this attribute to true
. Otherwise, leave this attribute unspecified
or set it to false
. See the <Caps>
element for more
information.
🟦 <Protection>
→<Birthday1>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= 1900-01-01 | No birthday specified |
This element contains the date of birth for the primary borrower. All dates must
be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a birthday of
April 9, 1972 would be specified as <Birthday1>1972-04-09</Birthday1>
. Note
that this element must be set if the Covers attribute of any of the four debt
coverage elements is set to borrower1
or both
.
Attributes: None
🟦 <Protection>
→<Birthday2>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= 1900-01-01 | No birthday specified |
This element contains the date of birth of the secondary borrower. All dates
must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a birthday
of May 21, 1969 would be specified as <Birthday2>1969-05-21</Birthday2>
.
Attributes: None
🟦 <Protection>
→<Disability>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No disability coverage |
The <Disability>
element determines what type of disability coverage is
requested for the loan. It also serves double duty as the debt cancellation
coverage element, for accounts set up to compute debt cancellation using the
disability tables. The element itself is empty, with all information needed for
disability coverage request being specified in the following attributes:
🔹 Benefit
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <Disability>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will assure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user specified coverage terms, then this attribute will be ignored.
🔹 Table
Data Type | Values | Default |
---|---|---|
Integer | [0...19] | 0 |
If the specified account has been set up with multiple disability or debt
cancellation plans, then this attribute determines which plan number will be
used. If no table number is specified, the first table (table zero) will be
used. To find out the number of available plans, use the
<AhSetCount>
element in the
<inINPUT_TOOL>
response.
🟦 <Protection>
→<Life>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No life coverage |
The <Life>
element determines what type of life coverage is requested for the
loan. The element itself is empty, with all information needed for a life
coverage request being specified in the following attributes:
Attributes:
🔹Coverage
,🔹Covers
,🔹CovTerm
,🔹Dismemberment
,🔹Method
,🔹UseLevelRates
🔹 Coverage
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
If you wish to specify a coverage amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum coverage amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified coverage amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in the appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <life>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will assure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user specified coverage terms, then this attribute will be ignored.
🔹 Dismemberment
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the specified account has been set up to offer optional dismemberment coverage to be offered with life coverage (using an increased rate in the premium calculation), then this attribute determines whether or not this additional coverage will be provided.
🔹 Method
Data Type | Values | Default |
---|---|---|
Enum | default , net , gross | default |
If the specified account has been set up to offer single premium life coverage
by default, net or gross coverage, then this attribute can be used to specify
which type of coverage to compute with the loan. For all other accounts, the
default value of default
should be used (or simply do not specify the attribute
at all).
🔹 UseLevelRates
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the account specified has been set up to offer single premium credit life
using level rates instead of the normal decreasing rates, then set this
attribute’s value to true
. Otherwise, use the default value of false
.
🟦 <Protection>
→<Property>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No property coverage |
The <Property>
element determines what type of personal property coverage is
requested for the loan. The element itself is empty, with all information needed
for coverage request being specified in the following attributes:
🔹 Coverage
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a coverage amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum coverage amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user-specified coverage amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The value borrower1
represents single coverage on the primary borrower (whose
birthday is contained in element <Birthday1>
). A request for
joint coverage on both borrowers is indicated by a value of both
. Finally, if
no coverage is desired, specify a value of none
or omit the <Property>
element entirely.
🟦 <Protection>
→<Unemployment>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No unemployment coverage |
The <Unemployment>
element determines what type of involuntary unemployment
coverage is requested for the loan. The element itself is empty, with all
information needed for a coverage request being specified in the following
attributes:
🔹 Benefit
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in the appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <Unemployment>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will ensure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user-specified coverage terms, then this attribute will be ignored.
🟦 <ServiceCharge>[]
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No service charge |
As with the <Fee>
element, any number of <ServiceCharge>
elements
may be added to a loan. Service charges are supported on single, equal, and
balloon payment loans only.
The <ServiceCharge>
element itself contains no data. Instead, all of the
information used to compute the service charge is contained in the following
attributes of the element:
🔸 Entry
(decimal, 0)
How this attribute is interpreted depends upon the Type
attribute, described below. It is the numeric amount defining either the lump
sum or periodically paid service charge.
🔹 Exact
(boolean, false)
The Exact
attribute is only considered when the service charge is of
Type
LumpSum
. When the calculated periodic amount is
rounded, it will most often times produce a total service charge amount that
differs from that entered.
If the Exact
attribute is set to true
, then the final periodic amount will be
adjusted so that the sum of all periodic amounts is exactly equal to the entered
amount (and will result in an odd final payment). A value of false
indicates
that the final periodic amount will not be adjusted.
🔹 Name
(text, "")
This attribute is for convenience purposes only, and does not affect the
calculation of the service charge in any manner. If a Name
attribute is
specified for the <ServiceCharge>
element, then the corresponding
<ServiceCharge>
element in the response will have a
Name
attribute with the same value. This allows
you to easily differentiate fees in the response.
🔹 Round
(enum, [nearest, up, down], nearest)
This attribute is only considered when the service charge is of
Type
LumpSum
. It determines how the calculated periodic
amount is rounded.
🔹 Type
(enum, [LumpSum, Periodic], LumpSum)
A service charge of Type
of LumpSum
allows the calling application to specify an
amount that will be spread out evenly over the loan’s payment stream. On the
other hand, a Periodic
service charge is the amount which will be added to each
payment.
🟥 <Term>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | [2...600] * |
The value of this element indicates the number of payments in the loan.
The term must be entered as a number of payments, not a duration of time.
Therefore, <Term>72</Term>
represents 72 payments, not 72 months (or years).
This term is intimately tied to the PPY
(# of payments per year)
attribute of the root element. If the value of the PPY
attribute
was 24
(semimonthly) for this loan, the 72 payments would mean that the
duration of the loan is three years, since years = number of payments / payments
per year = 72 / 24 = 3.
* In general, the term can be no greater than 50 years, so the maximum entry would be 50 *
PPY
. Weekly loans, however, are limited to 30 years, or 1,560 payments.
Attributes: None
🟦 <TILARESPA2015>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No TILA RESPA disclosures |
The presence or absence of this element determines whether or not the TILA RESPA data table is present in the output.
If this element is present in the loan request, then the SCEX will return data for the Integrated Mortgage Disclosures under the Real Estate Settlement Procedures Act (Regulation X) and the Truth In Lending Act (Regulation Z) rule, which is required as of August 1st, 2015. If this element is not present, then the TILA RESPA outputs will not be generated.
Attributes: None
🟦 <TotalDown>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
This optional element represents the total down payment that the borrower has applied to reduce the requested proceeds. It may consist of a cash down payment, net trade-in value, or rebate. You only need to specify a total down payment if the loan needs to disclose a total sale price. Typical examples of these loan types are auto and boat loans.
To generate a total down payment, please see the chapter detailing the SCEX’s Auto Prompts module.
Attributes: None
Roll to Amount - Response
The roll to amount response is almost identical to the compute payment response, with the following differences:
- The root element is
<outEQUAL_PROCEEDS>
instead of<inEQUAL_PMT>
. - There will laways be a
<Proceeds>
element under the<Results>
element, since this is the value we are solving for.
Please see the Legend to understand the conventions used to document each element and attribute. Note that for responses, the XML elements are documented in the order that they appear in the response.
🟥 <outEQUAL_PROCEEDS>
Element Type | Data Type |
---|---|
Parent | - |
This element is the root element of the response, and contains all of the relevant outputs.
Attributes:
🔹CountryName
🔹 CountryName
Data Type | Values | Default |
---|---|---|
Text | See table | United States of America |
If a valid Country
code was specified as an
attribute of the input module element, the full name of the country associated
with the specified Country code will be reported in this attribute.
🟥 <Results>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which describe the success or failure of the calculation, any warning or error messages, and the most important numerical results for the query.
<Results>
<Description>Successful Calculation</Description>
<Proceeds>3385.34</Proceeds>
<Payment>300.00</Payment>
<Final>300.00</Final>
</Results>
Attributes: None
🟥 <Results>
→<Description>
Element Type | Data Type |
---|---|
Data | Text |
If the calculation was completed successfully, then this element will contain
the value Successful Calculation
. Otherwise, this element will contain a
description of the problem encountered during the attempted computation.
Attributes: None
🟦 <Results>
→<XMLDetail>[]
Element Type | Data Type | Default |
---|---|---|
Data | Text | NULL |
The <XMLDetail>
elements are messages passed back to the calling application
which detail the status of the XML request. If the SCEX issues any warnings
regarding unrecognized elements or attributes, then each warning message will be
displayed in an <XMLDetail>
element.
Attributes: None
🟥 <Results>
→<Proceeds>
Element Type | Data Type |
---|---|
Data | Currency |
The computed amount which the borrower can afford to borrow given the requested payment for the roll to amount loan.
Attributes: None
🟥 <Results>
→<Payment>
Element Type | Data Type |
---|---|
Data | Currency |
The computed payment for the requested equal payment loan.
Attributes: None
🟦 <Results>
→<Final>
Element Type | Data Type |
---|---|
Data | Currency |
If the specified account has been set up to disclose an odd final payment (usually done to perfectly amortize the loan at its conclusion), then this element will be present and contain the odd final payment amount.
Attributes: None
🟥 <FedBox>
Element Type | Data Type |
---|---|
Parent | - |
Some of the most important compliance related outputs are organized into the
<FedBox>
disclosures.
<FedBox>
<AmtFin>3410.34</AmtFin>
<FinChg>189.66</FinChg>
<TotPmts>3600.00</TotPmts>
<RegZAPR Type="Actuarial">10.112</RegZAPR>
</FedBox>
Attributes: None
🟥 <FedBox>
→<AmtFin>
Element Type | Data Type |
---|---|
Data | Currency |
The Regulation Z Amount Financed, which is defined as the amount of credit provided to you or on your behalf.
Attributes: None
🟥 <FedBox>
→<FinChg>
Element Type | Data Type |
---|---|
Data | Currency |
This element contains the Regulation Z Finance Charge, described as the dollar amount the credit extension will cost you.
Attributes: None
🟥 <FedBox>
→<TotPmts>
Element Type | Data Type |
---|---|
Data | Currency |
The amount which the borrower will have paid when the borrower has made all scheduled payments.
Attributes: None
🟦 <FedBox>
→<TotalSalePrice>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | <TotPmts> |
The sum of the total of payments plus the total down payment. Please note that
if no <TotalDown>
element was specified in the
request, then this element will not be present.
Attributes: None
🟥 <FedBox>
→<RegZAPR>
Element Type | Data Type |
---|---|
Data | Decimal |
The Regulation Z APR, which is the cost of the extension of credit expressed as a yearly rate. The Reg. Z APR element has a few attributes, described below:
Attributes:
🔹Max
,🔹MaxExceeded
,🔸Type
🔹 Max
Data Type | Default |
---|---|
Decimal | n/a |
This attribute specifies the maximum APR as configured in the account's setup files. If no maximum APR has been specified, then this attribute will not be present. The value of this attribute should be displayed as a percentage. As an example, for Max="36.000", you would disclose a maximum APR of 36.000%.
🔹 MaxExceeded
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
If a maximum APR is configured in the account's setup files, then the value of
this attribute indicates whether or not the current loan exceeds the maximum
allowed APR. As an example, if the maximum APR has been set to 36% and the APR
for the returned loan was 37.125%, the <RegZAPR>
element would be:
<RegZAPR Type="Actuarial" Max="36.000" MaxExceeded="true">37.125</RegZAPR>
🔸 Type
Values | |
---|---|
Enum | Actuarial , USRule , EU_APR , Canadian_APR , XIRR , XIRR360 , IRR , YieldIRR , Open_End |
This attribute specifies the method used to compute the reported APR: Actuarial or US Rule The method used is dictated by the setup files for the given account, but may be overridden in the XML input query.
Actuarial
- Governed by Appendix J to Regulation Z. Default US APR.USRule
- Used by large banks to mirror loan amortization.EU_APR
- Default European Union APR.Canadian_APR
- Default APR for Canada.XIRR
- Extended Internal Rate of Return (same as excel function).XIRR360
-XIRR
using a 360 divisor rather than a 365 divisor.YieldIRR
- Canadian mortgages may compute periodic interest using a fractional power of a periodic yield.Open_End
- Simply returns the interest rate.
🟦 <FedBox>
—><MAPR>
Element Type | Data Type |
---|---|
Data | Decimal |
If the military APR has been requested, then this element will be included in the output. The value of the element is the military APR, and the element has a few attributes, described below:
Attributes:
🔸Advance
,🔹Max
,🔹MaxExceeded
🔸 Advance
Data Type |
---|
Currency |
This attribute is the equivalent of the Amount Financed for the Military APR. Specifically, it is the principal balance less any MAPR fees, debt protection, etc.
🔹 Max
Data Type | Default |
---|---|
Decimal | 36.0 |
This attribute specifies the maximum Military APR as specified in the input XML
(see MAPR_Max
). If not specified, a default value
of 36% is assumed. The value of this attribute should be displayed as a
percentage. As an example, for Max="36.0"
, you would disclose a maximum
Military APR of 36.0%.
🔹 MaxExceeded
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
The value of this attribute 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>
element would be:
<MAPR Advance="1350.00" Max="36.000" MaxExceeded="true">37.125</MAPR>
🟦 <TILARESPA2015>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which are of interest to fulfilling the
2015 TILA RESPA rule. It will only be present if the
<TILARESPA2015>
element is present in the
request.
Sample TILARESPA2015 output:
<TILARESPA2015>
<TotalLoanCosts>0</TotalLoanCosts>
<CD_TotPmts>27311.07</CD_TotPmts>
<In5Years PaidTotal="27311" PaidPrincipal="25000"/>
<TIP>9.244</TIP>
<MaxPnIPmt Date="2012-11-01">1636.65</MaxPnIPmt>
<MinRate Idx="1">5.651</MinRate>
<MaxRate Idx="1">5.651</MaxRate>
<ProjectedPayments NumCols="3">
<PPCol Num="1" Title="Year 1">
<Years Start="1" End="1"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
<PPCol Num="2" Title="Year 2">
<Years Start="2" End="2"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
<PPCol Num="3" Title="Year 3">
<Years Start="3" End="3"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
</ProjectedPayments>
</TILARESPA2015>
Attributes: None
🟦 <TILARESPA2015>
→<LoanCost>[]
Element Type | Data Type |
---|---|
Data | Currency |
For every <Fee>
element present in the input which has
its IsLoanCost
attribute 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>
input element), there will be a
corresponding <LoanCost>
element. The value of this element will be the
numerical value of the fee, rounded to the nearest dollar.
🔹 In5Years
Data Type | Default |
---|---|
Currency | <LoanCost> |
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 attribute will be present and disclose the portion of this loan cost that is accrued during the first five years.
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
This attribute will hold the same value as the attribute of the same name for
the <Fee>
element. It is recommended that each fee
have a unique Name
for identification purposes.
🟥 <TILARESPA2015>
→<TotalLoanCosts>
Element Type | Data Type |
---|---|
Data | Currency |
This element holds the sum of all borrower paid loan costs. Since all
<LoanCost>
element values are rounded dollar amounts, the value of this
element will also be a rounded dollar amount.
Attributes: None
🟥 <TILARESPA2015>
→<CD_TotPmts>
Element Type | Data Type |
---|---|
Data | Currency |
This element holds 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 will be the numerical value of the sum.
Attributes: None
🟥 <TILARESPA2015>
→<In5Years>
Element Type | Data Type |
---|---|
Empty | - |
This element is empty, with all important values required for the new "In 5 Years" section returned in the following two attributes of this element.
Attributes:
🔸PaidPrincipal
,🔸PaidTotal
🔸 PaidPrincipal
Data Type |
---|
Currency |
This attribute 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.
🔸 PaidTotal
Data Type |
---|
Currency |
This attribute 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.
🟥 <TILARESPA2015>
→<TIP>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the total interest percentage, rounded to three or fewer decimal places, as required.
Attributes: None
🟥 <TILARESPA2015>
→<MaxPnIPmt>
Element Type | Data Type |
---|---|
Data | Currency |
The value of this element holds the maximum scheduled principal and interest payment during the term of the loan.
Attributes: 🔸
Date
🔸 Date
Data Type |
---|
Date |
This attribute contains 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. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🟥 <TILARESPA2015>
→<MinRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the minimum possible interest rate applied during the term of the loan.
Attributes: 🔸
Idx
🔸 Idx
Data Type |
---|
Integer |
This attribute contains the payment number for which the minimum rate is first applicable.
🟥 <TILARESPA2015>
→<MaxRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the maximum possible interest rate applied during the term of the loan.
Attributes: 🔸
Idx
🔸 Idx
Data Type |
---|
Integer |
This attribute contains the payment number for which the maximum rate is first applicable.
🟥 <TILARESPA2015>
→<ProjectedPayments>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which are of interest to filling the
Projected Payments table. It will only be present if the <TILARESPA2015>
element is present in the XML request for a supported loan type.
Attributes: 🔸
NumCols
🔸 NumCols
Data Type | Values |
---|---|
Integer | [1...4] |
This attribute will hold the number of columns which must be present in the Projected Payments table. It will be a numeric value from 1 to 4.
🟥 <ProjectedPayments>
→<PPCol>[]
Element Type | Data Type |
---|---|
Parent | - |
For every column required in the Projected Payments table, there will be an
associated <PPCol>
element. This element is a parent to child elements which
contain data associated with a single column of the table.
🔸 Num
Data Type | Values |
---|---|
Integer | [1...4] |
This attribute will hold the number of the column to which the following data applies.
🔸 Title
Data Type |
---|
Text |
The value of this attribute 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.
🟥 <ProjectedPayments>
→<PPCol>
→<Years>
Element Type | Data Type |
---|---|
Empty | - |
The attributes of this element hold the beginning and ending year numbers for which this column data applies. The element itself is empty.
🔸 End
Data Type |
---|
Integer |
The ending year associated with this column's data.
🔸 Start
Data Type |
---|
Integer |
The beginning year associated with this column's data.
🟥 <ProjectedPayments>
→<PPCol>
→<PnIPmt>
Element Type | Data Type |
---|---|
Empty | - |
This empty element has several attributes which describe the principal and interest payments associated with this column.
🔸 Balloon
Data Type | Values |
---|---|
Boolean | true , false |
If any of the payments associated with this column are balloon payments (e.g.
isolated payments that are more than twice the value of a regular periodic
payment), then the value of this attribute will be true
.
🔸 IntOnly
Data Type | Values |
---|---|
Enum | all , some , none |
none
- No payments associated with the column are Interest Onlysome
- Some, but not all, of the payments associated with the column are Interest Only.all
- All of the payments associated with the column are Interest Only.
Note that for the purposes of this attribute, 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.
🔸 Max
Data Type |
---|
Currency |
This attribute holds the maximum principal and interest payment for this column.
If this value is not the same as the value of the Min
attribute, then a range of rounded payments must be displayed. If the values are
the same, then only a single value needs to be disclosed.
🔸 Min
Data Type |
---|
Currency |
This attribute holds the minimum principal and interest payment for this column.
🟥 <ProjectedPayments>
→<PPCol>
→<MIPmt>
Element Type | Data Type |
---|---|
Data | Currency |
The value of this element 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.
Attributes: None
🟥 <ProjectedPayments>
→<PPCol>
→<TotalPmt>
Element Type | Data Type |
---|---|
Empty | - |
This empty element has two attributes which describe the estimated total payment or range of payments associated with this column. Note that this value does not include any estimated escrow, as the SCEX does not support escrow calculations. The calling application will need to increase these values by the estimated escrow amounts if any are present.
🔸 Max
Data Type |
---|
Currency |
This attribute holds the maximum estimated total payment for this column. If
this value is not the same as the value of the Min
attribute,
then a range of rounded payments must be displayed. If the values are the same,
then only a single value needs to be disclosed.
🔸 Min
Data Type |
---|
Currency |
This attribute holds the minimum estimated total payment for this column.
🟥 <Moneys>
Element Type | Data Type |
---|---|
Parent | - |
This element groups together those other major cash amounts not disclosed under
the <FedBox>
element, such as the principal balance, interest
change, fee amounts and protection premiums.
<Moneys>
<Principal>10120.00</Principal>
<Interest>1635.80</Interest>
<OddDaysPrepaid OddDayCount="15" DailyCost="2.77">41.55</OddDaysPrepaid>
<FinFees>120.00</FinFees>
<FinChgFees>91.55</FinChgFees>
<PocketFees>65.00</PocketFees>
<MAPRFees>201.55</MAPRFees>
<Protection Category="None" PerPmt="0.00" PerDay="0.00">0.00</Protection>
<Fee Name="FinFee">60.00</Fee>
<Fee Name="Prepaid Fee">50.00</Fee>
</Moneys>
Attributes: None
🟥 <Moneys>
→<Principal>
Element Type | Data Type |
---|---|
Data | Currency |
The principal balance is the amount on which interest is accrued. The principal balance consists of the amount requested by the borrower, any fees which are financed, as well as financed protection premiums.
Attributes: None
🟥 <Moneys>
→<Interest>
Element Type | Data Type |
---|---|
Data | Currency |
This element contains the total interest accrued during the term of the loan, assuming the borrower will make all scheduled payments.
Attributes: None
🟦 <Moneys>
→<ConstructInterest>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If the requested loan is a construction loan with a permanent loan attached and the account specified is set up to compute construction loans via the "Simple" method, then this element 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 <Interest>
element, and
both loans reflected in a single, combined amortization schedule.
If the requested loan was not a construction loan, or if construction loans have not been set up for the given account, then this element will not appear in the results.
Attributes: None
🟦 <Moneys>
→<OddDaysPrepaid>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element, if present, holds the total odd days prepaid finance charge. If no odd days prepaid fee was requested, then this element will not be present in the output.
Attributes:
🔹AddToPmt
,🔹DailyCost
,🔸OddDayCount
,🔹OddMonths
🔹 AddToPmt
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
If the odd days interest has been added to the first payment, this attribute
will be present in the output with a value of true
. If the odd days interest has
been treated as a prepaid finance charge, then this attribute will not be
present and a default value of false
should be assumed.
🔹 DailyCost
Data Type | Default |
---|---|
Currency | n/a |
If the odd days prepaid fee is computed using a rounded daily cost, then the value of this attribute will hold that value. If the odd days prepaid is not computed using a rounded daily cost, then this attribute will not be present.
🔸 OddDayCount
Data Type |
---|
Integer |
This attribute holds the number of odd days computed by the SCE for the requested loan.
🔹 OddMonths
Data Type | Default |
---|---|
Integer | n/a |
This attribute holds the number of odd months computed by the SCE for the
requested loan when using odd days accrual method 250
.
🟦 <Moneys>
→<MinInterestPmt>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | n/a |
The <MinInterestPmt>
element will only appear if the
Metavante
attribute has been set to true
,
and even then only under certain loan conditions. The element itself contains no
data, as all required data is found in the following two attributes:
🔸 Index
Data Type |
---|
Integer |
The Index
attribute specifies the payment number in the payment stream at which
the minimum interest payment is achieved.
🔸 Pmt
Data Type |
---|
Currency |
The interest payment amount for the given Index
.
🟦 <Moneys>
→<MaxInterestPmt>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | n/a |
The <MaxInterestPmt>
element will only appear if the
Metavante
attribute has been set to true
,
and even then only under certain loan conditions. The element itself contains no
data, as all required data is found in the following two attributes:
🔸 Index
Data Type |
---|
Integer |
The Index
attribute specifies the payment number in the payment stream at which
the maximum interest payment is achieved.
🔸 Pmt
Data Type |
---|
Currency |
The interest payment amount for the given Index
.
🟦 <Moneys>
→<FinFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element contains the sum of all financed fees requested for the loan. If no financed fees were requested, then this element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<FinChgFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element contains the sum of all APR affecting fees (those fees which are
added to the <FinChg>
) requested for the loan. If no APR affecting
fees were requested, then this element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<PocketFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element 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 element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<MAPRFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element 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.
Attributes: None
🟦 <Moneys>
→<Protection>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
Contains the total cost of all protection plans included with the computed loan.
For the individual plan costs, see the <ProtectionInfo>
elements described
below. The attributes of this element are as follows:
Attributes:
🔸Category
,🔹IsDp
,🔹Mandatory
,🔸PerDay
,🔸PerPmt
🔸 Category
Data Type | Values |
---|---|
Enum | See below |
This attribute specifies the category under which the computed loan protection falls. The possible values for this attribute are:
None
- No protection catetory has been identified.SP
- Single Premium protection financed at loan closing.MOB
- Monthly outstanding balance (paid on Payments).TrueMOB
- Premiums paid monthly on a date specified in the setup files.PaidSP
- Single premium protection paid at closing.ConstantMOB
- CMOB is a product paid with payments and a constant amount.AddToPmtMOB
- MOB insurance added to a constant P&I payment, resulting in variable payments.
🔹 IsDp
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
This attribute indicates if the specified account’s protection is set up as debt
protection. If this attribute 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).
🔹 Mandatory
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
This attribute should only appear in the response if the value of the attribute
is true
. If this attribute does not appear in the output, then the value of
this attribute should default to false
. If the value of the Mandatory
attribute is true
, then the total premium/fee amount for all insurance/debt
protection products has been treated as a part of the Regulation Z Finance
Charge, and hence will affect the Reg. Z APR.
🔸 PerDay
Data Type |
---|
Currency |
Contains the cost of all loan protection products expressed as dollars per day.
🔸 PerPmt
Data Type |
---|
Currency |
Contains the cost of all loan protection products expressed as dollars per payment.
🟦 <Moneys>
→<MinIntChgAdj>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a minimum interest charge is configured in the account’s setup files and the final payment was adjusted to meet this minimum interest charge, then this element will be returned in the response and will contain the value of the minimum finance charge adjustment.
Attributes: None
🟦 <Moneys>
→<MinFinChgAdj>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a minimum finance charge is configured in the account’s setup files and the final payment was adjusted to meet this minimum finance charge, then this element will be returned in the response and will contain the value of the minimum finance charge adjustment.
Attributes: None
🟦 <Moneys>
→<Fee>[]
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
For each non-zero fee requested in the loan calculation, there will be a <Fee>
element containing the computed fee amount.
Attributes:
🔹Name
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
Contains the value of the Name attribute of the corresponding
<Fee>
element from the request. If no such attribute is
present in the <Fee>
element, then none will be present
in the response element.
🟦 <Moneys>
→<ServiceCharge>[]
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
For each non-zero service charge requested in the loan calculation, there will
be a <ServiceCharge>
element containing the total service charge amount.
Attributes:
🔹Name
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
Contains the value of the Name attribute of the corresponding
<ServiceCharge>
element from the request. If no such
attribute is present in the request element, then none will be present in the
response element.
🟦 <Moneys>
→<PMI_Fee>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If PMI has been requested on the loan, and if a number of up front payments have been specified, then this element will hold the total PMI fee for all upfront payments.
Attributes: None
🟥 <Accrual>
Element Type | Data Type |
---|---|
Parent | - |
This element groups together interest accrual information, such as the accrual method used, days to the first payment, and the loan’s maturity date.
<Accrual>
<Method>Actual/365 US Rule</Method>
<Days1Pmt DayCount="Actual">74</Days1Pmt>
<Maturity>2015-07-01</Maturity>
</Accrual>
Attributes: None
🟥 <Accrual>
→<Method>
Element Type | Data Type |
---|---|
Data | Text |
The <Method>
element contains a textual description of the interest accrual
method used to compute the loan (e.g. "Unit Period 365 Simple").
Attributes: None
🟥 <Accrual>
→<Days1Pmt>
Element Type | Data Type |
---|---|
Data | Integer |
This element contains the number of days to the first payment, computed by one of two methods as specified in this element’s sole attribute.
Attributes:
🔸DayCount
🔸 DayCount
Data Type | Values |
---|---|
Enum | Actual , True360 |
Actual
- The actual number of days between these two dates are used.31
would be the day count for the 2024-01-01 to 2024-02-01.True360
- All months have 30 days.30
would be the day count for 2024-01-01 to 2024-02-01.
🟥 <Accrual>
→<Maturity>
(YYYY-MM-DD)
Element Type | Data Type |
---|---|
Data | Date |
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. Hence, a maturity date of February 15, 2020 would be specified as
<Maturity>2020-02-15</Maturity>
.
Attributes: None
🟦 <PMI>
Element Type | Data Type |
---|---|
Empty | - |
The PMI element 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
<Payment>
element, the <PmtStream>
element(s), the
<TotPmts>
element, nor the Pmt
attribute of the
<AmLine>
element.
<PMI Rate="1.00" LTV="100.00" PremiumPerYear="964.08" PremiumPerPeriod="80.34"/>
The element itself contains no data, as all associated PMI data is found in the following attributes:
Attributes:
🔹IndexToRemove
,🔹IndexToWarn
,🔸LTV
,🔸PremiumPerPeriod
,🔸PremiumPerYear
,🔸Rate
🔹 IndexToRemove
Data Type | Default |
---|---|
Integer | 0 |
This attribute only appears if the PercentToRemove PMI input attribute 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.
In the sample above, after four payments are made, the ending principal balance to home value ratio drops below 70%, and hence the calculation engine returns IndexToRemove="4". Note that no PMI is included in the amortization schedule for payment numbers four or greater.
🔹 IndexToWarn
Data Type | Default |
---|---|
Integer | 0 |
This attribute only appears if the PercentToWarn PMI input attribute is specified, and indicates that the payment index on which the remaining principal balance to home value ratio drops below the specified percentage. In the sample above, after three payments are made, the ending principal balance to home value ratio drops below 80%, and hence the calculation engine returns IndexToWarn="3".
🔸 LTV
Data Type |
---|
Decimal |
The loan to value ratio of the computed loan, expressed as a percentage.
🔸 PremiumPerPeriod
Data Type |
---|
Currency |
The periodic PMI premium amount.
🔸 PremiumPerYear
Data Type |
---|
Currency |
The annual PMI premium amount
🔸 Rate
Data Type |
---|
Decimal |
The percentage rate used in the PMI calculation.
🟥 <PmtStream>[]
Element Type | Data Type |
---|---|
Empty | - |
The <PmtStream>
element(s) describe the scheduled stream of payments for the
computed loan in the order paid. Instead of disclosing each and every payment
individually (which can be done with the <AmTable>
element), the
payment streams group together consecutive equal payments to produce a
compressed output view.
The following code translates to "Twelve consecutive payments of $879.31 computed at 10.000% begin on January 22nd, 2024".
<PmtStream Term="12" Pmt="879.31" Rate="10.000" Begin="2024-01-22"/>
Each element describes a single stream of equal payments, using the following attributes to define the important properties of each resulting payment stream:
🔸 Begin
Data Type |
---|
Date |
This attribute contains 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. In the example above, the first payment stream
is scheduled to begin on September 18, 2005. Hence, the Begin attribute for the
first payment stream element would be specified as Begin="2005-09-18"
.
🔸 Pmt
Data Type |
---|
Currency |
The Pmt
attribute contains the computed payment amount for this payment stream.
For the sample payment stream above, the payment amount is 879.31.
🔸 Rate
Data Type |
---|
Decimal |
Contains the interest rate used for the duration of this payment stream. Usually, the interest rate will remain fixed for the duration of the loan unless you are computing an adjustable rate loan or you are computing a LaserPro construction loan with permanent loan attached.
🔸 Term
Data Type |
---|
Integer |
The Term
attribute holds the number of contiguous payments that make up the
given payment stream. In the example payment stream above, the term for the
stream is 12.
🟦 <ProtectionInfo>[]
Element Type | Data Type |
---|---|
Parent | - |
These elements (there may be more than one if more than one type of protection was requested) contain information related to the various protection products requested on the given loan. Each element group provides complete results for each requested product (decreasing life, level life, disability/debt cancellation, involuntary unemployment, or personal property).
🔸 Formula
Data Type | Values |
---|---|
Enum | see Protection Formulas |
The Formula
attribute contains an abbreviated description of the formula used
to compute the desired protection product. The formula codes are described
here.
🔸 Product
Data Type | Values |
---|---|
Enum | Life , Level , Disability , Unemployment , Property |
This attribute informs the calling application to which type of protection product this element refers: decreasing life, level life, disability/debt cancellation, involuntary unemployment or personal property.
🔹 RateType
Data Type | Values |
---|---|
Enum | Fixed , Variable |
Fixed
- Protection rate stays constant during the calculations.Variable
- Protection rate changed from Joint to Single as the loan evolves.
🟥 <ProtectionInfo>
→<CalcResult>
Element Type | Data Type |
---|---|
Data | Text |
This element 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 child elements
of <ProtectionInfo>
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 child elements of
<ProtectionInfo>
, as the product was not computed.
<CalcResult>Valid Calculation</CalcResult>
Attributes: None
🟥 <ProtectionInfo>
→<Cost>
Element Type | Data Type |
---|---|
Empty | - |
Attributes of this empty element 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.
The only time there will be two <Cost>
elements to parse is when the account
has been set up to use Plateau’s Uniguard product, and the user has requested
joint coverage. If this is the case, then two <Cost>
elements are provided to
disclose two premiums instead of a single aggregate joint premium.
<Cost Premium="827.26" PerPmt="19.28" PerDay="0.63" Factor="1.0154"/>
🔸 Factor
Data Type |
---|
Decimal |
The rate factor used to compute the premium for the requested protection product.
🔸 PerDay
Data Type |
---|
Currency |
The daily cost of coverage, expressed in dollars.
🔸 PerPmt
Data Type |
---|
Currency |
The cost of coverage expressed as dollars per payment.
🔸 Premium
Data Type |
---|
Currency |
The total cost for this protection over the term of the loan.
🟥 <ProtectionInfo>
→<Coverage>
Element Type | Data Type |
---|---|
Empty | - |
The aggregate coverage amount and note are provided in the following attributes of this empty element:
<Coverage Amount="75000.00" Note="Partial Coverage of $75,000"/>
🔸 Amount
Data Type |
---|
Currency |
This attribute contains the aggregate coverage amount for this protection product.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🟥 <ProtectionInfo>
→<Benefit>
Element Type | Data Type |
---|---|
Empty | - |
This empty element will only show up for the disability and involuntary unemployment products.
<Benefit Amount="1000.00" Note="Partial Benefit of $1,000"/>
🔸 Amount
Data Type |
---|
Currency |
Attribute which contains the monthly benefit amount for this protection product.
🔸 Note
Data Type |
---|
Text |
This Note
will describe 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.
🔹 Periodic
Data Type | Default |
---|---|
Currency | n/a |
If the account has been configured to disclose periodic benefits (as opposed to
monthly benefit amounts, which are returned in the Amount
attribute described above), and if the specified payment frequency is other than
monthly, then this attribute will be present and will hold the periodic benefit
amount.
🟦 <ProtectionInfo>
→<CovTerm>
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the term of coverage for the requested product. If the request has specified the coverage term, then this element will be populated with that term.
<CovTerm InMonths="75" InPmts="75" Maturity="2018-09-22" Note="Truncated: Keep Benefit"/>
🔹 InDays
Data Type | Default |
---|---|
Integer | n/a |
Attribute which expresses the term of coverage in days. This attribute will only be present for the level life product, and even then only if needed (for example, when covering single payment notes).
🔸 InMonths
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of months.
🔸 InPmts
Data Type |
---|
Integer |
Contains the number of payments covered.
🔸 Maturity
(YYYY-MM-DD)
Data Type |
---|
Date |
This attribute contains the maturity date for the requested coverage. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🟦 <ProtectionInfo>
→<Borrower>[]
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the term of
coverage of a specified borrower, for the requested product. Note that this
element will only be present if the input XML request has specified
ShowBorrowerInfo
= "true"
, and a valid
birthdate was provided. The following attributes are defined for this purpose:
Attributes:
🔸AgeAtIssue
,🔸AgeAtMaturity
,🔸Birthday
,🔸Maturity
,🔸Months
,🔸Note
,🔸Pmts
🔸 AgeAtIssue
Data Type |
---|
Special - see below |
If coverage is written on this borrower, then the value of this attribute 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.
🔸 AgeAtMaturity
Data Type |
---|
Special - see below |
If coverage is written on this borrower, then the value of this attribute 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.
🔸 Birthday
Data Type |
---|
Date |
This attribute contains the birthday associated with the borrower, as specified in the request. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🔸 Maturity
Data Type |
---|
Date |
The value of this attribute contains the coverage maturity date for this particular borrower.
🔸 Months
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of months.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🔸 Pmts
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of payments.
🟦 <ProtectionInfo>
→<Caps>
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the maximum
terms, amounts, and ages associated with the requested product. This element
will only be present if the ShowCaps
attribute
of the <Protection>
element is set to true
.
<Caps Cov="75000" Ben="1000" Term="84" InceptAge="65" AttainAge="66"/>
Attributes:
🔸AttainAge
,🔸Ben
,🔸Cov
,🔸InceptAge
,🔸Term
🔸 AttainAge
Data Type |
---|
Integer |
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.
🔸 Ben
Data Type |
---|
Currency |
Contains the maximum monthly benefit amount, expressed in dollars. If no cap is present or applicable, then a value of zero is returned.
🔸 Cov
Data Type |
---|
Currency |
Contains the maximum aggregate coverage amount, expressed in dollars. If no cap is present or applicable, then a value of zero is returned.
🔸 InceptAge
Data Type |
---|
Integer |
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.
🔸 Term
Data Type |
---|
Integer |
Contains the maximum coverage term, expressed in months. If no cap is present or applicable, then a value of zero is returned.
🟦 <AmTable>
Element Type | Data Type |
---|---|
Parent | - |
This element (if present) contains child elements which describe the loan's
amortization information. This element (and all of its child elements) will only
be present if the HideAmort
property of the
root element of the input query is set to false
.
<AmTable>
Attributes will only occur as feedback data for Canadian APR's.
🔹 AvgBal
Data Type | Default |
---|---|
Currency | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute is the average balance of the loan used in the Canadian APR calculation.
🔹 Months
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🔹 OddDays
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🔹 Weeks
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🟦 <AmTable>
→<GrandTotals>[]
Element Type | Data Type |
---|---|
Empty | - |
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 the following attributes:
<GrandTotals PmtTot="10551.72" IntTot="551.68" PrinTot="10000.04"/>
Attributes:
🔹AHTot
,🔹CLTot
,🔸IntTot
,🔹IUTot
,🔹PMITot
,🔸PmtTot
,🔸PrinTot
,🔹SCTot
🔹 AHTot
Data Type | Default |
---|---|
Currency | 0 |
The AHTot
attribute 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 over the duration
of the loan.
🔹 CLTot
Data Type | Default |
---|---|
Currency | 0 |
The CLTot
attribute 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.
🔸 IntTot
Data Type |
---|
Currency |
Contains the sum of all interest attributes in the AmLine
elements.
This amount will be different from the <Interest>
element if
there is a nonzero EndBal
for the final line of
amortization. The two will differ by this non-zero EndBal
.
🔹 IUTot
Data Type | Default |
---|---|
Currency | 0 |
The IUTot
attribute 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 over the
duration of the loan.
🔹 PMITot
Data Type | Default |
---|---|
Currency | 0 |
The PMITot
attribute 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.
🔸 PmtTot
Data Type |
---|
Currency |
Contains the total of payments scheduled for the computed loan.
🔸 PrinTot
Data Type |
---|
Currency |
Like IntTot
above, this attribute contains the total
amount paid to principal during the loan term, assuming all payments are made as
scheduled.
🔹 SCTot
Data Type | Default |
---|---|
Currency | 0 |
The SCTot
attribute will only appear on loans with service charges. It
contains the total service charge amount paid over the duration of the loan.
🟦 <AmTable>
→<SubTotals>[]
Element Type | Data Type |
---|---|
Empty | - |
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 <SubTotals>
element present. The element itself is empty, as all the
interesting categories are found in the following attributes:
<SubTotals Year="2024" Start="1" Events="12" PmtSub="10551.72" IntSub="551.68" PrinSub="10000.04"/>
Attributes:
🔹AHSub
,🔹CLSub
,🔸Events
,🔸IntSub
,🔹IUSub
,🔹PMISub
,🔸PmtSub
,🔸PrinSub
,🔹SCSub
,🔸Start
,🔸Year
🔹 AHSub
Data Type | Default |
---|---|
Currency | 0 |
The AHSub
attribute 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
.
🔹 CLSub
Data Type | Default |
---|---|
Currency | 0 |
The CLSub
attribute 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
.
🔸 Events
Data Type |
---|
Integer |
This attribute defines the number of amortization events (contained in
<AmLine>
elements which are defined below) which belong to this
calendar Year
.
🔸 IntSub
Data Type |
---|
Currency |
Holds the total amount paid to interest over the Year
in
question, assuming all payments are made as scheduled.
🔹 IUSub
Data Type | Default |
---|---|
Currency | 0 |
The IUSub
attribute 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
.
🔹 PMISub
Data Type | Default |
---|---|
Currency | 0 |
The PMISub
attribute 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 upfront periodic PMI premiums) for PMI during
the Year
.
🔸 PmtSub
Data Type |
---|
Currency |
Contains the total of payments scheduled for the Year
in
question.
🔸 PrinSub
Data Type |
---|
Currency |
Like IntSub
above, this attribute contains the total
amount paid to principal during the Year
in question,
assuming all payments are made as scheduled.
🔹 SCSub
Data Type | Default |
---|---|
Currency | 0 |
The SCSub
attribute will only appear on loans with service charges. It
contains the total of service charges paid during the Year
.
🔸 Start
Data Type |
---|
Integer |
This attribute defines the first amortization event which falls in the specified
calendar Year
. To find the <AmLine>
element
which corresponds to this value, match the Idx attribute of the
<AmLine>
element with the integer value reported by this attribute.
🔸 Year
Data Type |
---|
Integer |
The given calendar year for which the subtotal data is applicable.
🟥 <AmTable>
→<AmLine>[]
Element Type | Data Type |
---|---|
Empty | - |
There is one <AmLine>
element 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.) However, some loan protection methods (TruStage's monthly
renewable product, to be exact) have amortization events which correspond to
loan protection premiums being added to the loan balance on specific dates.
<AmLine Idx="1" Date="2024-01-01" BegBal="10000.00" Pmt="879.31" Int="84.93" Prin="794.38" EndBal="9205.62"/>
As with the <GrandTotals>
and <SubTotals>
elements, this element is empty and contains all of the useful information for a
given point in the amortization of a loan in the following attributes.
Attributes:
🔹AH
,🔸BegBal
,🔹CL
,🔸Date
,🔸EndBal
,🔸Idx
,🔸Int
,🔹IU
,🔹PMI
,🔸Pmt
,🔸Prin
,🔹SC
,🔹UnpaidInt
🔹 AH
Data Type | Default |
---|---|
Currency | 0 |
The AH
attribute 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.
🔸 BegBal
Data Type |
---|
Currency |
The principal balance before the amortization event occurs.
🔹 CL
Data Type | Default |
---|---|
Currency | 0 |
The CL
attribute 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.
🔸 Date
Data Type |
---|
Currency |
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.
🔸 EndBal
Data Type |
---|
Currency |
The principal balance amount, after the amortization event has taken place.
🔸 Idx
Data Type |
---|
Integer |
The index of the amortization event, which is either the payment number, or zero. A value of zero designates a protection premium that was charged on a date other than a payment date. (Occurs with protection category "TrueMOB").
🔸 Int
Data Type |
---|
Currency |
The amount of the payment which goes to pay interest.
🔹 IU
Data Type | Default |
---|---|
Currency | 0 |
The IU
attribute 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.
🔹 PMI
Data Type | Default |
---|---|
Currency | 0 |
This attribute contains the PMI premium for this payment.
🔸 Pmt
Data Type |
---|
Currency |
The amount of the payment (or zero if the event is a "TrueMOB" protection premium).
🔸 Prin
The amount of the payment which goes to reduce the principal balance.
🔹 SC
Data Type | Default |
---|---|
Currency | 0 |
This attribute contains the total service charge for this payment, and will only be present if one or more service charges were requested with the loan.
🔹 UnpaidInt
Data Type | Default |
---|---|
Currency or Decimal | 0 |
This attribute 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 places. If rounded, then the unpaid interest is displayed to two (2) decimal places.
🟦 <Metavante>
Element Type | Data Type |
---|---|
Empty | - |
This element will only be present if the
Metavante
attribute of the root element is
set to true
. The element itself is empty, as all of the useful information is
in the following attributes:
Attributes:
🔸FormsTerm
,🔸HostTerm
🔸 FormsTerm
Data Type |
---|
Integer |
The number of months in the loan, as computed using the Metavante FORMS method.
🔸 HostTerm
Data Type |
---|
Integer |
The number of months in the loan, as computed using the Metavante HOST method.
Roll to Term - Request
The roll to term request is almost identical to the compute payment request, with the following differences:
- The root element is
<inEQUAL_TERM>
instead of<inEQUAL_PMT>
. - There is no
<Term>
element present, since this is the value we are solving for. - The new
<Payment>
element allows the calling application to specify a maximum desired payment amount.
Note that the term returned will be the minimum term such that the computed payment is less than or equal to the specified payment. Since the number of payments in a loan is an integer, it is most often the case that the resulting payment will not exactly match the desired payment. However, it is guaranteed to be less than or equal to the desired payment.
Please see the Legend to understand the conventions used to document each element and attribute. Note that for requests, the XML elements are documented in alphabetical order by parent element.
🟥 <inEQUAL_TERM>
Element Type | Data Type |
---|---|
Parent | - |
This element is the root element for the request. It is a parent element that has no data, but does have several attributes that offer a wide variety of adjustments.
Attributes:
🔹Account
,🔹AccrualCode
,🔹AprType
,🔹Country
,🔹DataDirPath
,🔹ForceReload
,🔹HideAmort
,🔹Lastday
,🔹MAPR_Max
,🔹Metavante
,🔹OddFinal
,🔹PmtDollarRound
,🔹PmtRound
,🔹PPY
,🔹UseMAPR
,🔹YieldPPY
🔹 Account
Data Type | Values | Default |
---|---|---|
Integer | [1...9999] | 1 |
This attribute specifies which account should be used to compute the requested
loan. Each account is numbered from 1 to 9,999, and each account corresponds to
a set of setup files which define numerous settings which may affect the loan
calculation, such as the accrual method, insurance methods and rates, etc. If
this attribute is not specified, a default value of 1
will be used.
🔹 AccrualCode
Data Type | Values | Default |
---|---|---|
Enum | See table | default |
This property allows an accrual method to be used other than the accrual method dictated by the setup file for the given account. If no accrual code attribute is specified, the method defined in the setup file will be used. The Accrual Code Table lists all valid accrual codes available. Note that for the split rate accrual codes (i.e. those above 500), the split rate tiers must be defined in the setup file.
🔹 AprType
Data Type | Values | Default |
---|---|---|
Enum | See below | default |
This attribute allows the calling application to specify an APR calculation method which will override the default value found in the setup file for the given account. If this attribute is set to a valid value, then the specified method will be used to compute the APR for this loan calculation.
If the Country
attribute has been set by the calling
application and this attribute is not set, then the APR method used will be
determined by the specified country. For the United States of America, the
default APR method is actuarial
. For a country in the European Union, the
default value is eu
(European Union APR). For Canada, the default APR method
is ca
(Canadian APR).
default
- Use setup file value.actuarial
- Appendix J Actuarial APRusrule
- US Rule APReu
- European Union APRca
- Canadian APRxirr
- Extended Internal Rate of Return (same as excel function)xirr360
- XIRR using a 360 divisor rather than a 365 divisorirr
- Simple Internal Rate of Return (same as excel function)
If this attribute is not specified and the Country
attribute
is not specified, then the value of default
will be used which informs the SCE
to use the APR method defined in the setup file for the specified
Account
.
🔹 Country
Data Type | Values | Default |
---|---|---|
Alpha-2 or Numeric-3 code | See table | US |
This attribute allows the calling application to specify a two (2) character or
three (3) digit country code. If none is provided, then a default value of US
will be used. Please see the Country Codes Table for the
list of supported countries and their associated codes.
Currently, the country code is used to determine the default value of the
AprType
attribute (see above).
🔹 DataDirPath
Data Type | Values | Default |
---|---|---|
Text | See below | See below |
If this attribute is set, the SCE will look for a data folder containing the
setup files in the path specified. Thus, if the DataDirPath
is set to
C:\SCEX\
, the SCE will look for the setup files in C:\SCEX\data
.
If the calling application wishes to specify the data directory path in its
entirety (e.g. the calling app does not want the SCE to append \data
to the
provided path), then simply terminate the specified DataDirPath
with an
asterisk (*
). Thus, if the DataDirPath
is set to C:\SCEX\bank1\*
, the SCE
will look for the setup files in C:\SCEX\bank1\
.
If this attribute is not set, the SCE will attempt to locate the data folder in
the default data directory path location, which can be retrieved using the
<inVERSION>
module query, and set via the SCE API.
This attribute is useful if you wish to use only a single installation of the
SCE, but have many different setup file groupings. By specifying a different
DataDirPath
for each grouping, you can easily separate the groups from one
another instead of grouping them all together in a single directory.
🔹 ForceReload
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
The SCE caches setup files previously used. This improves performance for
subsequent loan requests using one of the cached accounts. However, if you need
the SCE to reload the setup files for a given request (e.g. you just copied
over new setup files), then you can set this attribute to true
and the setup
files will be forced to reload. If left at the default value of false
, then
setup files are only reloaded when the SCE notices that one of the setup files
has been modified.
🔹 HideAmort
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
This attribute determines whether or not an amortization schedule will be
included in the response, given a successful loan calculation. If you do not
require the use of the amortization schedule, then setting this attribute to
true
will suppress its output. The default value of false
will return the
amortization schedule as part of the response.
🔹 Lastday
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If present, this attribute overrides the Last Day setting in the setup files, which only applies to loans computed with an actual day interest accrual calendar where the first payment date falls at the end of a month with fewer than 31 days. As an example, if the first payment date is on April 30, should the following payment dates be made on the 30th of each month, or on the last day of the month?
If no value is specified for this attribute, then the setup file setting will be
used. If true
is specified, then conditions triggering a last day situation
will result in payments which fall at the end of the month. A value of false
indicates that when dictated, subsequent payment dates will not be moved to the
last day of the month.
🔹 MAPR_Max
Data Type | Values | Default |
---|---|---|
Decimal | [-99.999...600] | 36.0 |
If you are computing the Military APR (see UseMAPR
below) and
wish to override the default maximum APR value of 36
%, then specify the
desired maximum as the value of this attribute.
🔹 Metavante
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to a value of true
, then the
<Metavante>
element will be included in the
response. Also, some loans will also disclose
<MinInterestPmt>
and
<MaxInterestPmt>
elements.
🔹 OddFinal
Data Type | Values | Default |
---|---|---|
Enum | default , true , false , 1 , 0 | default |
This attribute allows the calling application to specify an odd final payment
calculation method which will override the default value found in the setup file
for the given account. If not specified, then the value of default
will be used.
Odd final payments are sometimes desired to produce perfect amortization (i.e. an ending balance of zero after the final payment is made).
🔹 PmtDollarRound
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Payments are normally rounded to the penny, according to the method specified by
the PmtRound attribute (see below). If the payment should be rounded to the
dollar instead of the penny, then set the value of this attribute to true
.
Note that for some loans (such as those with longer terms or relatively small proceeds), rounding the payment up or to the nearest dollar may require a shortened loan term to prevent one or more negative payments at the end of the loan.
🔹 PmtRound
Data Type | Values | Default |
---|---|---|
Enum | default , nearest , up , down , best | default |
This attribute allows the calling application to specify a payment rounding
option which will override the value found in the setup file. If not specified,
then the value of default
will be used.
default
- Use method specified in setup file.nearest
- Round computed payment to the nearest penny, using 5/4 rounding. e.g. 300.242 = 300.24, 300.245 = 300.25.up
- Round computed payment up to the next penny. e.g. 300.241 = 300.25.down
- Round computed payment down to the previous penny. e.g. 300.249 = 300.24.best
- Once the unrounded payment has been computed, amortize the loan using the rounded down and rounded up payment, and then return the payment which amortizes the loan’s ending balance closest to zero.
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | See below | monthly |
PPY is an abbreviation for payments per year, and as one might surmise,
determines the payment frequency for the loan. The default value of monthly
will
result in a loan with 12 payments per year. If you require a loan with a payment
frequency other than monthly, specify it using this attribute.
Value | Translation | Description |
---|---|---|
1 | Annual | Once Per Year |
2 | SemiAnnual | Twice Per year (every six months) |
4 | Quarterly | Four per year (every three months) |
6 | Bimonthly | Six per year (every two months) |
12 | Monthly | Twelve per year (every month) |
24 | Semimonthly | Twice Per Month* |
26 | Biweekly | Every two weeks |
52 | Weekly | Every week |
* Semimonthly loans are characterized by making two payments per month on the same days. A common semimonthly schedule is to make payments every 1st and 16th of the month. Another common schedule is the 15th and the end of every month.
🔹 UseMAPR
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to a value of true
, the SCE will compute the Military
APR in addition to the Regulation Z APR. The <MAPR>
element will be included in the XML loan response.
🔹 YieldPPY
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 , 4 , 6 , 12 | 0 |
Canadian mortgages may compute periodic interest using a fractional power of a
periodic yield. If set to a value other than 0
, this value determines the
period. Please contact us for further information if you support mortgage
calculations in Canada. Note that when using this attribute with a value other
than zero, the calling application must include an odd days prepaid fee in the
request.
🟦 <Construction>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | Not a construction loan |
Include the <Construction>
element to configure a construction period on a
loan. The use of this element requires setup files configured to support
construction loans, or specification of the Method
to be used.
If the specified account is not set up to support construction loans, this
element will be ignored.
Attributes:
🔹Accrual
,🔹Active
,🔹HalfCommitment
,🔹Method
,🔹PermanentAttached
,🔹PPY
,🔸Rate
,🔸Term
,🔹UnitOddDayDivisor
🔹 Accrual
Data Type | Values | Default |
---|---|---|
Enum | default , unitperiod , actual360 , actual365 | default |
If the loan request is a construction loan with no permanent loan attached, this attribute allows the calling application to specify the accrual method used.
default
- The setup files determine the default value for interest accrual.unitperiod
- Compute periodic interest using a 1/PPY factor.actual360
- Compute periodic interest using the actual # of days between payments/360.actual365
- Compute periodic interest using the actual # of days between payments/365.
🔹 Active
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this loan request includes a construction loan, then set this attribute to
true
. If no construction loan is desired, either do not specify the
<Construction>
element or set this attribute to false
.
🔹 HalfCommitment
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
During the term of the construction loan, the estimated interest for disclosure
purposes may be either computed on the full or half commitment amounts. By
setting this attribute to true
, interest will be estimated using half of the
initial commitment amount (i.e. the principal balance). The default value of
false
will cause interest to be estimated using the entire initial commitment
amount.
🔹 Method
Data Type | Values | Default |
---|---|---|
Enum | default , simple , laserpro , intonly | default |
There are three methods used to define how construction loans are computed and
disclosed. A method of default
tells the SCE to use the method
configured in the setup file. The meaning of the three methods are as follows:
simple
- Compute an aggregate construction interest amount for the entire construction period for both pure construction loans and construction to permanent loans.laserpro
- Compute an aggregate construction interest amount for the entire construction period for pure construction loans. For construction to permanent loans, compute and disclose discrete interest-only payments during the construction period.intonly
- Compute and disclose discrete interest-only payments during the construction period for both pure construction loans and construction to permanent loans.
🔹 PermanentAttached
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Construction loans may be computed on their own, or they may be attached to a
permanent loan which begins at the conclusion of the construction loan. If a
permanent loan is attached to the construction loan, then set this attribute’s
value to true
and set up the permanent loan information in the request
elements.
The default value of false
indicates that this is solely a construction loan
with no permanent attached. In this case, you still need to set up the
<LoanDate>
, <PmtDate>
and <Proceeds>
elements.
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | 1 , 2 , 4 , 6 , 12 , 24 , 26 , 52 | 12 |
The PPY
attribute allows the calling application to specify the payment
frequency during the construction period. The default value of monthly will
result in a construction loan with 12 payments per year. If you require a
payment frequency during the construction period other than monthly, then
specify it using this attribute. Note that if a permanent loan is attached to
the construction loan, that the permanent loan's payment frequency may differ
from the construction period’s payment frequency.
🔸 Rate
Data Type | Values | Default |
---|---|---|
Decimal | [-99.999...600] | 0 |
This attribute determines the rate applied to the appropriate commitment amount during the term of the construction loan.
🔸 Term
Data Type | Values | Default |
---|---|---|
Integer | [1...60] * | 0 |
The term of the construction loan (in payments) is specified using this attribute. Please note that the term may not exceed five years.
* 60 is the maximum number of months in the Construction period. In general, the maximum entry is 5 *
PPY
, where the PPY is the payments per year attribute of the<Construction>
element.
🔹 UnitOddDayDivisor
(enum, [], Ignore)
Data Type | Values | Default |
---|---|---|
Enum | ignore , 360 , 365 , vardpy | ignore |
When specifying an Accrual
method of type unitperiod
, this
attribute allows the calling application to specify how odd days between the
loan and first payment dates are taken into account.
ignore
means that all odd days are ignored, and the calculation will assume
one full unit period. 360
and 365
will compute the actual number of days
between the loan date and first payment date, and then use either a 360 or 365
divisor to determine the amount of interest accrued during that period. vardpy
accrues interest in the same manner as accrual code 250/350.
🟦 <Fee>[]
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No fee |
Unlike most other elements, any number of fees may be defined, or none at all. All of the information used to compute a fee is contained in its attributes.
Attributes:
🔹AddToFinChg
,🔹AddToPrin
,🔹Adjust
,🔹CalcType
,🔸Entry
,🔹IsLoanCost
,🔹MAPR
,🔹MaxValue
,🔹MinValue
,🔹Name
🔹 AddToFinChg
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
If this fee should be included in the Reg. Z Finance Charge (and hence, affect
the APR), then set this attribute to true
. The default value of false
indicates that the fee does not affect the Finance Charge nor APR.
🔹 AddToPrin
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this fee should be added to the principal balance (e.g. the fee is financed
along with the amount requested), then set this attribute to true
. If set to
false
, then the fee is paid up front out of the borrower’s pocket.
🔹 Adjust
Data Type | Values | Default |
---|---|---|
Currency | any | 0 |
The optional attribute Adjust
allows the calling application to increase or
decrease the base amount on which a fee is calculated. If a negative value is
specified and this adjustment would produce a negative base amount, then a value
of zero is returned for the given fee. This attribute has no effect on fees with
a CalcType
of Dollar
.
As an example, in Tennessee you may need to define a financed, non-APR affecting fee to be computed by decreasing the amount financed by $2,000, and then multiplying this reduced amount by 0.115. The way to accomplish this in the SCEX is as follows:
<Fee CalcType="OnAmtFin" Entry="0.115" Adjust="-2000" AddToPrin="true" AddToFinChg="false" />
🔹 CalcType
Data Type | Values | Default |
---|---|---|
Enum | Dollar , OnProceeds , OnAmtFin , OnPrin , DocStamp | Dollar |
The value of this attribute determines how the fee is to be computed, as described below:
Dollar
- TheEntry
attribute is understood as a flat dollar amount.OnProceeds
- TheEntry
attribute is understood as a percentage value, to be applied to the loan’s proceeds. AnEntry
of1.0
would represent a fee of 1.0% of proceeds.OnAmtFin
- TheEntry
attribute is understood as a percentage value, to be applied to the Amount Financed. AnEntry
of0.5
would represent a fee of 0.5% of Amount Financed.OnPrin
- TheEntry
attribute is understood as a percentage value, to be applied to the loan’s principal balance. AnEntry
of0.125
would represent a fee of 0.125% of principal balance.DocStamp
- TheEntry
attribute is understood as a Florida doc stamp rate, to be applied to the loan’s principal balance. AnEntry
of0.35
would represent a fee of 0.35% of the principal balance. You must set the AddToFinChg attribute to false, otherwise the doc stamp fee will return a value of zero.
🔸 Entry
Data Type | Values |
---|---|
Decimal or Currency | >= 0 |
The Entry
is the basic starting point fee value that determines the dollar
value of the resulting fee computation. How this attribute is interpreted
depends upon the CalcType
attribute, described above. This
value is either a dollar value or a percentage (aka "points").
🔹 IsLoanCost
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
When requesting the new TILA RESPA outputs (via the
<TILARESPA2015>
element), the SCE needs to know which fees need
to be considered borrower paid loan costs, as defined in the rule. Please note
that if the fee is paid by a lender or other third party, then the fee does not
affect the loan calculation and should not be sent to the SCE. If it is sent,
then the value of this attribute should be set to false
.
🔹 MAPR
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If you wish to compute the Military APR, then certain fees may not be considered
Regulation Z APR affecting fees, but are considered Military APR affecting fees.
In this case, you will need to set the value of this attribute to true
.
Fees which are added to the finance charge (e.g.
AddToFinChg
="true"
) are always considered MAPR fees,
regardless of the stated value of this attribute.
Note that debt protection products are automatically included in the calculation of the Military APR, no matter what method is used for payment (e.g. single premium vs. monthly outstanding balance).
🔹 MaxValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If a maximum value for the fee is specified and is greater than zero, then if the computed fee exceeds this maximum value, then this maximum value will be used instead. If no maximum value is specified or is set to a value of zero, then no maximum will be enforced. Please note that this attribute is applied to all fee types documented.
🔹 MinValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If a minimum value for the fee is specified and is greater than zero, and if the
Entry
attribute holds a value greater than zero, then if the
computed fee is less than this minimum value, then this minimum value will be
used instead. If no minimum value is specified or is set to a value of zero,
then no minimum will be enforced. If a specified minimum value exceeds a
specified maximum value, then the minimum value will be ignored. Please note
that this attribute is applied to all fee types documented.
🔹 Name
Data Type | Values | Default |
---|---|---|
Text | any | n/a |
This attribute is for convenience purposes only, and does not affect the
calculation of the fee in any manner. If a Name
attribute is specified for the
<Fee>
element, then the corresponding <Fee>
element in the XML output will have a Name
attribute with the same value. This allows you to easily differentiate fees in
the response.
🟦 <Format>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | See attributes |
The <Format>
element is one of the first elements parsed from a request, as the
attributes of this empty element affect how date and numeric values are parsed
and validated.
Attributes:
🔹CurrencyDecimals
,🔹DateFormat
,🔹DateSeparator
,🔹DecimalSeparator
,🔹StrictDP
,🔹ThousandSeparator
🔹 CurrencyDecimals
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 | 2 |
When displaying and parsing Currency values, the value of this attribute
determines the maximum number of decimal places allowed after the
DecimalSeparator
.
🔹 DateFormat
Data Type | Values | Default |
---|---|---|
Enum | YMD , MDY , DMY | YMD |
When displaying and parsing Date values, this field determines the expected
format for all Date fields. The following DateFormat
options are allowed:
YMD
- All dates should be formatted as YYYY-MM-DD.MDY
- All dates should be formatted as MM-DD-YYYY.DMY
- All dates should be formatted as DD-MM-YYYY.
Note that the character which separates the individual month, day, and year
portions of the date is configurable via the
DateSeparator
attribute.
🔹 DateSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | - |
When displaying and parsing Date values, this attribute determines the character used to separate the individual month, day, and year portions of a date.
🔹 DecimalSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | . |
When displaying and parsing Currency or Decimal numeric values, this attribute determines the character used to separate the fractional part from the whole.
🔹 StrictDP
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 , | false |
If the value of this attribute is true
, then the SCE will strictly verify the
number of decimal places allowed for currency input values. Thus, if the calling
application sends in a request with a currency amount of 1000.005
, the SCE
will return an error code.
If the value of this attribute is false
, then currency values sent in with an
invalid number of decimal places will be rounded to the correct number of
decimal places by the SCE (using five/four rounding), and a warning message with
this information will be returned with the response.
🔹 ThousandSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | , |
When displaying numeric values, this attribute determines the character used to separate the thousands places from the hundreds. Note that when parsing numeric values, the value of this attribute is ignored.
🟥 <IntRate>
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | [-99.999...600] |
The element data will determine the annual interest rate used for the loan. (Split rate loans require use of the setup files.)
The interest rate should be expressed as an annual percentage. For example, a loan computed with an interest rate of 6.125% would be specified as:
<IntRate>6.125</IntRate>
Attributes: None
🟦 <IntStartDate>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= <LoanDate> and <= <PmtDate> | <LoanDate> |
This element contains the date on which interest begins to accrue on the loan’s
principal balance. If this element is not specified, then the interest start
date is defaulted to be the <LoanDate>
. Also note that the
interest start date must be equal to the loan date when computing a construction
loan. The interest start date (when specified) must be on or after the loan
date, as well as on or before the <PmtDate>
. All dates must be in
the form of YYYY-MM-DD, and be 10 characters long. Hence, an interest start date
April 27, 2024 would be specified as:
<IntStartDate>2024-04-27</IntStartDate>
Attributes: None
🟥 <LoanDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= 1900-01-01 |
This element determines when interest begins to accrue. If interest begins on a
later date, use the <IntStartDate>
element to define the date
on which interest begins to accrue.
This element contains the date on which the loan amount is disbursed and interest begins to accrue. All dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a loan date of March 4, 2024 would be specified as:
<LoanDate>2024-03-04</LoanDate>
Attributes: None
🟦 <Mortgage_Insurance>
Element Type | Data Type | Values | Default |
---|---|---|---|
Parent | - | - | No mortgage insurance |
The <Mortgage_Insurance>
element determines if this loan includes one of the
supported types of mortgage insurance (MI) - PMI or FHA. This element contains
child elements which further specify mortgage insurance options.
NOTE: Mortgage insurance is only supported on equal, balloon, and interest only loan builder requests at this time.
Attributes:
🔹CashDown
,🔹LoanAmt
,🔸PropertyValue
,🔹Type
🔹 CashDown
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
The CashDown
attribute represents a cash down payment made at closing. If
specified and greater than zero, this amount will be deducted from the principal
balance. If not specified, the cash down payment will default to zero.
🔹 LoanAmt
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | Principal balance |
The LoanAmt
attribute represents the amount by which the PMI rates are
multiplied to produce a level PMI premium. If not specified, then the principal
balance will be used to compute the annual premium.
🔹 PropertyValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
This attribute’s value represents the appraised property value, and will be used in the calculation of the loan to value ratio.
🔹 Type
Data Type | Values | Default |
---|---|---|
Enum | pmi , fha | pmi |
This attribute determines the type of mortgage insurance to include with the
loan. If the Type
attribute is set to FHA
, a different MI premium is
computed every twelve months based upon the average outstanding principal
balance during that same term. The MI calculation adheres strictly to the HUD
regulation.
🟥 <Mortgage_Insurance>
→<MI_Rate>[]
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | >= 0 |
The value of this element specifies the cost of mortgage insurance per $100 of
the loan amount. Note that there may be more than one <MI_Rate>
element
defined in an XML loan request (see the Switch
attribute
below).
As an example, a loan computed with a MI rate of $1.50 per $100 would be
specified as <MI_Rate>1.50</MI_Rate>
.
Attributes:
🔸Switch
🔹 Switch
Data Type | Values | Default |
---|---|---|
Integer | > 0 | 0 |
This optional attribute defines the payment number beyond which the associated MI rate will apply. If not specified, the value will default to zero.
Thus, if there is only a single MI rate, one may omit this attribute. Single rate example (use a rate of $1.50 for the entire term of MI coverage):
<MI_Rate>1.50</MI_Rate>
Multiple rate example (use a rate of $1.50 for the first 10 years, with a rate of $0.20 for coverage beyond 10 years):
<MI_Rate>1.50</MI_Rate>
<MI_Rate Switch="120">0.20</MI_Rate>
🟦 <Mortgage_Insurance>
→<Periodic>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Integer | >= 0 | 0 |
The value of this element represents the term beyond which MI is no longer
included. As an example, if mortgage insurance must be removed after the 180th
payment, then the calling application should specify <Periodic>180</Periodic>
in the XML loan request. 0
means no term removal is in effect.
🔹 DropLTV
Data Type | Values | Default |
---|---|---|
Decimal | >= 0 and <= 100 | 0 |
The value of this attribute determines the loan to value ratio at which MI
should be removed, and is expressed as a percentage. For example, if you wish to
automatically drop MI when the loan to value ratio first equals or falls below
78%, then you would specify DropLTV="78.0"
.
🔹 WarnLTV
Data Type | Values | Default |
---|---|---|
Decimal | >= 0 and <= 100 | 0 |
The value of this attribute determines the loan to value ratio at which a
warning should be issued, and is expressed as a percentage of LTV (loan to
value). For example,if you wish to know when the loan to value ratio first
equals or falls below 80%, then you would specify WarnLTV="80.0"
.
🟦 <Mortgage_Insurance>
→<UpFront>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Decimal | >= 0 | 0 |
This element determines the up front fee for mortgage insurance, as disclosed in
the <PMI_Fee>
element in the results. If this element is not
specified, no up front fee will be computed. Note that ZOMP (zero option monthly
premium) products do not have an up front fee, which means that this element can
be omitted or set to zero.
The following attributes define how the fee is computed and disclosed.
🔹 Paid
Data Type | Values | Default |
---|---|---|
Enum | Financed , AtClosing , ByLender | AtClosing |
If the value of this attribute is set to Financed,
then the computed up front
fee will be added to the principal balance and the finance charge. A value of
AtClosing
will cause the value of the fee to be added to the finance charge
alone. Finally, a value of ByLender
means that the up front fee is to be paid by
the lender; hence, the value of the fee is a Pocket Fee that is not added to
either the principal balance nor the finance charge.
🔹 Units
Data Type | Values | Default |
---|---|---|
Enum | Months , Points , Years | Months |
If the Units attribute is set to Months
, the value of the
<UpFront>
element represents the number of periodic MI premiums to
be paid at closing.
If the Units attribute is set to Years
, the value of the
<UpFront>
element represents the number of annual MI premiums to
be paid at closing.
Many single premium products define the up front fee as a number of years of MI to be paid up front.
Finally, if the Units attribute is set to Points
, the value of the
<UpFront>
element represents the percentage of principal to be
paid up front. As of October 3, 2011, FHA loans use points.
🟦 <OddDaysPrepaid>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No odd days prepaid interest |
If odd days interest should be treated as a prepaid finance charge or added to the first payment, then include this empty element in the request. The attributes of this element determine how odd days interest is computed and handled.
Attributes:
🔹AccrualCode
,🔹AddToPmt
,🔹AddToPrin
,🔹AnchorDate
,🔹ForceUnitPeriod
,🔹NoCap
,🔹UseDailyCost
,🔹UseNegODI
🔹 AccrualCode
Data Type | Values | Default |
---|---|---|
Enum | See below | 220 |
The accrual code defines how the odd days interest is computed.
Note that accrual code 250
("Variable Days Per Year") defines the basis divisor
days to be equal to 12 multiplied by the number of days in the month of the date
on which interest begins to accrue. Thus, if the interest start date falls in
November, then the number of basis days is 360. If the interest start date falls
in a month with 31 days, then the number of basis days is 372. For an interest
start date in February, the number of basis days will either be 336 or 348,
depending upon whether or not it is a leap year.
AccrualCode | Description |
---|---|
204 | Unit period simple w/ true 360 calendar and 360 day divisor |
205 | Unit period simple w/ true 360 calendar and 365 day divisor |
210 | Actual / 360 simple |
211 | True 365 / 360 simple |
220 | Actual / 365 simple |
221 | True 365 / 365 simple |
230 | Actual / Actual simple |
231 | Midnight 366 simple |
250 | Unit period simple w/ variable DPY divisor |
🔹 AddToPmt
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application wants the odd days interest to be added to the first
payment, then set the value of this attribute to true
. A value of false
indicates that the odd days interest will be treated as a prepaid fee.
🔹 AddToPrin
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If any odd days interest should be treated as a financed prepaid fee, then set
the value of this attribute to true
. Note that if both
AddToPmt
and AddToPrin
are set to true
, then a warning
message will be returned by the SCEX and the value of AddToPrin
will be set to
false
.
🔹 AnchorDate
Data Type | Values | Default |
---|---|---|
Enum | BackUnitPeriod , BackDaysPerPeriod | BackUnitPeriod |
The computed number of odd days is the number of days between the loan date and the anchor date. This attribute determines how to arrive at the anchor date.
BackUnitPeriod
- The anchor date is one unit period prior to the specified first payment date.BackDaysPerPeriod
- The anchor date is the number of days per period prior to the first payment date.
Please note that for both of these methods, the period used will be that associated with the payment stream in which the first payment occurs.
🔹 ForceUnitPeriod
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the loan's interest accrual is unit period, this attribute forces the period
to the first payment to be 1/12 (or 1/(PmtsPerYear) in general). Without this
attribute an accrual code of 202
(Unit Period /365) would use a factor of
Days/365 rather than the expected 1/12.
🔹 NoCap
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
When an odd days interest fee is present and financed, the value of this
attribute determines if the ODI fee is added to the principal balance for the
purposes of computing the ODI fee (e.g. if it is capitalized). If this value is
true
, the ODI is computed on the true principal balance less the ODI; false
means "compute ODI on the true principal balance.
🔹 UseDailyCost
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the total odd days prepaid fee is computed by first generating a rounded (to
the nearest penny) daily cost and then multiplying this value by the computed
number of odd days, then set the value of this property to true
.
A value of false
means that the daily cost is left unrounded, and the total
prepaid fee is rounded after the computation is complete.
🔹 UseNegODI
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If there are negative odd days in the loan, then the value of this attribute
determines if a negative odd days interest fee is computed. If the value of this
attribute is false
, then negative odd days fees are not allowed, the SCEX will
return a value of zero in this situation, and the computed payment will be
adjusted to take into account the negative odd days. A value of true
will
return a negative odd days interest fee (in effect, it then becomes an odd days
interest credit) when there are negative odd days in a loan.
🟥 <Payment>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | >= 0 |
The payment specified indicates the desired periodic payment the borrower is
requesting. The dollar amount should be expressed as a number. For example, a
request including <Payment>300.00</Payment>
indicates a desired payment of
$300.
Attributes: None
🟥 <PmtDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= <LoanDate> and >= <IntStartDate> |
This element contains the date on which the first payment of the loan is made, and must be on or after the loan date.
All dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a first payment date of April 4, 2024 would be specified as:
<PmtDate>2005-04-04</PmtDate>
Attributes: None
🟥 <Proceeds>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | >= 0 |
The proceeds specifies the amount the customer has frequested to borrow, ignoring every other financed quantity. Proceeds of up to one billion dollars are accepted.
The amount should be expressed as a number. For example, a request including
<Proceeds>10000.00</Proceeds>
indicates an amount requested of 10,000.
Attributes: None
🟦 <Protection>
Element Type | Data Type | Values | Default |
---|---|---|---|
Parent | - | - | No protection included |
The <Protection>
element is used to specify debt protection coverages such as
life, disability, involuntary unemployment, personal property and debt
cancellation. Each type of coverage is specified by its own sub-element, along
with the borrower birthdays. The following attributes apply to this element:
Attributes:
🔹FinanceProt
,🔹LineOfCredit
,🔹Mandatory
,🔹ShowBorrowerInfo
,🔹ShowCaps
🔹 FinanceProt
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
If the computed premiums for single premium debt protection products should be
financed along with the proceeds, then this attribute should be set to true
(which is the default value if not specified). A value of false
indicates that
the computed premiums will not be financed with the proceeds, and hence will be
paid out of pocket by the borrower. Note that this applies to single premium
insurance products only!
🔹 LineOfCredit
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this is an account using TruStage’s MOB insurance, and if this loan is a line
of credit where product term caps should be ignored, then set this attribute to
true
. Otherwise, leave this attribute unspecified or set it to false
.
🔹 Mandatory
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the value of this attribute is set to true
, then any computed payment
protection premium or fee will be considered a mandatory fee which will be
included as a part of the Regulation Z Finance Charge, and hence affect the
Regulation Z APR. In this case, the <Protection>
element in the response will contain a
Mandatory
="true"
attribute indicating this.
If the Mandatory attribute is set to false
, the loan will treat any premiums /
fees as normal.
🔹 ShowBorrowerInfo
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application would like to have data returned for each specified
borrower instead of a single <CovTerm>
element, then
set the value of this attribute to true
. Otherwise, leave this attribute
unspecified or set it to false
. See the <Borrower>
and <CovTerm>
elements defined in the response for
more information.
🔹 ShowCaps
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application would like to have cap information (e.g., maximum
terms, coverage amounts, ages, etc.) returned for each product offered, set the
value of this attribute to true
. Otherwise, leave this attribute unspecified
or set it to false
. See the <Caps>
element for more
information.
🟦 <Protection>
→<Birthday1>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= 1900-01-01 | No birthday specified |
This element contains the date of birth for the primary borrower. All dates must
be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a birthday of
April 9, 1972 would be specified as <Birthday1>1972-04-09</Birthday1>
. Note
that this element must be set if the Covers attribute of any of the four debt
coverage elements is set to borrower1
or both
.
Attributes: None
🟦 <Protection>
→<Birthday2>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= 1900-01-01 | No birthday specified |
This element contains the date of birth of the secondary borrower. All dates
must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a birthday
of May 21, 1969 would be specified as <Birthday2>1969-05-21</Birthday2>
.
Attributes: None
🟦 <Protection>
→<Disability>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No disability coverage |
The <Disability>
element determines what type of disability coverage is
requested for the loan. It also serves double duty as the debt cancellation
coverage element, for accounts set up to compute debt cancellation using the
disability tables. The element itself is empty, with all information needed for
disability coverage request being specified in the following attributes:
🔹 Benefit
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <Disability>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will assure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user specified coverage terms, then this attribute will be ignored.
🔹 Table
Data Type | Values | Default |
---|---|---|
Integer | [0...19] | 0 |
If the specified account has been set up with multiple disability or debt
cancellation plans, then this attribute determines which plan number will be
used. If no table number is specified, the first table (table zero) will be
used. To find out the number of available plans, use the
<AhSetCount>
element in the
<inINPUT_TOOL>
response.
🟦 <Protection>
→<Life>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No life coverage |
The <Life>
element determines what type of life coverage is requested for the
loan. The element itself is empty, with all information needed for a life
coverage request being specified in the following attributes:
Attributes:
🔹Coverage
,🔹Covers
,🔹CovTerm
,🔹Dismemberment
,🔹Method
,🔹UseLevelRates
🔹 Coverage
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
If you wish to specify a coverage amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum coverage amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified coverage amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in the appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <life>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will assure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user specified coverage terms, then this attribute will be ignored.
🔹 Dismemberment
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the specified account has been set up to offer optional dismemberment coverage to be offered with life coverage (using an increased rate in the premium calculation), then this attribute determines whether or not this additional coverage will be provided.
🔹 Method
Data Type | Values | Default |
---|---|---|
Enum | default , net , gross | default |
If the specified account has been set up to offer single premium life coverage
by default, net or gross coverage, then this attribute can be used to specify
which type of coverage to compute with the loan. For all other accounts, the
default value of default
should be used (or simply do not specify the attribute
at all).
🔹 UseLevelRates
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the account specified has been set up to offer single premium credit life
using level rates instead of the normal decreasing rates, then set this
attribute’s value to true
. Otherwise, use the default value of false
.
🟦 <Protection>
→<Property>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No property coverage |
The <Property>
element determines what type of personal property coverage is
requested for the loan. The element itself is empty, with all information needed
for coverage request being specified in the following attributes:
🔹 Coverage
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a coverage amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum coverage amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user-specified coverage amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The value borrower1
represents single coverage on the primary borrower (whose
birthday is contained in element <Birthday1>
). A request for
joint coverage on both borrowers is indicated by a value of both
. Finally, if
no coverage is desired, specify a value of none
or omit the <Property>
element entirely.
🟦 <Protection>
→<Unemployment>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No unemployment coverage |
The <Unemployment>
element determines what type of involuntary unemployment
coverage is requested for the loan. The element itself is empty, with all
information needed for a coverage request being specified in the following
attributes:
🔹 Benefit
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <Unemployment>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will ensure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user-specified coverage terms, then this attribute will be ignored.
🟦 <ServiceCharge>[]
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No service charge |
As with the <Fee>
element, any number of <ServiceCharge>
elements
may be added to a loan. Service charges are supported on single, equal, and
balloon payment loans only.
The <ServiceCharge>
element itself contains no data. Instead, all of the
information used to compute the service charge is contained in the following
attributes of the element:
🔸 Entry
(decimal, 0)
How this attribute is interpreted depends upon the Type
attribute, described below. It is the numeric amount defining either the lump
sum or periodically paid service charge.
🔹 Exact
(boolean, false)
The Exact
attribute is only considered when the service charge is of
Type
LumpSum
. When the calculated periodic amount is
rounded, it will most often times produce a total service charge amount that
differs from that entered.
If the Exact
attribute is set to true
, then the final periodic amount will be
adjusted so that the sum of all periodic amounts is exactly equal to the entered
amount (and will result in an odd final payment). A value of false
indicates
that the final periodic amount will not be adjusted.
🔹 Name
(text, "")
This attribute is for convenience purposes only, and does not affect the
calculation of the service charge in any manner. If a Name
attribute is
specified for the <ServiceCharge>
element, then the corresponding
<ServiceCharge>
element in the response will have a
Name
attribute with the same value. This allows
you to easily differentiate fees in the response.
🔹 Round
(enum, [nearest, up, down], nearest)
This attribute is only considered when the service charge is of
Type
LumpSum
. It determines how the calculated periodic
amount is rounded.
🔹 Type
(enum, [LumpSum, Periodic], LumpSum)
A service charge of Type
of LumpSum
allows the calling application to specify an
amount that will be spread out evenly over the loan’s payment stream. On the
other hand, a Periodic
service charge is the amount which will be added to each
payment.
🟦 <TILARESPA2015>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No TILA RESPA disclosures |
The presence or absence of this element determines whether or not the TILA RESPA data table is present in the output.
If this element is present in the loan request, then the SCEX will return data for the Integrated Mortgage Disclosures under the Real Estate Settlement Procedures Act (Regulation X) and the Truth In Lending Act (Regulation Z) rule, which is required as of August 1st, 2015. If this element is not present, then the TILA RESPA outputs will not be generated.
Attributes: None
🟦 <TotalDown>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
This optional element represents the total down payment that the borrower has applied to reduce the requested proceeds. It may consist of a cash down payment, net trade-in value, or rebate. You only need to specify a total down payment if the loan needs to disclose a total sale price. Typical examples of these loan types are auto and boat loans.
To generate a total down payment, please see the chapter detailing the SCEX’s Auto Prompts module.
Attributes: None
Roll to Term - Response
The roll to term response is almost identical to the compute payment response, with the following differences:
- The root element is
<outEQUAL_TERM>
instead of<inEQUAL_PMT>
. - There will laways be a
<Term>
element under the<Results>
element, since this is the value we are solving for.
Please see the Legend to understand the conventions used to document each element and attribute. Note that for responses, the XML elements are documented in the order that they appear in the response.
🟥 <outEQUAL_TERM>
Element Type | Data Type |
---|---|
Parent | - |
This element is the root element of the response, and contains all of the relevant outputs.
Attributes:
🔹CountryName
🔹 CountryName
Data Type | Values | Default |
---|---|---|
Text | See table | United States of America |
If a valid Country
code was specified as an
attribute of the input module element, the full name of the country associated
with the specified Country code will be reported in this attribute.
🟥 <Results>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which describe the success or failure of the calculation, any warning or error messages, and the most important numerical results for the query.
<Results>
<Description>Successful Calculation</Description>
<Term>21</Term>
<Payment>392.58</Payment>
</Results>
Attributes: None
🟥 <Results>
→<Description>
Element Type | Data Type |
---|---|
Data | Text |
If the calculation was completed successfully, then this element will contain
the value Successful Calculation
. Otherwise, this element will contain a
description of the problem encountered during the attempted computation.
Attributes: None
🟦 <Results>
→<XMLDetail>[]
Element Type | Data Type | Default |
---|---|---|
Data | Text | NULL |
The <XMLDetail>
elements are messages passed back to the calling application
which detail the status of the XML request. If the SCEX issues any warnings
regarding unrecognized elements or attributes, then each warning message will be
displayed in an <XMLDetail>
element.
Attributes: None
🟥 <Results>
→<Term>
Element Type | Data Type |
---|---|
Data | Integer |
The computed loan term which produces a payment less than or equal to the
desired payment. Note that the <Payment>
element contains the
actual computed payment for the resulting loan term.
Attributes: None
🟥 <Results>
→<Payment>
Element Type | Data Type |
---|---|
Data | Currency |
The computed payment for the requested equal payment loan.
Attributes: None
🟦 <Results>
→<Final>
Element Type | Data Type |
---|---|
Data | Currency |
If the specified account has been set up to disclose an odd final payment (usually done to perfectly amortize the loan at its conclusion), then this element will be present and contain the odd final payment amount.
Attributes: None
🟥 <FedBox>
Element Type | Data Type |
---|---|
Parent | - |
Some of the most important compliance related outputs are organized into the
<FedBox>
disclosures.
<FedBox>
<AmtFin>7525.00</AmtFin>
<FinChg>719.18</FinChg>
<TotPmts>8244.18</TotPmts>
<RegZAPR Type="Actuarial">10.142</RegZAPR>
</FedBox>
Attributes: None
🟥 <FedBox>
→<AmtFin>
Element Type | Data Type |
---|---|
Data | Currency |
The Regulation Z Amount Financed, which is defined as the amount of credit provided to you or on your behalf.
Attributes: None
🟥 <FedBox>
→<FinChg>
Element Type | Data Type |
---|---|
Data | Currency |
This element contains the Regulation Z Finance Charge, described as the dollar amount the credit extension will cost you.
Attributes: None
🟥 <FedBox>
→<TotPmts>
Element Type | Data Type |
---|---|
Data | Currency |
The amount which the borrower will have paid when the borrower has made all scheduled payments.
Attributes: None
🟦 <FedBox>
→<TotalSalePrice>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | <TotPmts> |
The sum of the total of payments plus the total down payment. Please note that
if no <TotalDown>
element was specified in the
request, then this element will not be present.
Attributes: None
🟥 <FedBox>
→<RegZAPR>
Element Type | Data Type |
---|---|
Data | Decimal |
The Regulation Z APR, which is the cost of the extension of credit expressed as a yearly rate. The Reg. Z APR element has a few attributes, described below:
Attributes:
🔹Max
,🔹MaxExceeded
,🔸Type
🔹 Max
Data Type | Default |
---|---|
Decimal | n/a |
This attribute specifies the maximum APR as configured in the account's setup files. If no maximum APR has been specified, then this attribute will not be present. The value of this attribute should be displayed as a percentage. As an example, for Max="36.000", you would disclose a maximum APR of 36.000%.
🔹 MaxExceeded
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
If a maximum APR is configured in the account's setup files, then the value of
this attribute indicates whether or not the current loan exceeds the maximum
allowed APR. As an example, if the maximum APR has been set to 36% and the APR
for the returned loan was 37.125%, the <RegZAPR>
element would be:
<RegZAPR Type="Actuarial" Max="36.000" MaxExceeded="true">37.125</RegZAPR>
🔸 Type
Values | |
---|---|
Enum | Actuarial , USRule , EU_APR , Canadian_APR , XIRR , XIRR360 , IRR , YieldIRR , Open_End |
This attribute specifies the method used to compute the reported APR: Actuarial or US Rule The method used is dictated by the setup files for the given account, but may be overridden in the XML input query.
Actuarial
- Governed by Appendix J to Regulation Z. Default US APR.USRule
- Used by large banks to mirror loan amortization.EU_APR
- Default European Union APR.Canadian_APR
- Default APR for Canada.XIRR
- Extended Internal Rate of Return (same as excel function).XIRR360
-XIRR
using a 360 divisor rather than a 365 divisor.YieldIRR
- Canadian mortgages may compute periodic interest using a fractional power of a periodic yield.Open_End
- Simply returns the interest rate.
🟦 <FedBox>
—><MAPR>
Element Type | Data Type |
---|---|
Data | Decimal |
If the military APR has been requested, then this element will be included in the output. The value of the element is the military APR, and the element has a few attributes, described below:
Attributes:
🔸Advance
,🔹Max
,🔹MaxExceeded
🔸 Advance
Data Type |
---|
Currency |
This attribute is the equivalent of the Amount Financed for the Military APR. Specifically, it is the principal balance less any MAPR fees, debt protection, etc.
🔹 Max
Data Type | Default |
---|---|
Decimal | 36.0 |
This attribute specifies the maximum Military APR as specified in the input XML
(see MAPR_Max
). If not specified, a default value
of 36% is assumed. The value of this attribute should be displayed as a
percentage. As an example, for Max="36.0"
, you would disclose a maximum
Military APR of 36.0%.
🔹 MaxExceeded
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
The value of this attribute 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>
element would be:
<MAPR Advance="1350.00" Max="36.000" MaxExceeded="true">37.125</MAPR>
🟦 <TILARESPA2015>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which are of interest to fulfilling the
2015 TILA RESPA rule. It will only be present if the
<TILARESPA2015>
element is present in the
request.
Sample TILARESPA2015 output:
<TILARESPA2015>
<TotalLoanCosts>0</TotalLoanCosts>
<CD_TotPmts>27311.07</CD_TotPmts>
<In5Years PaidTotal="27311" PaidPrincipal="25000"/>
<TIP>9.244</TIP>
<MaxPnIPmt Date="2012-11-01">1636.65</MaxPnIPmt>
<MinRate Idx="1">5.651</MinRate>
<MaxRate Idx="1">5.651</MaxRate>
<ProjectedPayments NumCols="3">
<PPCol Num="1" Title="Year 1">
<Years Start="1" End="1"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
<PPCol Num="2" Title="Year 2">
<Years Start="2" End="2"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
<PPCol Num="3" Title="Year 3">
<Years Start="3" End="3"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
</ProjectedPayments>
</TILARESPA2015>
Attributes: None
🟦 <TILARESPA2015>
→<LoanCost>[]
Element Type | Data Type |
---|---|
Data | Currency |
For every <Fee>
element present in the input which has
its IsLoanCost
attribute 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>
input element), there will be a
corresponding <LoanCost>
element. The value of this element will be the
numerical value of the fee, rounded to the nearest dollar.
🔹 In5Years
Data Type | Default |
---|---|
Currency | <LoanCost> |
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 attribute will be present and disclose the portion of this loan cost that is accrued during the first five years.
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
This attribute will hold the same value as the attribute of the same name for
the <Fee>
element. It is recommended that each fee
have a unique Name
for identification purposes.
🟥 <TILARESPA2015>
→<TotalLoanCosts>
Element Type | Data Type |
---|---|
Data | Currency |
This element holds the sum of all borrower paid loan costs. Since all
<LoanCost>
element values are rounded dollar amounts, the value of this
element will also be a rounded dollar amount.
Attributes: None
🟥 <TILARESPA2015>
→<CD_TotPmts>
Element Type | Data Type |
---|---|
Data | Currency |
This element holds 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 will be the numerical value of the sum.
Attributes: None
🟥 <TILARESPA2015>
→<In5Years>
Element Type | Data Type |
---|---|
Empty | - |
This element is empty, with all important values required for the new "In 5 Years" section returned in the following two attributes of this element.
Attributes:
🔸PaidPrincipal
,🔸PaidTotal
🔸 PaidPrincipal
Data Type |
---|
Currency |
This attribute 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.
🔸 PaidTotal
Data Type |
---|
Currency |
This attribute 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.
🟥 <TILARESPA2015>
→<TIP>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the total interest percentage, rounded to three or fewer decimal places, as required.
Attributes: None
🟥 <TILARESPA2015>
→<MaxPnIPmt>
Element Type | Data Type |
---|---|
Data | Currency |
The value of this element holds the maximum scheduled principal and interest payment during the term of the loan.
Attributes: 🔸
Date
🔸 Date
Data Type |
---|
Date |
This attribute contains 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. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🟥 <TILARESPA2015>
→<MinRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the minimum possible interest rate applied during the term of the loan.
Attributes: 🔸
Idx
🔸 Idx
Data Type |
---|
Integer |
This attribute contains the payment number for which the minimum rate is first applicable.
🟥 <TILARESPA2015>
→<MaxRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the maximum possible interest rate applied during the term of the loan.
Attributes: 🔸
Idx
🔸 Idx
Data Type |
---|
Integer |
This attribute contains the payment number for which the maximum rate is first applicable.
🟥 <TILARESPA2015>
→<ProjectedPayments>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which are of interest to filling the
Projected Payments table. It will only be present if the <TILARESPA2015>
element is present in the XML request for a supported loan type.
Attributes: 🔸
NumCols
🔸 NumCols
Data Type | Values |
---|---|
Integer | [1...4] |
This attribute will hold the number of columns which must be present in the Projected Payments table. It will be a numeric value from 1 to 4.
🟥 <ProjectedPayments>
→<PPCol>[]
Element Type | Data Type |
---|---|
Parent | - |
For every column required in the Projected Payments table, there will be an
associated <PPCol>
element. This element is a parent to child elements which
contain data associated with a single column of the table.
🔸 Num
Data Type | Values |
---|---|
Integer | [1...4] |
This attribute will hold the number of the column to which the following data applies.
🔸 Title
Data Type |
---|
Text |
The value of this attribute 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.
🟥 <ProjectedPayments>
→<PPCol>
→<Years>
Element Type | Data Type |
---|---|
Empty | - |
The attributes of this element hold the beginning and ending year numbers for which this column data applies. The element itself is empty.
🔸 End
Data Type |
---|
Integer |
The ending year associated with this column's data.
🔸 Start
Data Type |
---|
Integer |
The beginning year associated with this column's data.
🟥 <ProjectedPayments>
→<PPCol>
→<PnIPmt>
Element Type | Data Type |
---|---|
Empty | - |
This empty element has several attributes which describe the principal and interest payments associated with this column.
🔸 Balloon
Data Type | Values |
---|---|
Boolean | true , false |
If any of the payments associated with this column are balloon payments (e.g.
isolated payments that are more than twice the value of a regular periodic
payment), then the value of this attribute will be true
.
🔸 IntOnly
Data Type | Values |
---|---|
Enum | all , some , none |
none
- No payments associated with the column are Interest Onlysome
- Some, but not all, of the payments associated with the column are Interest Only.all
- All of the payments associated with the column are Interest Only.
Note that for the purposes of this attribute, 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.
🔸 Max
Data Type |
---|
Currency |
This attribute holds the maximum principal and interest payment for this column.
If this value is not the same as the value of the Min
attribute, then a range of rounded payments must be displayed. If the values are
the same, then only a single value needs to be disclosed.
🔸 Min
Data Type |
---|
Currency |
This attribute holds the minimum principal and interest payment for this column.
🟥 <ProjectedPayments>
→<PPCol>
→<MIPmt>
Element Type | Data Type |
---|---|
Data | Currency |
The value of this element 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.
Attributes: None
🟥 <ProjectedPayments>
→<PPCol>
→<TotalPmt>
Element Type | Data Type |
---|---|
Empty | - |
This empty element has two attributes which describe the estimated total payment or range of payments associated with this column. Note that this value does not include any estimated escrow, as the SCEX does not support escrow calculations. The calling application will need to increase these values by the estimated escrow amounts if any are present.
🔸 Max
Data Type |
---|
Currency |
This attribute holds the maximum estimated total payment for this column. If
this value is not the same as the value of the Min
attribute,
then a range of rounded payments must be displayed. If the values are the same,
then only a single value needs to be disclosed.
🔸 Min
Data Type |
---|
Currency |
This attribute holds the minimum estimated total payment for this column.
🟥 <Moneys>
Element Type | Data Type |
---|---|
Parent | - |
This element groups together those other major cash amounts not disclosed under
the <FedBox>
element, such as the principal balance, interest
change, fee amounts and protection premiums.
<Moneys>
<Principal>10120.00</Principal>
<Interest>1635.80</Interest>
<OddDaysPrepaid OddDayCount="15" DailyCost="2.77">41.55</OddDaysPrepaid>
<FinFees>120.00</FinFees>
<FinChgFees>91.55</FinChgFees>
<PocketFees>65.00</PocketFees>
<MAPRFees>201.55</MAPRFees>
<Protection Category="None" PerPmt="0.00" PerDay="0.00">0.00</Protection>
<Fee Name="FinFee">60.00</Fee>
<Fee Name="Prepaid Fee">50.00</Fee>
</Moneys>
Attributes: None
🟥 <Moneys>
→<Principal>
Element Type | Data Type |
---|---|
Data | Currency |
The principal balance is the amount on which interest is accrued. The principal balance consists of the amount requested by the borrower, any fees which are financed, as well as financed protection premiums.
Attributes: None
🟥 <Moneys>
→<Interest>
Element Type | Data Type |
---|---|
Data | Currency |
This element contains the total interest accrued during the term of the loan, assuming the borrower will make all scheduled payments.
Attributes: None
🟦 <Moneys>
→<ConstructInterest>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If the requested loan is a construction loan with a permanent loan attached and the account specified is set up to compute construction loans via the "Simple" method, then this element 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 <Interest>
element, and
both loans reflected in a single, combined amortization schedule.
If the requested loan was not a construction loan, or if construction loans have not been set up for the given account, then this element will not appear in the results.
Attributes: None
🟦 <Moneys>
→<OddDaysPrepaid>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element, if present, holds the total odd days prepaid finance charge. If no odd days prepaid fee was requested, then this element will not be present in the output.
Attributes:
🔹AddToPmt
,🔹DailyCost
,🔸OddDayCount
,🔹OddMonths
🔹 AddToPmt
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
If the odd days interest has been added to the first payment, this attribute
will be present in the output with a value of true
. If the odd days interest has
been treated as a prepaid finance charge, then this attribute will not be
present and a default value of false
should be assumed.
🔹 DailyCost
Data Type | Default |
---|---|
Currency | n/a |
If the odd days prepaid fee is computed using a rounded daily cost, then the value of this attribute will hold that value. If the odd days prepaid is not computed using a rounded daily cost, then this attribute will not be present.
🔸 OddDayCount
Data Type |
---|
Integer |
This attribute holds the number of odd days computed by the SCE for the requested loan.
🔹 OddMonths
Data Type | Default |
---|---|
Integer | n/a |
This attribute holds the number of odd months computed by the SCE for the
requested loan when using odd days accrual method 250
.
🟦 <Moneys>
→<MinInterestPmt>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | n/a |
The <MinInterestPmt>
element will only appear if the
Metavante
attribute has been set to true
,
and even then only under certain loan conditions. The element itself contains no
data, as all required data is found in the following two attributes:
🔸 Index
Data Type |
---|
Integer |
The Index
attribute specifies the payment number in the payment stream at which
the minimum interest payment is achieved.
🔸 Pmt
Data Type |
---|
Currency |
The interest payment amount for the given Index
.
🟦 <Moneys>
→<MaxInterestPmt>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | n/a |
The <MaxInterestPmt>
element will only appear if the
Metavante
attribute has been set to true
,
and even then only under certain loan conditions. The element itself contains no
data, as all required data is found in the following two attributes:
🔸 Index
Data Type |
---|
Integer |
The Index
attribute specifies the payment number in the payment stream at which
the maximum interest payment is achieved.
🔸 Pmt
Data Type |
---|
Currency |
The interest payment amount for the given Index
.
🟦 <Moneys>
→<FinFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element contains the sum of all financed fees requested for the loan. If no financed fees were requested, then this element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<FinChgFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element contains the sum of all APR affecting fees (those fees which are
added to the <FinChg>
) requested for the loan. If no APR affecting
fees were requested, then this element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<PocketFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element 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 element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<MAPRFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element 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.
Attributes: None
🟦 <Moneys>
→<Protection>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
Contains the total cost of all protection plans included with the computed loan.
For the individual plan costs, see the <ProtectionInfo>
elements described
below. The attributes of this element are as follows:
Attributes:
🔸Category
,🔹IsDp
,🔹Mandatory
,🔸PerDay
,🔸PerPmt
🔸 Category
Data Type | Values |
---|---|
Enum | See below |
This attribute specifies the category under which the computed loan protection falls. The possible values for this attribute are:
None
- No protection catetory has been identified.SP
- Single Premium protection financed at loan closing.MOB
- Monthly outstanding balance (paid on Payments).TrueMOB
- Premiums paid monthly on a date specified in the setup files.PaidSP
- Single premium protection paid at closing.ConstantMOB
- CMOB is a product paid with payments and a constant amount.AddToPmtMOB
- MOB insurance added to a constant P&I payment, resulting in variable payments.
🔹 IsDp
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
This attribute indicates if the specified account’s protection is set up as debt
protection. If this attribute 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).
🔹 Mandatory
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
This attribute should only appear in the response if the value of the attribute
is true
. If this attribute does not appear in the output, then the value of
this attribute should default to false
. If the value of the Mandatory
attribute is true
, then the total premium/fee amount for all insurance/debt
protection products has been treated as a part of the Regulation Z Finance
Charge, and hence will affect the Reg. Z APR.
🔸 PerDay
Data Type |
---|
Currency |
Contains the cost of all loan protection products expressed as dollars per day.
🔸 PerPmt
Data Type |
---|
Currency |
Contains the cost of all loan protection products expressed as dollars per payment.
🟦 <Moneys>
→<MinIntChgAdj>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a minimum interest charge is configured in the account’s setup files and the final payment was adjusted to meet this minimum interest charge, then this element will be returned in the response and will contain the value of the minimum finance charge adjustment.
Attributes: None
🟦 <Moneys>
→<MinFinChgAdj>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a minimum finance charge is configured in the account’s setup files and the final payment was adjusted to meet this minimum finance charge, then this element will be returned in the response and will contain the value of the minimum finance charge adjustment.
Attributes: None
🟦 <Moneys>
→<Fee>[]
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
For each non-zero fee requested in the loan calculation, there will be a <Fee>
element containing the computed fee amount.
Attributes:
🔹Name
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
Contains the value of the Name attribute of the corresponding
<Fee>
element from the request. If no such attribute is
present in the <Fee>
element, then none will be present
in the response element.
🟦 <Moneys>
→<ServiceCharge>[]
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
For each non-zero service charge requested in the loan calculation, there will
be a <ServiceCharge>
element containing the total service charge amount.
Attributes:
🔹Name
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
Contains the value of the Name attribute of the corresponding
<ServiceCharge>
element from the request. If no such
attribute is present in the request element, then none will be present in the
response element.
🟦 <Moneys>
→<PMI_Fee>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If PMI has been requested on the loan, and if a number of up front payments have been specified, then this element will hold the total PMI fee for all upfront payments.
Attributes: None
🟥 <Accrual>
Element Type | Data Type |
---|---|
Parent | - |
This element groups together interest accrual information, such as the accrual method used, days to the first payment, and the loan’s maturity date.
<Accrual>
<Method>Actual/365 US Rule</Method>
<Days1Pmt DayCount="Actual">74</Days1Pmt>
<Maturity>2015-07-01</Maturity>
</Accrual>
Attributes: None
🟥 <Accrual>
→<Method>
Element Type | Data Type |
---|---|
Data | Text |
The <Method>
element contains a textual description of the interest accrual
method used to compute the loan (e.g. "Unit Period 365 Simple").
Attributes: None
🟥 <Accrual>
→<Days1Pmt>
Element Type | Data Type |
---|---|
Data | Integer |
This element contains the number of days to the first payment, computed by one of two methods as specified in this element’s sole attribute.
Attributes:
🔸DayCount
🔸 DayCount
Data Type | Values |
---|---|
Enum | Actual , True360 |
Actual
- The actual number of days between these two dates are used.31
would be the day count for the 2024-01-01 to 2024-02-01.True360
- All months have 30 days.30
would be the day count for 2024-01-01 to 2024-02-01.
🟥 <Accrual>
→<Maturity>
(YYYY-MM-DD)
Element Type | Data Type |
---|---|
Data | Date |
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. Hence, a maturity date of February 15, 2020 would be specified as
<Maturity>2020-02-15</Maturity>
.
Attributes: None
🟦 <PMI>
Element Type | Data Type |
---|---|
Empty | - |
The PMI element 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
<Payment>
element, the <PmtStream>
element(s), the
<TotPmts>
element, nor the Pmt
attribute of the
<AmLine>
element.
<PMI Rate="1.00" LTV="100.00" PremiumPerYear="964.08" PremiumPerPeriod="80.34"/>
The element itself contains no data, as all associated PMI data is found in the following attributes:
Attributes:
🔹IndexToRemove
,🔹IndexToWarn
,🔸LTV
,🔸PremiumPerPeriod
,🔸PremiumPerYear
,🔸Rate
🔹 IndexToRemove
Data Type | Default |
---|---|
Integer | 0 |
This attribute only appears if the PercentToRemove PMI input attribute 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.
In the sample above, after four payments are made, the ending principal balance to home value ratio drops below 70%, and hence the calculation engine returns IndexToRemove="4". Note that no PMI is included in the amortization schedule for payment numbers four or greater.
🔹 IndexToWarn
Data Type | Default |
---|---|
Integer | 0 |
This attribute only appears if the PercentToWarn PMI input attribute is specified, and indicates that the payment index on which the remaining principal balance to home value ratio drops below the specified percentage. In the sample above, after three payments are made, the ending principal balance to home value ratio drops below 80%, and hence the calculation engine returns IndexToWarn="3".
🔸 LTV
Data Type |
---|
Decimal |
The loan to value ratio of the computed loan, expressed as a percentage.
🔸 PremiumPerPeriod
Data Type |
---|
Currency |
The periodic PMI premium amount.
🔸 PremiumPerYear
Data Type |
---|
Currency |
The annual PMI premium amount
🔸 Rate
Data Type |
---|
Decimal |
The percentage rate used in the PMI calculation.
🟥 <PmtStream>[]
Element Type | Data Type |
---|---|
Empty | - |
The <PmtStream>
element(s) describe the scheduled stream of payments for the
computed loan in the order paid. Instead of disclosing each and every payment
individually (which can be done with the <AmTable>
element), the
payment streams group together consecutive equal payments to produce a
compressed output view.
The following code translates to "Twelve consecutive payments of $879.31 computed at 10.000% begin on January 22nd, 2024".
<PmtStream Term="12" Pmt="879.31" Rate="10.000" Begin="2024-01-22"/>
Each element describes a single stream of equal payments, using the following attributes to define the important properties of each resulting payment stream:
🔸 Begin
Data Type |
---|
Date |
This attribute contains 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. In the example above, the first payment stream
is scheduled to begin on September 18, 2005. Hence, the Begin attribute for the
first payment stream element would be specified as Begin="2005-09-18"
.
🔸 Pmt
Data Type |
---|
Currency |
The Pmt
attribute contains the computed payment amount for this payment stream.
For the sample payment stream above, the payment amount is 879.31.
🔸 Rate
Data Type |
---|
Decimal |
Contains the interest rate used for the duration of this payment stream. Usually, the interest rate will remain fixed for the duration of the loan unless you are computing an adjustable rate loan or you are computing a LaserPro construction loan with permanent loan attached.
🔸 Term
Data Type |
---|
Integer |
The Term
attribute holds the number of contiguous payments that make up the
given payment stream. In the example payment stream above, the term for the
stream is 12.
🟦 <ProtectionInfo>[]
Element Type | Data Type |
---|---|
Parent | - |
These elements (there may be more than one if more than one type of protection was requested) contain information related to the various protection products requested on the given loan. Each element group provides complete results for each requested product (decreasing life, level life, disability/debt cancellation, involuntary unemployment, or personal property).
🔸 Formula
Data Type | Values |
---|---|
Enum | see Protection Formulas |
The Formula
attribute contains an abbreviated description of the formula used
to compute the desired protection product. The formula codes are described
here.
🔸 Product
Data Type | Values |
---|---|
Enum | Life , Level , Disability , Unemployment , Property |
This attribute informs the calling application to which type of protection product this element refers: decreasing life, level life, disability/debt cancellation, involuntary unemployment or personal property.
🔹 RateType
Data Type | Values |
---|---|
Enum | Fixed , Variable |
Fixed
- Protection rate stays constant during the calculations.Variable
- Protection rate changed from Joint to Single as the loan evolves.
🟥 <ProtectionInfo>
→<CalcResult>
Element Type | Data Type |
---|---|
Data | Text |
This element 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 child elements
of <ProtectionInfo>
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 child elements of
<ProtectionInfo>
, as the product was not computed.
<CalcResult>Valid Calculation</CalcResult>
Attributes: None
🟥 <ProtectionInfo>
→<Cost>
Element Type | Data Type |
---|---|
Empty | - |
Attributes of this empty element 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.
The only time there will be two <Cost>
elements to parse is when the account
has been set up to use Plateau’s Uniguard product, and the user has requested
joint coverage. If this is the case, then two <Cost>
elements are provided to
disclose two premiums instead of a single aggregate joint premium.
<Cost Premium="827.26" PerPmt="19.28" PerDay="0.63" Factor="1.0154"/>
🔸 Factor
Data Type |
---|
Decimal |
The rate factor used to compute the premium for the requested protection product.
🔸 PerDay
Data Type |
---|
Currency |
The daily cost of coverage, expressed in dollars.
🔸 PerPmt
Data Type |
---|
Currency |
The cost of coverage expressed as dollars per payment.
🔸 Premium
Data Type |
---|
Currency |
The total cost for this protection over the term of the loan.
🟥 <ProtectionInfo>
→<Coverage>
Element Type | Data Type |
---|---|
Empty | - |
The aggregate coverage amount and note are provided in the following attributes of this empty element:
<Coverage Amount="75000.00" Note="Partial Coverage of $75,000"/>
🔸 Amount
Data Type |
---|
Currency |
This attribute contains the aggregate coverage amount for this protection product.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🟥 <ProtectionInfo>
→<Benefit>
Element Type | Data Type |
---|---|
Empty | - |
This empty element will only show up for the disability and involuntary unemployment products.
<Benefit Amount="1000.00" Note="Partial Benefit of $1,000"/>
🔸 Amount
Data Type |
---|
Currency |
Attribute which contains the monthly benefit amount for this protection product.
🔸 Note
Data Type |
---|
Text |
This Note
will describe 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.
🔹 Periodic
Data Type | Default |
---|---|
Currency | n/a |
If the account has been configured to disclose periodic benefits (as opposed to
monthly benefit amounts, which are returned in the Amount
attribute described above), and if the specified payment frequency is other than
monthly, then this attribute will be present and will hold the periodic benefit
amount.
🟦 <ProtectionInfo>
→<CovTerm>
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the term of coverage for the requested product. If the request has specified the coverage term, then this element will be populated with that term.
<CovTerm InMonths="75" InPmts="75" Maturity="2018-09-22" Note="Truncated: Keep Benefit"/>
🔹 InDays
Data Type | Default |
---|---|
Integer | n/a |
Attribute which expresses the term of coverage in days. This attribute will only be present for the level life product, and even then only if needed (for example, when covering single payment notes).
🔸 InMonths
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of months.
🔸 InPmts
Data Type |
---|
Integer |
Contains the number of payments covered.
🔸 Maturity
(YYYY-MM-DD)
Data Type |
---|
Date |
This attribute contains the maturity date for the requested coverage. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🟦 <ProtectionInfo>
→<Borrower>[]
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the term of
coverage of a specified borrower, for the requested product. Note that this
element will only be present if the input XML request has specified
ShowBorrowerInfo
= "true"
, and a valid
birthdate was provided. The following attributes are defined for this purpose:
Attributes:
🔸AgeAtIssue
,🔸AgeAtMaturity
,🔸Birthday
,🔸Maturity
,🔸Months
,🔸Note
,🔸Pmts
🔸 AgeAtIssue
Data Type |
---|
Special - see below |
If coverage is written on this borrower, then the value of this attribute 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.
🔸 AgeAtMaturity
Data Type |
---|
Special - see below |
If coverage is written on this borrower, then the value of this attribute 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.
🔸 Birthday
Data Type |
---|
Date |
This attribute contains the birthday associated with the borrower, as specified in the request. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🔸 Maturity
Data Type |
---|
Date |
The value of this attribute contains the coverage maturity date for this particular borrower.
🔸 Months
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of months.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🔸 Pmts
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of payments.
🟦 <ProtectionInfo>
→<Caps>
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the maximum
terms, amounts, and ages associated with the requested product. This element
will only be present if the ShowCaps
attribute
of the <Protection>
element is set to true
.
<Caps Cov="75000" Ben="1000" Term="84" InceptAge="65" AttainAge="66"/>
Attributes:
🔸AttainAge
,🔸Ben
,🔸Cov
,🔸InceptAge
,🔸Term
🔸 AttainAge
Data Type |
---|
Integer |
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.
🔸 Ben
Data Type |
---|
Currency |
Contains the maximum monthly benefit amount, expressed in dollars. If no cap is present or applicable, then a value of zero is returned.
🔸 Cov
Data Type |
---|
Currency |
Contains the maximum aggregate coverage amount, expressed in dollars. If no cap is present or applicable, then a value of zero is returned.
🔸 InceptAge
Data Type |
---|
Integer |
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.
🔸 Term
Data Type |
---|
Integer |
Contains the maximum coverage term, expressed in months. If no cap is present or applicable, then a value of zero is returned.
🟦 <AmTable>
Element Type | Data Type |
---|---|
Parent | - |
This element (if present) contains child elements which describe the loan's
amortization information. This element (and all of its child elements) will only
be present if the HideAmort
property of the
root element of the input query is set to false
.
<AmTable>
Attributes will only occur as feedback data for Canadian APR's.
🔹 AvgBal
Data Type | Default |
---|---|
Currency | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute is the average balance of the loan used in the Canadian APR calculation.
🔹 Months
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🔹 OddDays
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🔹 Weeks
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🟦 <AmTable>
→<GrandTotals>[]
Element Type | Data Type |
---|---|
Empty | - |
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 the following attributes:
<GrandTotals PmtTot="10551.72" IntTot="551.68" PrinTot="10000.04"/>
Attributes:
🔹AHTot
,🔹CLTot
,🔸IntTot
,🔹IUTot
,🔹PMITot
,🔸PmtTot
,🔸PrinTot
,🔹SCTot
🔹 AHTot
Data Type | Default |
---|---|
Currency | 0 |
The AHTot
attribute 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 over the duration
of the loan.
🔹 CLTot
Data Type | Default |
---|---|
Currency | 0 |
The CLTot
attribute 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.
🔸 IntTot
Data Type |
---|
Currency |
Contains the sum of all interest attributes in the AmLine
elements.
This amount will be different from the <Interest>
element if
there is a nonzero EndBal
for the final line of
amortization. The two will differ by this non-zero EndBal
.
🔹 IUTot
Data Type | Default |
---|---|
Currency | 0 |
The IUTot
attribute 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 over the
duration of the loan.
🔹 PMITot
Data Type | Default |
---|---|
Currency | 0 |
The PMITot
attribute 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.
🔸 PmtTot
Data Type |
---|
Currency |
Contains the total of payments scheduled for the computed loan.
🔸 PrinTot
Data Type |
---|
Currency |
Like IntTot
above, this attribute contains the total
amount paid to principal during the loan term, assuming all payments are made as
scheduled.
🔹 SCTot
Data Type | Default |
---|---|
Currency | 0 |
The SCTot
attribute will only appear on loans with service charges. It
contains the total service charge amount paid over the duration of the loan.
🟦 <AmTable>
→<SubTotals>[]
Element Type | Data Type |
---|---|
Empty | - |
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 <SubTotals>
element present. The element itself is empty, as all the
interesting categories are found in the following attributes:
<SubTotals Year="2024" Start="1" Events="12" PmtSub="10551.72" IntSub="551.68" PrinSub="10000.04"/>
Attributes:
🔹AHSub
,🔹CLSub
,🔸Events
,🔸IntSub
,🔹IUSub
,🔹PMISub
,🔸PmtSub
,🔸PrinSub
,🔹SCSub
,🔸Start
,🔸Year
🔹 AHSub
Data Type | Default |
---|---|
Currency | 0 |
The AHSub
attribute 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
.
🔹 CLSub
Data Type | Default |
---|---|
Currency | 0 |
The CLSub
attribute 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
.
🔸 Events
Data Type |
---|
Integer |
This attribute defines the number of amortization events (contained in
<AmLine>
elements which are defined below) which belong to this
calendar Year
.
🔸 IntSub
Data Type |
---|
Currency |
Holds the total amount paid to interest over the Year
in
question, assuming all payments are made as scheduled.
🔹 IUSub
Data Type | Default |
---|---|
Currency | 0 |
The IUSub
attribute 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
.
🔹 PMISub
Data Type | Default |
---|---|
Currency | 0 |
The PMISub
attribute 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 upfront periodic PMI premiums) for PMI during
the Year
.
🔸 PmtSub
Data Type |
---|
Currency |
Contains the total of payments scheduled for the Year
in
question.
🔸 PrinSub
Data Type |
---|
Currency |
Like IntSub
above, this attribute contains the total
amount paid to principal during the Year
in question,
assuming all payments are made as scheduled.
🔹 SCSub
Data Type | Default |
---|---|
Currency | 0 |
The SCSub
attribute will only appear on loans with service charges. It
contains the total of service charges paid during the Year
.
🔸 Start
Data Type |
---|
Integer |
This attribute defines the first amortization event which falls in the specified
calendar Year
. To find the <AmLine>
element
which corresponds to this value, match the Idx attribute of the
<AmLine>
element with the integer value reported by this attribute.
🔸 Year
Data Type |
---|
Integer |
The given calendar year for which the subtotal data is applicable.
🟥 <AmTable>
→<AmLine>[]
Element Type | Data Type |
---|---|
Empty | - |
There is one <AmLine>
element 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.) However, some loan protection methods (TruStage's monthly
renewable product, to be exact) have amortization events which correspond to
loan protection premiums being added to the loan balance on specific dates.
<AmLine Idx="1" Date="2024-01-01" BegBal="10000.00" Pmt="879.31" Int="84.93" Prin="794.38" EndBal="9205.62"/>
As with the <GrandTotals>
and <SubTotals>
elements, this element is empty and contains all of the useful information for a
given point in the amortization of a loan in the following attributes.
Attributes:
🔹AH
,🔸BegBal
,🔹CL
,🔸Date
,🔸EndBal
,🔸Idx
,🔸Int
,🔹IU
,🔹PMI
,🔸Pmt
,🔸Prin
,🔹SC
,🔹UnpaidInt
🔹 AH
Data Type | Default |
---|---|
Currency | 0 |
The AH
attribute 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.
🔸 BegBal
Data Type |
---|
Currency |
The principal balance before the amortization event occurs.
🔹 CL
Data Type | Default |
---|---|
Currency | 0 |
The CL
attribute 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.
🔸 Date
Data Type |
---|
Currency |
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.
🔸 EndBal
Data Type |
---|
Currency |
The principal balance amount, after the amortization event has taken place.
🔸 Idx
Data Type |
---|
Integer |
The index of the amortization event, which is either the payment number, or zero. A value of zero designates a protection premium that was charged on a date other than a payment date. (Occurs with protection category "TrueMOB").
🔸 Int
Data Type |
---|
Currency |
The amount of the payment which goes to pay interest.
🔹 IU
Data Type | Default |
---|---|
Currency | 0 |
The IU
attribute 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.
🔹 PMI
Data Type | Default |
---|---|
Currency | 0 |
This attribute contains the PMI premium for this payment.
🔸 Pmt
Data Type |
---|
Currency |
The amount of the payment (or zero if the event is a "TrueMOB" protection premium).
🔸 Prin
The amount of the payment which goes to reduce the principal balance.
🔹 SC
Data Type | Default |
---|---|
Currency | 0 |
This attribute contains the total service charge for this payment, and will only be present if one or more service charges were requested with the loan.
🔹 UnpaidInt
Data Type | Default |
---|---|
Currency or Decimal | 0 |
This attribute 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 places. If rounded, then the unpaid interest is displayed to two (2) decimal places.
🟦 <Metavante>
Element Type | Data Type |
---|---|
Empty | - |
This element will only be present if the
Metavante
attribute of the root element is
set to true
. The element itself is empty, as all of the useful information is
in the following attributes:
Attributes:
🔸FormsTerm
,🔸HostTerm
🔸 FormsTerm
Data Type |
---|
Integer |
The number of months in the loan, as computed using the Metavante FORMS method.
🔸 HostTerm
Data Type |
---|
Integer |
The number of months in the loan, as computed using the Metavante HOST method.
Balloon Payment Loans
Balloon loans are loans which have a large final payment because of a regular payment less than the corresponding equal payment stream. There are three general ways to compute a balloon loan: specify the regular payment, specify the final payment, or specify an amortization term greater than the balloon loan term.
Balloon Loan, Specified Regular Payment
Specifying a regular payment allows the SCE to compute a final payment that amortizes the loan appropriately.
Sample Request
The following is a sample request for a balloon payment loan calculation where the regular periodic payment is fixed at $500. The final balloon payment will be computed.
<inBALLOON_SPECIFY_REGULAR AccrualCode="320">
<LoanDate>2023-12-01</LoanDate>
<PmtDate>2024-01-01</PmtDate>
<IntRate>10</IntRate>
<Proceeds>10000.00</Proceeds>
<Term>12</Term>
<RegPmt>500</RegPmt>
</inBALLOON_SPECIFY_REGULAR>
Sample Response
The following is the XML response associated with the roll to amount request above, at the time this documentation was being written (2024-10):
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE outBALLOON_SPECIFY_REGULAR SYSTEM "outBALLOON_SPECIFY_REGULAR.dtd">
<outBALLOON_SPECIFY_REGULAR>
<Results>
<Description>Successful Calculation</Description>
<Payment>500.00</Payment>
<Final>5266.70</Final>
</Results>
<FedBox>
<AmtFin>10000.00</AmtFin>
<FinChg>766.70</FinChg>
<TotPmts>10766.70</TotPmts>
<RegZAPR Type="Actuarial">10.029</RegZAPR>
</FedBox>
<Moneys>
<Principal>10000.00</Principal>
<Interest>766.70</Interest>
<Protection Category="None" PerPmt="0.00" PerDay="0.00">0.00</Protection>
</Moneys>
<Accrual>
<Method>Actual/365 US Rule</Method>
<Days1Pmt DayCount="Actual">31</Days1Pmt>
<Maturity>2024-12-01</Maturity>
</Accrual>
<PmtStream Term="11" Pmt="500.00" Rate="10.000" Begin="2024-01-01"/>
<PmtStream Term="1" Pmt="5266.70" Rate="10.000" Begin="2024-12-01"/>
<AmTable>
<GrandTotals PmtTot="10766.70" IntTot="766.70" PrinTot="10000.00"/>
<SubTotals Year="2024" Start="1" Events="12" PmtSub="10766.70" IntSub="766.70" PrinSub="10000.00"/>
<AmLine Idx="1" Date="2024-01-01" BegBal="10000.00" Pmt="500.00" Int="84.93" Prin="415.07" EndBal="9584.93"/>
<AmLine Idx="2" Date="2024-02-01" BegBal="9584.93" Pmt="500.00" Int="81.41" Prin="418.59" EndBal="9166.34"/>
<AmLine Idx="3" Date="2024-03-01" BegBal="9166.34" Pmt="500.00" Int="72.83" Prin="427.17" EndBal="8739.17"/>
<AmLine Idx="4" Date="2024-04-01" BegBal="8739.17" Pmt="500.00" Int="74.22" Prin="425.78" EndBal="8313.39"/>
<AmLine Idx="5" Date="2024-05-01" BegBal="8313.39" Pmt="500.00" Int="68.33" Prin="431.67" EndBal="7881.72"/>
<AmLine Idx="6" Date="2024-06-01" BegBal="7881.72" Pmt="500.00" Int="66.94" Prin="433.06" EndBal="7448.66"/>
<AmLine Idx="7" Date="2024-07-01" BegBal="7448.66" Pmt="500.00" Int="61.22" Prin="438.78" EndBal="7009.88"/>
<AmLine Idx="8" Date="2024-08-01" BegBal="7009.88" Pmt="500.00" Int="59.54" Prin="440.46" EndBal="6569.42"/>
<AmLine Idx="9" Date="2024-09-01" BegBal="6569.42" Pmt="500.00" Int="55.80" Prin="444.20" EndBal="6125.22"/>
<AmLine Idx="10" Date="2024-10-01" BegBal="6125.22" Pmt="500.00" Int="50.34" Prin="449.66" EndBal="5675.56"/>
<AmLine Idx="11" Date="2024-11-01" BegBal="5675.56" Pmt="500.00" Int="48.20" Prin="451.80" EndBal="5223.76"/>
<AmLine Idx="12" Date="2024-12-01" BegBal="5223.76" Pmt="5266.70" Int="42.94" Prin="5223.76" EndBal="0.00"/>
</AmTable>
</outBALLOON_SPECIFY_REGULAR>
Balloon Loan, Specified Final Payment
Instead of specifying a regular payment and trying to compute a final payment, a borrower may request to specify the final payment. The SCE will then compute a regular payment, so long as the specified final payment is valid.
Sample Request
<inBALLOON_SPECIFY_FINAL AccrualCode="320">
<LoanDate>2023-12-01</LoanDate>
<PmtDate>2024-01-01</PmtDate>
<IntRate>10</IntRate>
<Proceeds>10000.00</Proceeds>
<Term>12</Term>
<FinalPmt>5000.00</FinalPmt>
</inBALLOON_SPECIFY_FINAL>
Sample Response
The following is the response associated with the request above, at the time this documentation was being written (2024-10):
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE outBALLOON_SPECIFY_FINAL SYSTEM "outBALLOON_SPECIFY_FINAL.dtd">
<outBALLOON_SPECIFY_FINAL>
<Results>
<Description>Successful Calculation</Description>
<Payment>523.06</Payment>
<Final>5000.00</Final>
</Results>
<FedBox>
<AmtFin>10000.00</AmtFin>
<FinChg>753.66</FinChg>
<TotPmts>10753.66</TotPmts>
<RegZAPR Type="Actuarial">10.030</RegZAPR>
</FedBox>
<Moneys>
<Principal>10000.00</Principal>
<Interest>753.66</Interest>
<Protection Category="None" PerPmt="0.00" PerDay="0.00">0.00</Protection>
</Moneys>
<Accrual>
<Method>Actual/365 US Rule</Method>
<Days1Pmt DayCount="Actual">31</Days1Pmt>
<Maturity>2024-12-01</Maturity>
</Accrual>
<PmtStream Term="11" Pmt="523.06" Rate="10.000" Begin="2024-01-01"/>
<PmtStream Term="1" Pmt="5000.00" Rate="10.000" Begin="2024-12-01"/>
<AmTable>
<GrandTotals PmtTot="10753.66" IntTot="753.61" PrinTot="10000.05"/>
<SubTotals Year="2024" Start="1" Events="12" PmtSub="10753.66" IntSub="753.61" PrinSub="10000.05"/>
<AmLine Idx="1" Date="2024-01-01" BegBal="10000.00" Pmt="523.06" Int="84.93" Prin="438.13" EndBal="9561.87"/>
<AmLine Idx="2" Date="2024-02-01" BegBal="9561.87" Pmt="523.06" Int="81.21" Prin="441.85" EndBal="9120.02"/>
<AmLine Idx="3" Date="2024-03-01" BegBal="9120.02" Pmt="523.06" Int="72.46" Prin="450.60" EndBal="8669.42"/>
<AmLine Idx="4" Date="2024-04-01" BegBal="8669.42" Pmt="523.06" Int="73.63" Prin="449.43" EndBal="8219.99"/>
<AmLine Idx="5" Date="2024-05-01" BegBal="8219.99" Pmt="523.06" Int="67.56" Prin="455.50" EndBal="7764.49"/>
<AmLine Idx="6" Date="2024-06-01" BegBal="7764.49" Pmt="523.06" Int="65.94" Prin="457.12" EndBal="7307.37"/>
<AmLine Idx="7" Date="2024-07-01" BegBal="7307.37" Pmt="523.06" Int="60.06" Prin="463.00" EndBal="6844.37"/>
<AmLine Idx="8" Date="2024-08-01" BegBal="6844.37" Pmt="523.06" Int="58.13" Prin="464.93" EndBal="6379.44"/>
<AmLine Idx="9" Date="2024-09-01" BegBal="6379.44" Pmt="523.06" Int="54.18" Prin="468.88" EndBal="5910.56"/>
<AmLine Idx="10" Date="2024-10-01" BegBal="5910.56" Pmt="523.06" Int="48.58" Prin="474.48" EndBal="5436.08"/>
<AmLine Idx="11" Date="2024-11-01" BegBal="5436.08" Pmt="523.06" Int="46.17" Prin="476.89" EndBal="4959.19"/>
<AmLine Idx="12" Date="2024-12-01" BegBal="4959.19" Pmt="5000.00" Int="40.76" Prin="4959.24" EndBal="-0.05"/>
</AmTable>
</outBALLOON_SPECIFY_FINAL>
Balloon Loan, Specified Amortization Term
Instead of specifying a regular or final payment and computing the other, a borrower may request to have a regular payment equivalent to that of a longer term equal payment loan, with the final payment computed to amortize the balloon loan at the shorter term. These are often called specified amortization term balloons, Canadian roll-over balloon loans, or loans with a long term amortization and short term call.
Sample Request
The following is a sample request for an balloon loan calculation with a term of 12 months and a long term amortization of 120 months.
<inBALLOON_SPECIFY_AMORT AccrualCode="310">
<LoanDate>2023-12-01</LoanDate>
<PmtDate>2024-01-01</PmtDate>
<IntRate>10</IntRate>
<Proceeds>10000.00</Proceeds>
<Term>12</Term>
<AmortTerm>120</AmortTerm>
</inBALLOON_SPECIFY_AMORT>
Sample Response
The following is the response associated with the the request above, at the time this documentation was being written (2024-10):
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE outBALLOON_SPECIFY_AMORT SYSTEM "outBALLOON_SPECIFY_AMORT.dtd">
<outBALLOON_SPECIFY_AMORT>
<Results>
<Description>Successful Calculation</Description>
<Payment>132.97</Payment>
<Final>9526.28</Final>
</Results>
<FedBox>
<AmtFin>10000.00</AmtFin>
<FinChg>988.95</FinChg>
<TotPmts>10988.95</TotPmts>
<RegZAPR Type="Actuarial">10.167</RegZAPR>
</FedBox>
<Moneys>
<Principal>10000.00</Principal>
<Interest>988.95</Interest>
<Protection Category="None" PerPmt="0.00" PerDay="0.00">0.00</Protection>
</Moneys>
<Accrual>
<Method>Actual/360 US Rule</Method>
<Days1Pmt DayCount="Actual">31</Days1Pmt>
<Maturity>2024-12-01</Maturity>
</Accrual>
<PmtStream Term="11" Pmt="132.97" Rate="10.000" Begin="2024-01-01"/>
<PmtStream Term="1" Pmt="9526.28" Rate="10.000" Begin="2024-12-01"/>
<AmTable>
<GrandTotals PmtTot="10988.95" IntTot="988.95" PrinTot="10000.00"/>
<SubTotals Year="2024" Start="1" Events="12" PmtSub="10988.95" IntSub="988.95" PrinSub="10000.00"/>
<AmLine Idx="1" Date="2024-01-01" BegBal="10000.00" Pmt="132.97" Int="86.11" Prin="46.86" EndBal="9953.14"/>
<AmLine Idx="2" Date="2024-02-01" BegBal="9953.14" Pmt="132.97" Int="85.71" Prin="47.26" EndBal="9905.88"/>
<AmLine Idx="3" Date="2024-03-01" BegBal="9905.88" Pmt="132.97" Int="79.80" Prin="53.17" EndBal="9852.71"/>
<AmLine Idx="4" Date="2024-04-01" BegBal="9852.71" Pmt="132.97" Int="84.84" Prin="48.13" EndBal="9804.58"/>
<AmLine Idx="5" Date="2024-05-01" BegBal="9804.58" Pmt="132.97" Int="81.70" Prin="51.27" EndBal="9753.31"/>
<AmLine Idx="6" Date="2024-06-01" BegBal="9753.31" Pmt="132.97" Int="83.99" Prin="48.98" EndBal="9704.33"/>
<AmLine Idx="7" Date="2024-07-01" BegBal="9704.33" Pmt="132.97" Int="80.87" Prin="52.10" EndBal="9652.23"/>
<AmLine Idx="8" Date="2024-08-01" BegBal="9652.23" Pmt="132.97" Int="83.12" Prin="49.85" EndBal="9602.38"/>
<AmLine Idx="9" Date="2024-09-01" BegBal="9602.38" Pmt="132.97" Int="82.69" Prin="50.28" EndBal="9552.10"/>
<AmLine Idx="10" Date="2024-10-01" BegBal="9552.10" Pmt="132.97" Int="79.60" Prin="53.37" EndBal="9498.73"/>
<AmLine Idx="11" Date="2024-11-01" BegBal="9498.73" Pmt="132.97" Int="81.79" Prin="51.18" EndBal="9447.55"/>
<AmLine Idx="12" Date="2024-12-01" BegBal="9447.55" Pmt="9526.28" Int="78.73" Prin="9447.55" EndBal="0.00"/>
</AmTable>
</outBALLOON_SPECIFY_AMORT>
Balloon Specified Regular - Request
Please see the Legend to understand the conventions used to document each element and attribute. Note that for requests, the XML elements are documented in alphabetical order by parent element.
🟥 <inBALLOON_SPECIFY_REGULAR>
Element Type | Data Type |
---|---|
Parent | - |
This element is the root element for the request. It is a parent element that has no data, but does have several attributes that offer a wide variety of adjustments.
Attributes:
🔹Account
,🔹AccrualCode
,🔹AprType
,🔹Country
,🔹DataDirPath
,🔹ForceReload
,🔹HideAmort
,🔹Lastday
,🔹MAPR_Max
,🔹Metavante
,🔹OddFinal
,🔹PmtDollarRound
,🔹PmtRound
,🔹PPY
,🔹UseMAPR
,🔹YieldPPY
🔹 Account
Data Type | Values | Default |
---|---|---|
Integer | [1...9999] | 1 |
This attribute specifies which account should be used to compute the requested
loan. Each account is numbered from 1 to 9,999, and each account corresponds to
a set of setup files which define numerous settings which may affect the loan
calculation, such as the accrual method, insurance methods and rates, etc. If
this attribute is not specified, a default value of 1
will be used.
🔹 AccrualCode
Data Type | Values | Default |
---|---|---|
Enum | See table | default |
This property allows an accrual method to be used other than the accrual method dictated by the setup file for the given account. If no accrual code attribute is specified, the method defined in the setup file will be used. The Accrual Code Table lists all valid accrual codes available. Note that for the split rate accrual codes (i.e. those above 500), the split rate tiers must be defined in the setup file.
🔹 AprType
Data Type | Values | Default |
---|---|---|
Enum | See below | default |
This attribute allows the calling application to specify an APR calculation method which will override the default value found in the setup file for the given account. If this attribute is set to a valid value, then the specified method will be used to compute the APR for this loan calculation.
If the Country
attribute has been set by the calling
application and this attribute is not set, then the APR method used will be
determined by the specified country. For the United States of America, the
default APR method is actuarial
. For a country in the European Union, the
default value is eu
(European Union APR). For Canada, the default APR method
is ca
(Canadian APR).
default
- Use setup file value.actuarial
- Appendix J Actuarial APRusrule
- US Rule APReu
- European Union APRca
- Canadian APRxirr
- Extended Internal Rate of Return (same as excel function)xirr360
- XIRR using a 360 divisor rather than a 365 divisorirr
- Simple Internal Rate of Return (same as excel function)
If this attribute is not specified and the Country
attribute
is not specified, then the value of default
will be used which informs the SCE
to use the APR method defined in the setup file for the specified
Account
.
🔹 Country
Data Type | Values | Default |
---|---|---|
Alpha-2 or Numeric-3 code | See table | US |
This attribute allows the calling application to specify a two (2) character or
three (3) digit country code. If none is provided, then a default value of US
will be used. Please see the Country Codes Table for the
list of supported countries and their associated codes.
Currently, the country code is used to determine the default value of the
AprType
attribute (see above).
🔹 DataDirPath
Data Type | Values | Default |
---|---|---|
Text | See below | See below |
If this attribute is set, the SCE will look for a data folder containing the
setup files in the path specified. Thus, if the DataDirPath
is set to
C:\SCEX\
, the SCE will look for the setup files in C:\SCEX\data
.
If the calling application wishes to specify the data directory path in its
entirety (e.g. the calling app does not want the SCE to append \data
to the
provided path), then simply terminate the specified DataDirPath
with an
asterisk (*
). Thus, if the DataDirPath
is set to C:\SCEX\bank1\*
, the SCE
will look for the setup files in C:\SCEX\bank1\
.
If this attribute is not set, the SCE will attempt to locate the data folder in
the default data directory path location, which can be retrieved using the
<inVERSION>
module query, and set via the SCE API.
This attribute is useful if you wish to use only a single installation of the
SCE, but have many different setup file groupings. By specifying a different
DataDirPath
for each grouping, you can easily separate the groups from one
another instead of grouping them all together in a single directory.
🔹 ForceReload
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
The SCE caches setup files previously used. This improves performance for
subsequent loan requests using one of the cached accounts. However, if you need
the SCE to reload the setup files for a given request (e.g. you just copied
over new setup files), then you can set this attribute to true
and the setup
files will be forced to reload. If left at the default value of false
, then
setup files are only reloaded when the SCE notices that one of the setup files
has been modified.
🔹 HideAmort
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
This attribute determines whether or not an amortization schedule will be
included in the response, given a successful loan calculation. If you do not
require the use of the amortization schedule, then setting this attribute to
true
will suppress its output. The default value of false
will return the
amortization schedule as part of the response.
🔹 Lastday
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If present, this attribute overrides the Last Day setting in the setup files, which only applies to loans computed with an actual day interest accrual calendar where the first payment date falls at the end of a month with fewer than 31 days. As an example, if the first payment date is on April 30, should the following payment dates be made on the 30th of each month, or on the last day of the month?
If no value is specified for this attribute, then the setup file setting will be
used. If true
is specified, then conditions triggering a last day situation
will result in payments which fall at the end of the month. A value of false
indicates that when dictated, subsequent payment dates will not be moved to the
last day of the month.
🔹 MAPR_Max
Data Type | Values | Default |
---|---|---|
Decimal | [-99.999...600] | 36.0 |
If you are computing the Military APR (see UseMAPR
below) and
wish to override the default maximum APR value of 36
%, then specify the
desired maximum as the value of this attribute.
🔹 Metavante
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to a value of true
, then the
<Metavante>
element will be included in the
response. Also, some loans will also disclose
<MinInterestPmt>
and
<MaxInterestPmt>
elements.
🔹 OddFinal
Data Type | Values | Default |
---|---|---|
Enum | default , true , false , 1 , 0 | default |
This attribute allows the calling application to specify an odd final payment
calculation method which will override the default value found in the setup file
for the given account. If not specified, then the value of default
will be used.
Odd final payments are sometimes desired to produce perfect amortization (i.e. an ending balance of zero after the final payment is made).
🔹 PmtDollarRound
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Payments are normally rounded to the penny, according to the method specified by
the PmtRound attribute (see below). If the payment should be rounded to the
dollar instead of the penny, then set the value of this attribute to true
.
Note that for some loans (such as those with longer terms or relatively small proceeds), rounding the payment up or to the nearest dollar may require a shortened loan term to prevent one or more negative payments at the end of the loan.
🔹 PmtRound
Data Type | Values | Default |
---|---|---|
Enum | default , nearest , up , down , best | default |
This attribute allows the calling application to specify a payment rounding
option which will override the value found in the setup file. If not specified,
then the value of default
will be used.
default
- Use method specified in setup file.nearest
- Round computed payment to the nearest penny, using 5/4 rounding. e.g. 300.242 = 300.24, 300.245 = 300.25.up
- Round computed payment up to the next penny. e.g. 300.241 = 300.25.down
- Round computed payment down to the previous penny. e.g. 300.249 = 300.24.best
- Once the unrounded payment has been computed, amortize the loan using the rounded down and rounded up payment, and then return the payment which amortizes the loan’s ending balance closest to zero.
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | See below | monthly |
PPY is an abbreviation for payments per year, and as one might surmise,
determines the payment frequency for the loan. The default value of monthly
will
result in a loan with 12 payments per year. If you require a loan with a payment
frequency other than monthly, specify it using this attribute.
Value | Translation | Description |
---|---|---|
1 | Annual | Once Per Year |
2 | SemiAnnual | Twice Per year (every six months) |
4 | Quarterly | Four per year (every three months) |
6 | Bimonthly | Six per year (every two months) |
12 | Monthly | Twelve per year (every month) |
24 | Semimonthly | Twice Per Month* |
26 | Biweekly | Every two weeks |
52 | Weekly | Every week |
* Semimonthly loans are characterized by making two payments per month on the same days. A common semimonthly schedule is to make payments every 1st and 16th of the month. Another common schedule is the 15th and the end of every month.
🔹 UseMAPR
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to a value of true
, the SCE will compute the Military
APR in addition to the Regulation Z APR. The <MAPR>
element will be included in the XML loan response.
🔹 YieldPPY
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 , 4 , 6 , 12 | 0 |
Canadian mortgages may compute periodic interest using a fractional power of a
periodic yield. If set to a value other than 0
, this value determines the
period. Please contact us for further information if you support mortgage
calculations in Canada. Note that when using this attribute with a value other
than zero, the calling application must include an odd days prepaid fee in the
request.
🟦 <Construction>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | Not a construction loan |
Include the <Construction>
element to configure a construction period on a
loan. The use of this element requires setup files configured to support
construction loans, or specification of the Method
to be used.
If the specified account is not set up to support construction loans, this
element will be ignored.
Attributes:
🔹Accrual
,🔹Active
,🔹HalfCommitment
,🔹Method
,🔹PermanentAttached
,🔹PPY
,🔸Rate
,🔸Term
,🔹UnitOddDayDivisor
🔹 Accrual
Data Type | Values | Default |
---|---|---|
Enum | default , unitperiod , actual360 , actual365 | default |
If the loan request is a construction loan with no permanent loan attached, this attribute allows the calling application to specify the accrual method used.
default
- The setup files determine the default value for interest accrual.unitperiod
- Compute periodic interest using a 1/PPY factor.actual360
- Compute periodic interest using the actual # of days between payments/360.actual365
- Compute periodic interest using the actual # of days between payments/365.
🔹 Active
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this loan request includes a construction loan, then set this attribute to
true
. If no construction loan is desired, either do not specify the
<Construction>
element or set this attribute to false
.
🔹 HalfCommitment
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
During the term of the construction loan, the estimated interest for disclosure
purposes may be either computed on the full or half commitment amounts. By
setting this attribute to true
, interest will be estimated using half of the
initial commitment amount (i.e. the principal balance). The default value of
false
will cause interest to be estimated using the entire initial commitment
amount.
🔹 Method
Data Type | Values | Default |
---|---|---|
Enum | default , simple , laserpro , intonly | default |
There are three methods used to define how construction loans are computed and
disclosed. A method of default
tells the SCE to use the method
configured in the setup file. The meaning of the three methods are as follows:
simple
- Compute an aggregate construction interest amount for the entire construction period for both pure construction loans and construction to permanent loans.laserpro
- Compute an aggregate construction interest amount for the entire construction period for pure construction loans. For construction to permanent loans, compute and disclose discrete interest-only payments during the construction period.intonly
- Compute and disclose discrete interest-only payments during the construction period for both pure construction loans and construction to permanent loans.
🔹 PermanentAttached
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Construction loans may be computed on their own, or they may be attached to a
permanent loan which begins at the conclusion of the construction loan. If a
permanent loan is attached to the construction loan, then set this attribute’s
value to true
and set up the permanent loan information in the request
elements.
The default value of false
indicates that this is solely a construction loan
with no permanent attached. In this case, you still need to set up the
<LoanDate>
, <PmtDate>
and <Proceeds>
elements.
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | 1 , 2 , 4 , 6 , 12 , 24 , 26 , 52 | 12 |
The PPY
attribute allows the calling application to specify the payment
frequency during the construction period. The default value of monthly will
result in a construction loan with 12 payments per year. If you require a
payment frequency during the construction period other than monthly, then
specify it using this attribute. Note that if a permanent loan is attached to
the construction loan, that the permanent loan's payment frequency may differ
from the construction period’s payment frequency.
🔸 Rate
Data Type | Values | Default |
---|---|---|
Decimal | [-99.999...600] | 0 |
This attribute determines the rate applied to the appropriate commitment amount during the term of the construction loan.
🔸 Term
Data Type | Values | Default |
---|---|---|
Integer | [1...60] * | 0 |
The term of the construction loan (in payments) is specified using this attribute. Please note that the term may not exceed five years.
* 60 is the maximum number of months in the Construction period. In general, the maximum entry is 5 *
PPY
, where the PPY is the payments per year attribute of the<Construction>
element.
🔹 UnitOddDayDivisor
(enum, [], Ignore)
Data Type | Values | Default |
---|---|---|
Enum | ignore , 360 , 365 , vardpy | ignore |
When specifying an Accrual
method of type unitperiod
, this
attribute allows the calling application to specify how odd days between the
loan and first payment dates are taken into account.
ignore
means that all odd days are ignored, and the calculation will assume
one full unit period. 360
and 365
will compute the actual number of days
between the loan date and first payment date, and then use either a 360 or 365
divisor to determine the amount of interest accrued during that period. vardpy
accrues interest in the same manner as accrual code 250/350.
🟦 <Fee>[]
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No fee |
Unlike most other elements, any number of fees may be defined, or none at all. All of the information used to compute a fee is contained in its attributes.
Attributes:
🔹AddToFinChg
,🔹AddToPrin
,🔹Adjust
,🔹CalcType
,🔸Entry
,🔹IsLoanCost
,🔹MAPR
,🔹MaxValue
,🔹MinValue
,🔹Name
🔹 AddToFinChg
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
If this fee should be included in the Reg. Z Finance Charge (and hence, affect
the APR), then set this attribute to true
. The default value of false
indicates that the fee does not affect the Finance Charge nor APR.
🔹 AddToPrin
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this fee should be added to the principal balance (e.g. the fee is financed
along with the amount requested), then set this attribute to true
. If set to
false
, then the fee is paid up front out of the borrower’s pocket.
🔹 Adjust
Data Type | Values | Default |
---|---|---|
Currency | any | 0 |
The optional attribute Adjust
allows the calling application to increase or
decrease the base amount on which a fee is calculated. If a negative value is
specified and this adjustment would produce a negative base amount, then a value
of zero is returned for the given fee. This attribute has no effect on fees with
a CalcType
of Dollar
.
As an example, in Tennessee you may need to define a financed, non-APR affecting fee to be computed by decreasing the amount financed by $2,000, and then multiplying this reduced amount by 0.115. The way to accomplish this in the SCEX is as follows:
<Fee CalcType="OnAmtFin" Entry="0.115" Adjust="-2000" AddToPrin="true" AddToFinChg="false" />
🔹 CalcType
Data Type | Values | Default |
---|---|---|
Enum | Dollar , OnProceeds , OnAmtFin , OnPrin , DocStamp | Dollar |
The value of this attribute determines how the fee is to be computed, as described below:
Dollar
- TheEntry
attribute is understood as a flat dollar amount.OnProceeds
- TheEntry
attribute is understood as a percentage value, to be applied to the loan’s proceeds. AnEntry
of1.0
would represent a fee of 1.0% of proceeds.OnAmtFin
- TheEntry
attribute is understood as a percentage value, to be applied to the Amount Financed. AnEntry
of0.5
would represent a fee of 0.5% of Amount Financed.OnPrin
- TheEntry
attribute is understood as a percentage value, to be applied to the loan’s principal balance. AnEntry
of0.125
would represent a fee of 0.125% of principal balance.DocStamp
- TheEntry
attribute is understood as a Florida doc stamp rate, to be applied to the loan’s principal balance. AnEntry
of0.35
would represent a fee of 0.35% of the principal balance. You must set the AddToFinChg attribute to false, otherwise the doc stamp fee will return a value of zero.
🔸 Entry
Data Type | Values |
---|---|
Decimal or Currency | >= 0 |
The Entry
is the basic starting point fee value that determines the dollar
value of the resulting fee computation. How this attribute is interpreted
depends upon the CalcType
attribute, described above. This
value is either a dollar value or a percentage (aka "points").
🔹 IsLoanCost
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
When requesting the new TILA RESPA outputs (via the
<TILARESPA2015>
element), the SCE needs to know which fees need
to be considered borrower paid loan costs, as defined in the rule. Please note
that if the fee is paid by a lender or other third party, then the fee does not
affect the loan calculation and should not be sent to the SCE. If it is sent,
then the value of this attribute should be set to false
.
🔹 MAPR
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If you wish to compute the Military APR, then certain fees may not be considered
Regulation Z APR affecting fees, but are considered Military APR affecting fees.
In this case, you will need to set the value of this attribute to true
.
Fees which are added to the finance charge (e.g.
AddToFinChg
="true"
) are always considered MAPR fees,
regardless of the stated value of this attribute.
Note that debt protection products are automatically included in the calculation of the Military APR, no matter what method is used for payment (e.g. single premium vs. monthly outstanding balance).
🔹 MaxValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If a maximum value for the fee is specified and is greater than zero, then if the computed fee exceeds this maximum value, then this maximum value will be used instead. If no maximum value is specified or is set to a value of zero, then no maximum will be enforced. Please note that this attribute is applied to all fee types documented.
🔹 MinValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If a minimum value for the fee is specified and is greater than zero, and if the
Entry
attribute holds a value greater than zero, then if the
computed fee is less than this minimum value, then this minimum value will be
used instead. If no minimum value is specified or is set to a value of zero,
then no minimum will be enforced. If a specified minimum value exceeds a
specified maximum value, then the minimum value will be ignored. Please note
that this attribute is applied to all fee types documented.
🔹 Name
Data Type | Values | Default |
---|---|---|
Text | any | n/a |
This attribute is for convenience purposes only, and does not affect the
calculation of the fee in any manner. If a Name
attribute is specified for the
<Fee>
element, then the corresponding <Fee>
element in the XML output will have a Name
attribute with the same value. This allows you to easily differentiate fees in
the response.
🟦 <Format>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | See attributes |
The <Format>
element is one of the first elements parsed from a request, as the
attributes of this empty element affect how date and numeric values are parsed
and validated.
Attributes:
🔹CurrencyDecimals
,🔹DateFormat
,🔹DateSeparator
,🔹DecimalSeparator
,🔹StrictDP
,🔹ThousandSeparator
🔹 CurrencyDecimals
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 | 2 |
When displaying and parsing Currency values, the value of this attribute
determines the maximum number of decimal places allowed after the
DecimalSeparator
.
🔹 DateFormat
Data Type | Values | Default |
---|---|---|
Enum | YMD , MDY , DMY | YMD |
When displaying and parsing Date values, this field determines the expected
format for all Date fields. The following DateFormat
options are allowed:
YMD
- All dates should be formatted as YYYY-MM-DD.MDY
- All dates should be formatted as MM-DD-YYYY.DMY
- All dates should be formatted as DD-MM-YYYY.
Note that the character which separates the individual month, day, and year
portions of the date is configurable via the
DateSeparator
attribute.
🔹 DateSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | - |
When displaying and parsing Date values, this attribute determines the character used to separate the individual month, day, and year portions of a date.
🔹 DecimalSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | . |
When displaying and parsing Currency or Decimal numeric values, this attribute determines the character used to separate the fractional part from the whole.
🔹 StrictDP
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 , | false |
If the value of this attribute is true
, then the SCE will strictly verify the
number of decimal places allowed for currency input values. Thus, if the calling
application sends in a request with a currency amount of 1000.005
, the SCE
will return an error code.
If the value of this attribute is false
, then currency values sent in with an
invalid number of decimal places will be rounded to the correct number of
decimal places by the SCE (using five/four rounding), and a warning message with
this information will be returned with the response.
🔹 ThousandSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | , |
When displaying numeric values, this attribute determines the character used to separate the thousands places from the hundreds. Note that when parsing numeric values, the value of this attribute is ignored.
🟥 <IntRate>
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | [-99.999...600] |
The element data will determine the annual interest rate used for the loan. (Split rate loans require use of the setup files.)
The interest rate should be expressed as an annual percentage. For example, a loan computed with an interest rate of 6.125% would be specified as:
<IntRate>6.125</IntRate>
Attributes: None
🟦 <IntStartDate>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= <LoanDate> and <= <PmtDate> | <LoanDate> |
This element contains the date on which interest begins to accrue on the loan’s
principal balance. If this element is not specified, then the interest start
date is defaulted to be the <LoanDate>
. Also note that the
interest start date must be equal to the loan date when computing a construction
loan. The interest start date (when specified) must be on or after the loan
date, as well as on or before the <PmtDate>
. All dates must be in
the form of YYYY-MM-DD, and be 10 characters long. Hence, an interest start date
April 27, 2024 would be specified as:
<IntStartDate>2024-04-27</IntStartDate>
Attributes: None
🟥 <LoanDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= 1900-01-01 |
This element determines when interest begins to accrue. If interest begins on a
later date, use the <IntStartDate>
element to define the date
on which interest begins to accrue.
This element contains the date on which the loan amount is disbursed and interest begins to accrue. All dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a loan date of March 4, 2024 would be specified as:
<LoanDate>2024-03-04</LoanDate>
Attributes: None
🟦 <Mortgage_Insurance>
Element Type | Data Type | Values | Default |
---|---|---|---|
Parent | - | - | No mortgage insurance |
The <Mortgage_Insurance>
element determines if this loan includes one of the
supported types of mortgage insurance (MI) - PMI or FHA. This element contains
child elements which further specify mortgage insurance options.
NOTE: Mortgage insurance is only supported on equal, balloon, and interest only loan builder requests at this time.
Attributes:
🔹CashDown
,🔹LoanAmt
,🔸PropertyValue
,🔹Type
🔹 CashDown
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
The CashDown
attribute represents a cash down payment made at closing. If
specified and greater than zero, this amount will be deducted from the principal
balance. If not specified, the cash down payment will default to zero.
🔹 LoanAmt
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | Principal balance |
The LoanAmt
attribute represents the amount by which the PMI rates are
multiplied to produce a level PMI premium. If not specified, then the principal
balance will be used to compute the annual premium.
🔹 PropertyValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
This attribute’s value represents the appraised property value, and will be used in the calculation of the loan to value ratio.
🔹 Type
Data Type | Values | Default |
---|---|---|
Enum | pmi , fha | pmi |
This attribute determines the type of mortgage insurance to include with the
loan. If the Type
attribute is set to FHA
, a different MI premium is
computed every twelve months based upon the average outstanding principal
balance during that same term. The MI calculation adheres strictly to the HUD
regulation.
🟥 <Mortgage_Insurance>
→<MI_Rate>[]
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | >= 0 |
The value of this element specifies the cost of mortgage insurance per $100 of
the loan amount. Note that there may be more than one <MI_Rate>
element
defined in an XML loan request (see the Switch
attribute
below).
As an example, a loan computed with a MI rate of $1.50 per $100 would be
specified as <MI_Rate>1.50</MI_Rate>
.
Attributes:
🔸Switch
🔹 Switch
Data Type | Values | Default |
---|---|---|
Integer | > 0 | 0 |
This optional attribute defines the payment number beyond which the associated MI rate will apply. If not specified, the value will default to zero.
Thus, if there is only a single MI rate, one may omit this attribute. Single rate example (use a rate of $1.50 for the entire term of MI coverage):
<MI_Rate>1.50</MI_Rate>
Multiple rate example (use a rate of $1.50 for the first 10 years, with a rate of $0.20 for coverage beyond 10 years):
<MI_Rate>1.50</MI_Rate>
<MI_Rate Switch="120">0.20</MI_Rate>
🟦 <Mortgage_Insurance>
→<Periodic>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Integer | >= 0 | 0 |
The value of this element represents the term beyond which MI is no longer
included. As an example, if mortgage insurance must be removed after the 180th
payment, then the calling application should specify <Periodic>180</Periodic>
in the XML loan request. 0
means no term removal is in effect.
🔹 DropLTV
Data Type | Values | Default |
---|---|---|
Decimal | >= 0 and <= 100 | 0 |
The value of this attribute determines the loan to value ratio at which MI
should be removed, and is expressed as a percentage. For example, if you wish to
automatically drop MI when the loan to value ratio first equals or falls below
78%, then you would specify DropLTV="78.0"
.
🔹 WarnLTV
Data Type | Values | Default |
---|---|---|
Decimal | >= 0 and <= 100 | 0 |
The value of this attribute determines the loan to value ratio at which a
warning should be issued, and is expressed as a percentage of LTV (loan to
value). For example,if you wish to know when the loan to value ratio first
equals or falls below 80%, then you would specify WarnLTV="80.0"
.
🟦 <Mortgage_Insurance>
→<UpFront>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Decimal | >= 0 | 0 |
This element determines the up front fee for mortgage insurance, as disclosed in
the <PMI_Fee>
element in the results. If this element is not
specified, no up front fee will be computed. Note that ZOMP (zero option monthly
premium) products do not have an up front fee, which means that this element can
be omitted or set to zero.
The following attributes define how the fee is computed and disclosed.
🔹 Paid
Data Type | Values | Default |
---|---|---|
Enum | Financed , AtClosing , ByLender | AtClosing |
If the value of this attribute is set to Financed,
then the computed up front
fee will be added to the principal balance and the finance charge. A value of
AtClosing
will cause the value of the fee to be added to the finance charge
alone. Finally, a value of ByLender
means that the up front fee is to be paid by
the lender; hence, the value of the fee is a Pocket Fee that is not added to
either the principal balance nor the finance charge.
🔹 Units
Data Type | Values | Default |
---|---|---|
Enum | Months , Points , Years | Months |
If the Units attribute is set to Months
, the value of the
<UpFront>
element represents the number of periodic MI premiums to
be paid at closing.
If the Units attribute is set to Years
, the value of the
<UpFront>
element represents the number of annual MI premiums to
be paid at closing.
Many single premium products define the up front fee as a number of years of MI to be paid up front.
Finally, if the Units attribute is set to Points
, the value of the
<UpFront>
element represents the percentage of principal to be
paid up front. As of October 3, 2011, FHA loans use points.
🟦 <OddDaysPrepaid>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No odd days prepaid interest |
If odd days interest should be treated as a prepaid finance charge or added to the first payment, then include this empty element in the request. The attributes of this element determine how odd days interest is computed and handled.
Attributes:
🔹AccrualCode
,🔹AddToPmt
,🔹AddToPrin
,🔹AnchorDate
,🔹ForceUnitPeriod
,🔹NoCap
,🔹UseDailyCost
,🔹UseNegODI
🔹 AccrualCode
Data Type | Values | Default |
---|---|---|
Enum | See below | 220 |
The accrual code defines how the odd days interest is computed.
Note that accrual code 250
("Variable Days Per Year") defines the basis divisor
days to be equal to 12 multiplied by the number of days in the month of the date
on which interest begins to accrue. Thus, if the interest start date falls in
November, then the number of basis days is 360. If the interest start date falls
in a month with 31 days, then the number of basis days is 372. For an interest
start date in February, the number of basis days will either be 336 or 348,
depending upon whether or not it is a leap year.
AccrualCode | Description |
---|---|
204 | Unit period simple w/ true 360 calendar and 360 day divisor |
205 | Unit period simple w/ true 360 calendar and 365 day divisor |
210 | Actual / 360 simple |
211 | True 365 / 360 simple |
220 | Actual / 365 simple |
221 | True 365 / 365 simple |
230 | Actual / Actual simple |
231 | Midnight 366 simple |
250 | Unit period simple w/ variable DPY divisor |
🔹 AddToPmt
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application wants the odd days interest to be added to the first
payment, then set the value of this attribute to true
. A value of false
indicates that the odd days interest will be treated as a prepaid fee.
🔹 AddToPrin
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If any odd days interest should be treated as a financed prepaid fee, then set
the value of this attribute to true
. Note that if both
AddToPmt
and AddToPrin
are set to true
, then a warning
message will be returned by the SCEX and the value of AddToPrin
will be set to
false
.
🔹 AnchorDate
Data Type | Values | Default |
---|---|---|
Enum | BackUnitPeriod , BackDaysPerPeriod | BackUnitPeriod |
The computed number of odd days is the number of days between the loan date and the anchor date. This attribute determines how to arrive at the anchor date.
BackUnitPeriod
- The anchor date is one unit period prior to the specified first payment date.BackDaysPerPeriod
- The anchor date is the number of days per period prior to the first payment date.
Please note that for both of these methods, the period used will be that associated with the payment stream in which the first payment occurs.
🔹 ForceUnitPeriod
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the loan's interest accrual is unit period, this attribute forces the period
to the first payment to be 1/12 (or 1/(PmtsPerYear) in general). Without this
attribute an accrual code of 202
(Unit Period /365) would use a factor of
Days/365 rather than the expected 1/12.
🔹 NoCap
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
When an odd days interest fee is present and financed, the value of this
attribute determines if the ODI fee is added to the principal balance for the
purposes of computing the ODI fee (e.g. if it is capitalized). If this value is
true
, the ODI is computed on the true principal balance less the ODI; false
means "compute ODI on the true principal balance.
🔹 UseDailyCost
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the total odd days prepaid fee is computed by first generating a rounded (to
the nearest penny) daily cost and then multiplying this value by the computed
number of odd days, then set the value of this property to true
.
A value of false
means that the daily cost is left unrounded, and the total
prepaid fee is rounded after the computation is complete.
🔹 UseNegODI
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If there are negative odd days in the loan, then the value of this attribute
determines if a negative odd days interest fee is computed. If the value of this
attribute is false
, then negative odd days fees are not allowed, the SCEX will
return a value of zero in this situation, and the computed payment will be
adjusted to take into account the negative odd days. A value of true
will
return a negative odd days interest fee (in effect, it then becomes an odd days
interest credit) when there are negative odd days in a loan.
🟥 <PmtDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= <LoanDate> and >= <IntStartDate> |
This element contains the date on which the first payment of the loan is made, and must be on or after the loan date.
All dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a first payment date of April 4, 2024 would be specified as:
<PmtDate>2005-04-04</PmtDate>
Attributes: None
🟥 <Proceeds>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | >= 0 |
The proceeds specifies the amount the customer has frequested to borrow, ignoring every other financed quantity. Proceeds of up to one billion dollars are accepted.
The amount should be expressed as a number. For example, a request including
<Proceeds>10000.00</Proceeds>
indicates an amount requested of 10,000.
Attributes: None
🟦 <Protection>
Element Type | Data Type | Values | Default |
---|---|---|---|
Parent | - | - | No protection included |
The <Protection>
element is used to specify debt protection coverages such as
life, disability, involuntary unemployment, personal property and debt
cancellation. Each type of coverage is specified by its own sub-element, along
with the borrower birthdays. The following attributes apply to this element:
Attributes:
🔹FinanceProt
,🔹LineOfCredit
,🔹Mandatory
,🔹ShowBorrowerInfo
,🔹ShowCaps
🔹 FinanceProt
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
If the computed premiums for single premium debt protection products should be
financed along with the proceeds, then this attribute should be set to true
(which is the default value if not specified). A value of false
indicates that
the computed premiums will not be financed with the proceeds, and hence will be
paid out of pocket by the borrower. Note that this applies to single premium
insurance products only!
🔹 LineOfCredit
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this is an account using TruStage’s MOB insurance, and if this loan is a line
of credit where product term caps should be ignored, then set this attribute to
true
. Otherwise, leave this attribute unspecified or set it to false
.
🔹 Mandatory
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the value of this attribute is set to true
, then any computed payment
protection premium or fee will be considered a mandatory fee which will be
included as a part of the Regulation Z Finance Charge, and hence affect the
Regulation Z APR. In this case, the <Protection>
element in the response will contain a
Mandatory
="true"
attribute indicating this.
If the Mandatory attribute is set to false
, the loan will treat any premiums /
fees as normal.
🔹 ShowBorrowerInfo
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application would like to have data returned for each specified
borrower instead of a single <CovTerm>
element, then
set the value of this attribute to true
. Otherwise, leave this attribute
unspecified or set it to false
. See the <Borrower>
and <CovTerm>
elements defined in the response for
more information.
🔹 ShowCaps
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application would like to have cap information (e.g., maximum
terms, coverage amounts, ages, etc.) returned for each product offered, set the
value of this attribute to true
. Otherwise, leave this attribute unspecified
or set it to false
. See the <Caps>
element for more
information.
🟦 <Protection>
→<Birthday1>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= 1900-01-01 | No birthday specified |
This element contains the date of birth for the primary borrower. All dates must
be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a birthday of
April 9, 1972 would be specified as <Birthday1>1972-04-09</Birthday1>
. Note
that this element must be set if the Covers attribute of any of the four debt
coverage elements is set to borrower1
or both
.
Attributes: None
🟦 <Protection>
→<Birthday2>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= 1900-01-01 | No birthday specified |
This element contains the date of birth of the secondary borrower. All dates
must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a birthday
of May 21, 1969 would be specified as <Birthday2>1969-05-21</Birthday2>
.
Attributes: None
🟦 <Protection>
→<Disability>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No disability coverage |
The <Disability>
element determines what type of disability coverage is
requested for the loan. It also serves double duty as the debt cancellation
coverage element, for accounts set up to compute debt cancellation using the
disability tables. The element itself is empty, with all information needed for
disability coverage request being specified in the following attributes:
Attributes:
🔹Benefit
,🔹CoverBalloon
,🔹Covers
,🔹CovTerm
,🔹Table
🔹 Benefit
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
🔹 CoverBalloon
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
This attribute is only applicable when the loan is covered with TruStage single premium insurance. If this attribute is set to true, then the SCE will cover the regular benefit amount for the amortization term of the loan. If set to false, then the regular benefit amount is covered for the actual loan term.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in the appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <Disability>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will assure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user specified coverage terms, then this attribute will be ignored.
🔹 Table
Data Type | Values | Default |
---|---|---|
Integer | [0...19] | 0 |
If the specified account has been set up with multiple disability or debt
cancellation plans, then this attribute determines which plan number will be
used. If no table number is specified, the first table (table zero) will be
used. To find out the number of available plans, use the
<AhSetCount>
element in the
<inINPUT_TOOL>
response.
🟦 <Protection>
→<Life>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No life coverage |
The <Life>
element determines what type of life coverage is requested for the
loan. The element itself is empty, with all information needed for a life
coverage request being specified in the following attributes:
Attributes:
🔹Coverage
,🔹Covers
,🔹CovTerm
,🔹Dismemberment
,🔹Method
,🔹UseLevelRates
🔹 Coverage
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
If you wish to specify a coverage amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum coverage amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified coverage amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in the appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <life>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will assure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user specified coverage terms, then this attribute will be ignored.
🔹 Dismemberment
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the specified account has been set up to offer optional dismemberment coverage to be offered with life coverage (using an increased rate in the premium calculation), then this attribute determines whether or not this additional coverage will be provided.
🔹 Method
Data Type | Values | Default |
---|---|---|
Enum | default , net , gross | default |
If the specified account has been set up to offer single premium life coverage
by default, net or gross coverage, then this attribute can be used to specify
which type of coverage to compute with the loan. For all other accounts, the
default value of default
should be used (or simply do not specify the attribute
at all).
🔹 UseLevelRates
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the account specified has been set up to offer single premium credit life
using level rates instead of the normal decreasing rates, then set this
attribute’s value to true
. Otherwise, use the default value of false
.
🟦 <Protection>
→<Property>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No property coverage |
The <Property>
element determines what type of personal property coverage is
requested for the loan. The element itself is empty, with all information needed
for coverage request being specified in the following attributes:
🔹 Coverage
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a coverage amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum coverage amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user-specified coverage amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The value borrower1
represents single coverage on the primary borrower (whose
birthday is contained in element <Birthday1>
). A request for
joint coverage on both borrowers is indicated by a value of both
. Finally, if
no coverage is desired, specify a value of none
or omit the <Property>
element entirely.
🟦 <Protection>
→<Unemployment>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No unemployment coverage |
The <Unemployment>
element determines what type of involuntary unemployment
coverage is requested for the loan. The element itself is empty, with all
information needed for a coverage request being specified in the following
attributes:
🔹 Benefit
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in the appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <Unemployment>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will ensure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user-specified coverage terms, then this attribute will be ignored.
🟥 <RegPmt>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | > 0 |
This required element contains the desired regular payment amount. So long as this specified payment is not too large, the SCE will compute a final balloon payment to amortize the loan.
Attributes: None
🟦 <ServiceCharge>[]
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No service charge |
As with the <Fee>
element, any number of <ServiceCharge>
elements
may be added to a loan. Service charges are supported on single, equal, and
balloon payment loans only.
The <ServiceCharge>
element itself contains no data. Instead, all of the
information used to compute the service charge is contained in the following
attributes of the element:
🔸 Entry
(decimal, 0)
How this attribute is interpreted depends upon the Type
attribute, described below. It is the numeric amount defining either the lump
sum or periodically paid service charge.
🔹 Exact
(boolean, false)
The Exact
attribute is only considered when the service charge is of
Type
LumpSum
. When the calculated periodic amount is
rounded, it will most often times produce a total service charge amount that
differs from that entered.
If the Exact
attribute is set to true
, then the final periodic amount will be
adjusted so that the sum of all periodic amounts is exactly equal to the entered
amount (and will result in an odd final payment). A value of false
indicates
that the final periodic amount will not be adjusted.
🔹 Name
(text, "")
This attribute is for convenience purposes only, and does not affect the
calculation of the service charge in any manner. If a Name
attribute is
specified for the <ServiceCharge>
element, then the corresponding
<ServiceCharge>
element in the response will have a
Name
attribute with the same value. This allows
you to easily differentiate fees in the response.
🔹 Round
(enum, [nearest, up, down], nearest)
This attribute is only considered when the service charge is of
Type
LumpSum
. It determines how the calculated periodic
amount is rounded.
🔹 Type
(enum, [LumpSum, Periodic], LumpSum)
A service charge of Type
of LumpSum
allows the calling application to specify an
amount that will be spread out evenly over the loan’s payment stream. On the
other hand, a Periodic
service charge is the amount which will be added to each
payment.
🟥 <Term>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | [2...600] * |
The value of this element indicates the number of payments in the loan.
The term must be entered as a number of payments, not a duration of time.
Therefore, <Term>72</Term>
represents 72 payments, not 72 months (or years).
This term is intimately tied to the PPY
(# of payments per year)
attribute of the root element. If the value of the PPY
attribute
was 24
(semimonthly) for this loan, the 72 payments would mean that the
duration of the loan is three years, since years = number of payments / payments
per year = 72 / 24 = 3.
* In general, the term can be no greater than 50 years, so the maximum entry would be 50 *
PPY
. Weekly loans, however, are limited to 30 years, or 1,560 payments.
Attributes: None
🟦 <TILARESPA2015>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No TILA RESPA disclosures |
The presence or absence of this element determines whether or not the TILA RESPA data table is present in the output.
If this element is present in the loan request, then the SCEX will return data for the Integrated Mortgage Disclosures under the Real Estate Settlement Procedures Act (Regulation X) and the Truth In Lending Act (Regulation Z) rule, which is required as of August 1st, 2015. If this element is not present, then the TILA RESPA outputs will not be generated.
Attributes: None
🟦 <TotalDown>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
This optional element represents the total down payment that the borrower has applied to reduce the requested proceeds. It may consist of a cash down payment, net trade-in value, or rebate. You only need to specify a total down payment if the loan needs to disclose a total sale price. Typical examples of these loan types are auto and boat loans.
To generate a total down payment, please see the chapter detailing the SCEX’s Auto Prompts module.
Attributes: None
Balloon Specified Regular - Response
Please see the Legend to understand the conventions used to document each element and attribute. Note that for responses, the XML elements are documented in the order that they appear in the response.
🟥 <outBALLOON_SPECIFY_REGULAR>
Element Type | Data Type |
---|---|
Parent | - |
This element is the root element of the response, and contains all of the relevant outputs.
Attributes:
🔹CountryName
🔹 CountryName
Data Type | Values | Default |
---|---|---|
Text | See table | United States of America |
If a valid Country
code was specified as an
attribute of the input module element, the full name of the country associated
with the specified Country code will be reported in this attribute.
🟥 <Results>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which describe the success or failure of the calculation, any warning or error messages, and the most important numerical results for the query.
<Results>
<Description>Successful Calculation</Description>
<Payment>500.00</Payment>
<Final>5266.70</Final>
</Results>
Attributes: None
🟥 <Results>
→<Description>
Element Type | Data Type |
---|---|
Data | Text |
If the calculation was completed successfully, then this element will contain
the value Successful Calculation
. Otherwise, this element will contain a
description of the problem encountered during the attempted computation.
Attributes: None
🟦 <Results>
→<XMLDetail>[]
Element Type | Data Type | Default |
---|---|---|
Data | Text | NULL |
The <XMLDetail>
elements are messages passed back to the calling application
which detail the status of the XML request. If the SCEX issues any warnings
regarding unrecognized elements or attributes, then each warning message will be
displayed in an <XMLDetail>
element.
Attributes: None
🟥 <Results>
→<Payment>
Element Type | Data Type |
---|---|
Data | Currency |
The computed regular payment amount corresponding to an equal payment loan using
the specified amortization term (see <AmortTerm>
).
Attributes: None
🟥 <Results>
→<Final>
Element Type | Data Type |
---|---|
Data | Currency |
The computed final (or balloon) payment amount, given the regular payment computed by the SCE and disclosed above.
Attributes: None
🟥 <FedBox>
Element Type | Data Type |
---|---|
Parent | - |
Some of the most important compliance related outputs are organized into the
<FedBox>
disclosures.
<FedBox>
<AmtFin>10000.00</AmtFin>
<FinChg>766.70</FinChg>
<TotPmts>10766.70</TotPmts>
<RegZAPR Type="Actuarial">10.029</RegZAPR>
</FedBox>
Attributes: None
🟥 <FedBox>
→<AmtFin>
Element Type | Data Type |
---|---|
Data | Currency |
The Regulation Z Amount Financed, which is defined as the amount of credit provided to you or on your behalf.
Attributes: None
🟥 <FedBox>
→<FinChg>
Element Type | Data Type |
---|---|
Data | Currency |
This element contains the Regulation Z Finance Charge, described as the dollar amount the credit extension will cost you.
Attributes: None
🟥 <FedBox>
→<TotPmts>
Element Type | Data Type |
---|---|
Data | Currency |
The amount which the borrower will have paid when the borrower has made all scheduled payments.
Attributes: None
🟦 <FedBox>
→<TotalSalePrice>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | <TotPmts> |
The sum of the total of payments plus the total down payment. Please note that
if no <TotalDown>
element was specified in
the request, then this element will not be present.
Attributes: None
🟥 <FedBox>
→<RegZAPR>
Element Type | Data Type |
---|---|
Data | Decimal |
The Regulation Z APR, which is the cost of the extension of credit expressed as a yearly rate. The Reg. Z APR element has a few attributes, described below:
Attributes:
🔹Max
,🔹MaxExceeded
,🔸Type
🔹 Max
Data Type | Default |
---|---|
Decimal | n/a |
This attribute specifies the maximum APR as configured in the account's setup files. If no maximum APR has been specified, then this attribute will not be present. The value of this attribute should be displayed as a percentage. As an example, for Max="36.000", you would disclose a maximum APR of 36.000%.
🔹 MaxExceeded
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
If a maximum APR is configured in the account's setup files, then the value of
this attribute indicates whether or not the current loan exceeds the maximum
allowed APR. As an example, if the maximum APR has been set to 36% and the APR
for the returned loan was 37.125%, the <RegZAPR>
element would be:
<RegZAPR Type="Actuarial" Max="36.000" MaxExceeded="true">37.125</RegZAPR>
🔸 Type
Values | |
---|---|
Enum | Actuarial , USRule , EU_APR , Canadian_APR , XIRR , XIRR360 , IRR , YieldIRR , Open_End |
This attribute specifies the method used to compute the reported APR: Actuarial or US Rule The method used is dictated by the setup files for the given account, but may be overridden in the XML input query.
Actuarial
- Governed by Appendix J to Regulation Z. Default US APR.USRule
- Used by large banks to mirror loan amortization.EU_APR
- Default European Union APR.Canadian_APR
- Default APR for Canada.XIRR
- Extended Internal Rate of Return (same as excel function).XIRR360
-XIRR
using a 360 divisor rather than a 365 divisor.YieldIRR
- Canadian mortgages may compute periodic interest using a fractional power of a periodic yield.Open_End
- Simply returns the interest rate.
🟦 <FedBox>
—><MAPR>
Element Type | Data Type |
---|---|
Data | Decimal |
If the military APR has been requested, then this element will be included in the output. The value of the element is the military APR, and the element has a few attributes, described below:
Attributes:
🔸Advance
,🔹Max
,🔹MaxExceeded
🔸 Advance
Data Type |
---|
Currency |
This attribute is the equivalent of the Amount Financed for the Military APR. Specifically, it is the principal balance less any MAPR fees, debt protection, etc.
🔹 Max
Data Type | Default |
---|---|
Decimal | 36.0 |
This attribute specifies the maximum Military APR as specified in the input XML
(see MAPR_Max
). If not specified, a default value
of 36% is assumed. The value of this attribute should be displayed as a
percentage. As an example, for Max="36.0"
, you would disclose a maximum
Military APR of 36.0%.
🔹 MaxExceeded
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
The value of this attribute 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>
element would be:
<MAPR Advance="1350.00" Max="36.000" MaxExceeded="true">37.125</MAPR>
🟦 <TILARESPA2015>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which are of interest to fulfilling the
2015 TILA RESPA rule. It will only be present if the
<TILARESPA2015>
element is present in the
request.
Sample TILARESPA2015 output:
<TILARESPA2015>
<TotalLoanCosts>0</TotalLoanCosts>
<CD_TotPmts>27311.07</CD_TotPmts>
<In5Years PaidTotal="27311" PaidPrincipal="25000"/>
<TIP>9.244</TIP>
<MaxPnIPmt Date="2012-11-01">1636.65</MaxPnIPmt>
<MinRate Idx="1">5.651</MinRate>
<MaxRate Idx="1">5.651</MaxRate>
<ProjectedPayments NumCols="3">
<PPCol Num="1" Title="Year 1">
<Years Start="1" End="1"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
<PPCol Num="2" Title="Year 2">
<Years Start="2" End="2"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
<PPCol Num="3" Title="Year 3">
<Years Start="3" End="3"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
</ProjectedPayments>
</TILARESPA2015>
Attributes: None
🟦 <TILARESPA2015>
→<LoanCost>[]
Element Type | Data Type |
---|---|
Data | Currency |
For every <Fee>
element present in the input which has
its IsLoanCost
attribute 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>
input element), there will be a
corresponding <LoanCost>
element. The value of this element will be the
numerical value of the fee, rounded to the nearest dollar.
🔹 In5Years
Data Type | Default |
---|---|
Currency | <LoanCost> |
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 attribute will be present and disclose the portion of this loan cost that is accrued during the first five years.
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
This attribute will hold the same value as the attribute of the same name for
the <Fee>
element. It is recommended that each fee
have a unique Name
for identification purposes.
🟥 <TILARESPA2015>
→<TotalLoanCosts>
Element Type | Data Type |
---|---|
Data | Currency |
This element holds the sum of all borrower paid loan costs. Since all
<LoanCost>
element values are rounded dollar amounts, the value of this
element will also be a rounded dollar amount.
Attributes: None
🟥 <TILARESPA2015>
→<CD_TotPmts>
Element Type | Data Type |
---|---|
Data | Currency |
This element holds 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 will be the numerical value of the sum.
Attributes: None
🟥 <TILARESPA2015>
→<In5Years>
Element Type | Data Type |
---|---|
Empty | - |
This element is empty, with all important values required for the new "In 5 Years" section returned in the following two attributes of this element.
Attributes:
🔸PaidPrincipal
,🔸PaidTotal
🔸 PaidPrincipal
Data Type |
---|
Currency |
This attribute 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.
🔸 PaidTotal
Data Type |
---|
Currency |
This attribute 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.
🟥 <TILARESPA2015>
→<TIP>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the total interest percentage, rounded to three or fewer decimal places, as required.
Attributes: None
🟥 <TILARESPA2015>
→<MaxPnIPmt>
Element Type | Data Type |
---|---|
Data | Currency |
The value of this element holds the maximum scheduled principal and interest payment during the term of the loan.
Attributes: 🔸
Date
🔸 Date
Data Type |
---|
Date |
This attribute contains 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. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🟥 <TILARESPA2015>
→<MinRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the minimum possible interest rate applied during the term of the loan.
Attributes: 🔸
Idx
🔸 Idx
Data Type |
---|
Integer |
This attribute contains the payment number for which the minimum rate is first applicable.
🟥 <TILARESPA2015>
→<MaxRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the maximum possible interest rate applied during the term of the loan.
Attributes: 🔸
Idx
🔸 Idx
Data Type |
---|
Integer |
This attribute contains the payment number for which the maximum rate is first applicable.
🟥 <TILARESPA2015>
→<ProjectedPayments>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which are of interest to filling the
Projected Payments table. It will only be present if the <TILARESPA2015>
element is present in the XML request for a supported loan type.
Attributes: 🔸
NumCols
🔸 NumCols
Data Type | Values |
---|---|
Integer | [1...4] |
This attribute will hold the number of columns which must be present in the Projected Payments table. It will be a numeric value from 1 to 4.
🟥 <ProjectedPayments>
→<PPCol>[]
Element Type | Data Type |
---|---|
Parent | - |
For every column required in the Projected Payments table, there will be an
associated <PPCol>
element. This element is a parent to child elements which
contain data associated with a single column of the table.
🔸 Num
Data Type | Values |
---|---|
Integer | [1...4] |
This attribute will hold the number of the column to which the following data applies.
🔸 Title
Data Type |
---|
Text |
The value of this attribute 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.
🟥 <ProjectedPayments>
→<PPCol>
→<Years>
Element Type | Data Type |
---|---|
Empty | - |
The attributes of this element hold the beginning and ending year numbers for which this column data applies. The element itself is empty.
🔸 End
Data Type |
---|
Integer |
The ending year associated with this column's data.
🔸 Start
Data Type |
---|
Integer |
The beginning year associated with this column's data.
🟥 <ProjectedPayments>
→<PPCol>
→<PnIPmt>
Element Type | Data Type |
---|---|
Empty | - |
This empty element has several attributes which describe the principal and interest payments associated with this column.
🔸 Balloon
Data Type | Values |
---|---|
Boolean | true , false |
If any of the payments associated with this column are balloon payments (e.g.
isolated payments that are more than twice the value of a regular periodic
payment), then the value of this attribute will be true
.
🔸 IntOnly
Data Type | Values |
---|---|
Enum | all , some , none |
none
- No payments associated with the column are Interest Onlysome
- Some, but not all, of the payments associated with the column are Interest Only.all
- All of the payments associated with the column are Interest Only.
Note that for the purposes of this attribute, 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.
🔸 Max
Data Type |
---|
Currency |
This attribute holds the maximum principal and interest payment for this column.
If this value is not the same as the value of the Min
attribute, then a range of rounded payments must be displayed. If the values are
the same, then only a single value needs to be disclosed.
🔸 Min
Data Type |
---|
Currency |
This attribute holds the minimum principal and interest payment for this column.
🟥 <ProjectedPayments>
→<PPCol>
→<MIPmt>
Element Type | Data Type |
---|---|
Data | Currency |
The value of this element 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.
Attributes: None
🟥 <ProjectedPayments>
→<PPCol>
→<TotalPmt>
Element Type | Data Type |
---|---|
Empty | - |
This empty element has two attributes which describe the estimated total payment or range of payments associated with this column. Note that this value does not include any estimated escrow, as the SCEX does not support escrow calculations. The calling application will need to increase these values by the estimated escrow amounts if any are present.
🔸 Max
Data Type |
---|
Currency |
This attribute holds the maximum estimated total payment for this column. If
this value is not the same as the value of the Min
attribute,
then a range of rounded payments must be displayed. If the values are the same,
then only a single value needs to be disclosed.
🔸 Min
Data Type |
---|
Currency |
This attribute holds the minimum estimated total payment for this column.
🟥 <Moneys>
Element Type | Data Type |
---|---|
Parent | - |
This element groups together those other major cash amounts not disclosed under
the <FedBox>
element, such as the principal balance, interest
change, fee amounts and protection premiums.
<Moneys>
<Principal>10120.00</Principal>
<Interest>1635.80</Interest>
<OddDaysPrepaid OddDayCount="15" DailyCost="2.77">41.55</OddDaysPrepaid>
<FinFees>120.00</FinFees>
<FinChgFees>91.55</FinChgFees>
<PocketFees>65.00</PocketFees>
<MAPRFees>201.55</MAPRFees>
<Protection Category="None" PerPmt="0.00" PerDay="0.00">0.00</Protection>
<Fee Name="FinFee">60.00</Fee>
<Fee Name="Prepaid Fee">50.00</Fee>
</Moneys>
Attributes: None
🟥 <Moneys>
→<Principal>
Element Type | Data Type |
---|---|
Data | Currency |
The principal balance is the amount on which interest is accrued. The principal balance consists of the amount requested by the borrower, any fees which are financed, as well as financed protection premiums.
Attributes: None
🟥 <Moneys>
→<Interest>
Element Type | Data Type |
---|---|
Data | Currency |
This element contains the total interest accrued during the term of the loan, assuming the borrower will make all scheduled payments.
Attributes: None
🟦 <Moneys>
→<ConstructInterest>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If the requested loan is a construction loan with a permanent loan attached and the account specified is set up to compute construction loans via the "Simple" method, then this element 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 <Interest>
element, and
both loans reflected in a single, combined amortization schedule.
If the requested loan was not a construction loan, or if construction loans have not been set up for the given account, then this element will not appear in the results.
Attributes: None
🟦 <Moneys>
→<OddDaysPrepaid>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element, if present, holds the total odd days prepaid finance charge. If no odd days prepaid fee was requested, then this element will not be present in the output.
Attributes:
🔹AddToPmt
,🔹DailyCost
,🔸OddDayCount
,🔹OddMonths
🔹 AddToPmt
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
If the odd days interest has been added to the first payment, this attribute
will be present in the output with a value of true
. If the odd days interest has
been treated as a prepaid finance charge, then this attribute will not be
present and a default value of false
should be assumed.
🔹 DailyCost
Data Type | Default |
---|---|
Currency | n/a |
If the odd days prepaid fee is computed using a rounded daily cost, then the value of this attribute will hold that value. If the odd days prepaid is not computed using a rounded daily cost, then this attribute will not be present.
🔸 OddDayCount
Data Type |
---|
Integer |
This attribute holds the number of odd days computed by the SCE for the requested loan.
🔹 OddMonths
Data Type | Default |
---|---|
Integer | n/a |
This attribute holds the number of odd months computed by the SCE for the
requested loan when using odd days accrual method 250
.
🟦 <Moneys>
→<MinInterestPmt>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | n/a |
The <MinInterestPmt>
element will only appear if the
Metavante
attribute has been set to true
,
and even then only under certain loan conditions. The element itself contains no
data, as all required data is found in the following two attributes:
🔸 Index
Data Type |
---|
Integer |
The Index
attribute specifies the payment number in the payment stream at which
the minimum interest payment is achieved.
🔸 Pmt
Data Type |
---|
Currency |
The interest payment amount for the given Index
.
🟦 <Moneys>
→<MaxInterestPmt>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | n/a |
The <MaxInterestPmt>
element will only appear if the
Metavante
attribute has been set to true
,
and even then only under certain loan conditions. The element itself contains no
data, as all required data is found in the following two attributes:
🔸 Index
Data Type |
---|
Integer |
The Index
attribute specifies the payment number in the payment stream at which
the maximum interest payment is achieved.
🔸 Pmt
Data Type |
---|
Currency |
The interest payment amount for the given Index
.
🟦 <Moneys>
→<FinFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element contains the sum of all financed fees requested for the loan. If no financed fees were requested, then this element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<FinChgFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element contains the sum of all APR affecting fees (those fees which are
added to the <FinChg>
) requested for the loan. If no APR affecting
fees were requested, then this element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<PocketFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element 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 element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<MAPRFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element 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.
Attributes: None
🟦 <Moneys>
→<Protection>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
Contains the total cost of all protection plans included with the computed loan.
For the individual plan costs, see the <ProtectionInfo>
elements described
below. The attributes of this element are as follows:
Attributes:
🔸Category
,🔹IsDp
,🔹Mandatory
,🔸PerDay
,🔸PerPmt
🔸 Category
Data Type | Values |
---|---|
Enum | See below |
This attribute specifies the category under which the computed loan protection falls. The possible values for this attribute are:
None
- No protection catetory has been identified.SP
- Single Premium protection financed at loan closing.MOB
- Monthly outstanding balance (paid on Payments).TrueMOB
- Premiums paid monthly on a date specified in the setup files.PaidSP
- Single premium protection paid at closing.ConstantMOB
- CMOB is a product paid with payments and a constant amount.AddToPmtMOB
- MOB insurance added to a constant P&I payment, resulting in variable payments.
🔹 IsDp
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
This attribute indicates if the specified account’s protection is set up as debt
protection. If this attribute 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).
🔹 Mandatory
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
This attribute should only appear in the response if the value of the attribute
is true
. If this attribute does not appear in the output, then the value of
this attribute should default to false
. If the value of the Mandatory
attribute is true
, then the total premium/fee amount for all insurance/debt
protection products has been treated as a part of the Regulation Z Finance
Charge, and hence will affect the Reg. Z APR.
🔸 PerDay
Data Type |
---|
Currency |
Contains the cost of all loan protection products expressed as dollars per day.
🔸 PerPmt
Data Type |
---|
Currency |
Contains the cost of all loan protection products expressed as dollars per payment.
🟦 <Moneys>
→<MinIntChgAdj>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a minimum interest charge is configured in the account’s setup files and the final payment was adjusted to meet this minimum interest charge, then this element will be returned in the response and will contain the value of the minimum finance charge adjustment.
Attributes: None
🟦 <Moneys>
→<MinFinChgAdj>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a minimum finance charge is configured in the account’s setup files and the final payment was adjusted to meet this minimum finance charge, then this element will be returned in the response and will contain the value of the minimum finance charge adjustment.
Attributes: None
🟦 <Moneys>
→<Fee>[]
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
For each non-zero fee requested in the loan calculation, there will be a <Fee>
element containing the computed fee amount.
Attributes:
🔹Name
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
Contains the value of the Name attribute of the corresponding
<Fee>
element from the request. If no such attribute is
present in the <Fee>
element, then none will be present
in the response element.
🟦 <Moneys>
→<ServiceCharge>[]
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
For each non-zero service charge requested in the loan calculation, there will
be a <ServiceCharge>
element containing the total service charge amount.
Attributes:
🔹Name
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
Contains the value of the Name attribute of the corresponding
<ServiceCharge>
element from the request. If no such
attribute is present in the request element, then none will be present in the
response element.
🟦 <Moneys>
→<PMI_Fee>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If PMI has been requested on the loan, and if a number of up front payments have been specified, then this element will hold the total PMI fee for all upfront payments.
Attributes: None
🟥 <Accrual>
Element Type | Data Type |
---|---|
Parent | - |
This element groups together interest accrual information, such as the accrual method used, days to the first payment, and the loan’s maturity date.
<Accrual>
<Method>Actual/365 US Rule</Method>
<Days1Pmt DayCount="Actual">74</Days1Pmt>
<Maturity>2015-07-01</Maturity>
</Accrual>
Attributes: None
🟥 <Accrual>
→<Method>
Element Type | Data Type |
---|---|
Data | Text |
The <Method>
element contains a textual description of the interest accrual
method used to compute the loan (e.g. "Unit Period 365 Simple").
Attributes: None
🟥 <Accrual>
→<Days1Pmt>
Element Type | Data Type |
---|---|
Data | Integer |
This element contains the number of days to the first payment, computed by one of two methods as specified in this element’s sole attribute.
Attributes:
🔸DayCount
🔸 DayCount
Data Type | Values |
---|---|
Enum | Actual , True360 |
Actual
- The actual number of days between these two dates are used.31
would be the day count for the 2024-01-01 to 2024-02-01.True360
- All months have 30 days.30
would be the day count for 2024-01-01 to 2024-02-01.
🟥 <Accrual>
→<Maturity>
(YYYY-MM-DD)
Element Type | Data Type |
---|---|
Data | Date |
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. Hence, a maturity date of February 15, 2020 would be specified as
<Maturity>2020-02-15</Maturity>
.
Attributes: None
🟦 <PMI>
Element Type | Data Type |
---|---|
Empty | - |
The PMI element 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
<Payment>
element, the <PmtStream>
element(s), the
<TotPmts>
element, nor the Pmt
attribute of the
<AmLine>
element.
<PMI Rate="1.00" LTV="100.00" PremiumPerYear="964.08" PremiumPerPeriod="80.34"/>
The element itself contains no data, as all associated PMI data is found in the following attributes:
Attributes:
🔹IndexToRemove
,🔹IndexToWarn
,🔸LTV
,🔸PremiumPerPeriod
,🔸PremiumPerYear
,🔸Rate
🔹 IndexToRemove
Data Type | Default |
---|---|
Integer | 0 |
This attribute only appears if the PercentToRemove PMI input attribute 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.
In the sample above, after four payments are made, the ending principal balance to home value ratio drops below 70%, and hence the calculation engine returns IndexToRemove="4". Note that no PMI is included in the amortization schedule for payment numbers four or greater.
🔹 IndexToWarn
Data Type | Default |
---|---|
Integer | 0 |
This attribute only appears if the PercentToWarn PMI input attribute is specified, and indicates that the payment index on which the remaining principal balance to home value ratio drops below the specified percentage. In the sample above, after three payments are made, the ending principal balance to home value ratio drops below 80%, and hence the calculation engine returns IndexToWarn="3".
🔸 LTV
Data Type |
---|
Decimal |
The loan to value ratio of the computed loan, expressed as a percentage.
🔸 PremiumPerPeriod
Data Type |
---|
Currency |
The periodic PMI premium amount.
🔸 PremiumPerYear
Data Type |
---|
Currency |
The annual PMI premium amount
🔸 Rate
Data Type |
---|
Decimal |
The percentage rate used in the PMI calculation.
🟥 <PmtStream>[]
Element Type | Data Type |
---|---|
Empty | - |
The <PmtStream>
element(s) describe the scheduled stream of payments for the
computed loan in the order paid. Instead of disclosing each and every payment
individually (which can be done with the <AmTable>
element), the
payment streams group together consecutive equal payments to produce a
compressed output view.
The following code translates to "Twelve consecutive payments of $879.31 computed at 10.000% begin on January 22nd, 2024".
<PmtStream Term="12" Pmt="879.31" Rate="10.000" Begin="2024-01-22"/>
Each element describes a single stream of equal payments, using the following attributes to define the important properties of each resulting payment stream:
🔸 Begin
Data Type |
---|
Date |
This attribute contains 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. In the example above, the first payment stream
is scheduled to begin on September 18, 2005. Hence, the Begin attribute for the
first payment stream element would be specified as Begin="2005-09-18"
.
🔸 Pmt
Data Type |
---|
Currency |
The Pmt
attribute contains the computed payment amount for this payment stream.
For the sample payment stream above, the payment amount is 879.31.
🔸 Rate
Data Type |
---|
Decimal |
Contains the interest rate used for the duration of this payment stream. Usually, the interest rate will remain fixed for the duration of the loan unless you are computing an adjustable rate loan or you are computing a LaserPro construction loan with permanent loan attached.
🔸 Term
Data Type |
---|
Integer |
The Term
attribute holds the number of contiguous payments that make up the
given payment stream. In the example payment stream above, the term for the
stream is 12.
🟦 <ProtectionInfo>[]
Element Type | Data Type |
---|---|
Parent | - |
These elements (there may be more than one if more than one type of protection was requested) contain information related to the various protection products requested on the given loan. Each element group provides complete results for each requested product (decreasing life, level life, disability/debt cancellation, involuntary unemployment, or personal property).
🔸 Formula
Data Type | Values |
---|---|
Enum | see Protection Formulas |
The Formula
attribute contains an abbreviated description of the formula used
to compute the desired protection product. The formula codes are described
here.
🔸 Product
Data Type | Values |
---|---|
Enum | Life , Level , Disability , Unemployment , Property |
This attribute informs the calling application to which type of protection product this element refers: decreasing life, level life, disability/debt cancellation, involuntary unemployment or personal property.
🔹 RateType
Data Type | Values |
---|---|
Enum | Fixed , Variable |
Fixed
- Protection rate stays constant during the calculations.Variable
- Protection rate changed from Joint to Single as the loan evolves.
🟥 <ProtectionInfo>
→<CalcResult>
Element Type | Data Type |
---|---|
Data | Text |
This element 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 child elements
of <ProtectionInfo>
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 child elements of
<ProtectionInfo>
, as the product was not computed.
<CalcResult>Valid Calculation</CalcResult>
Attributes: None
🟥 <ProtectionInfo>
→<Cost>
Element Type | Data Type |
---|---|
Empty | - |
Attributes of this empty element 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.
The only time there will be two <Cost>
elements to parse is when the account
has been set up to use Plateau’s Uniguard product, and the user has requested
joint coverage. If this is the case, then two <Cost>
elements are provided to
disclose two premiums instead of a single aggregate joint premium.
<Cost Premium="827.26" PerPmt="19.28" PerDay="0.63" Factor="1.0154"/>
🔸 Factor
Data Type |
---|
Decimal |
The rate factor used to compute the premium for the requested protection product.
🔸 PerDay
Data Type |
---|
Currency |
The daily cost of coverage, expressed in dollars.
🔸 PerPmt
Data Type |
---|
Currency |
The cost of coverage expressed as dollars per payment.
🔸 Premium
Data Type |
---|
Currency |
The total cost for this protection over the term of the loan.
🟥 <ProtectionInfo>
→<Coverage>
Element Type | Data Type |
---|---|
Empty | - |
The aggregate coverage amount and note are provided in the following attributes of this empty element:
<Coverage Amount="75000.00" Note="Partial Coverage of $75,000"/>
🔸 Amount
Data Type |
---|
Currency |
This attribute contains the aggregate coverage amount for this protection product.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🟥 <ProtectionInfo>
→<Benefit>
Element Type | Data Type |
---|---|
Empty | - |
This empty element will only show up for the disability and involuntary unemployment products.
<Benefit Amount="1000.00" Note="Partial Benefit of $1,000"/>
🔸 Amount
Data Type |
---|
Currency |
Attribute which contains the monthly benefit amount for this protection product.
🔸 Note
Data Type |
---|
Text |
This Note
will describe 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.
🔹 Periodic
Data Type | Default |
---|---|
Currency | n/a |
If the account has been configured to disclose periodic benefits (as opposed to
monthly benefit amounts, which are returned in the Amount
attribute described above), and if the specified payment frequency is other than
monthly, then this attribute will be present and will hold the periodic benefit
amount.
🟦 <ProtectionInfo>
→<CovTerm>
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the term of coverage for the requested product. If the request has specified the coverage term, then this element will be populated with that term.
<CovTerm InMonths="75" InPmts="75" Maturity="2018-09-22" Note="Truncated: Keep Benefit"/>
🔹 InDays
Data Type | Default |
---|---|
Integer | n/a |
Attribute which expresses the term of coverage in days. This attribute will only be present for the level life product, and even then only if needed (for example, when covering single payment notes).
🔸 InMonths
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of months.
🔸 InPmts
Data Type |
---|
Integer |
Contains the number of payments covered.
🔸 Maturity
(YYYY-MM-DD)
Data Type |
---|
Date |
This attribute contains the maturity date for the requested coverage. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🟦 <ProtectionInfo>
→<Borrower>[]
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the term of
coverage of a specified borrower, for the requested product. Note that this
element will only be present if the input XML request has specified
ShowBorrowerInfo
= "true"
, and a valid
birthdate was provided. The following attributes are defined for this purpose:
Attributes:
🔸AgeAtIssue
,🔸AgeAtMaturity
,🔸Birthday
,🔸Maturity
,🔸Months
,🔸Note
,🔸Pmts
🔸 AgeAtIssue
Data Type |
---|
Special - see below |
If coverage is written on this borrower, then the value of this attribute 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.
🔸 AgeAtMaturity
Data Type |
---|
Special - see below |
If coverage is written on this borrower, then the value of this attribute 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.
🔸 Birthday
Data Type |
---|
Date |
This attribute contains the birthday associated with the borrower, as specified in the request. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🔸 Maturity
Data Type |
---|
Date |
The value of this attribute contains the coverage maturity date for this particular borrower.
🔸 Months
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of months.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🔸 Pmts
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of payments.
🟦 <ProtectionInfo>
→<Caps>
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the maximum
terms, amounts, and ages associated with the requested product. This element
will only be present if the ShowCaps
attribute
of the <Protection>
element is set to true
.
<Caps Cov="75000" Ben="1000" Term="84" InceptAge="65" AttainAge="66"/>
Attributes:
🔸AttainAge
,🔸Ben
,🔸Cov
,🔸InceptAge
,🔸Term
🔸 AttainAge
Data Type |
---|
Integer |
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.
🔸 Ben
Data Type |
---|
Currency |
Contains the maximum monthly benefit amount, expressed in dollars. If no cap is present or applicable, then a value of zero is returned.
🔸 Cov
Data Type |
---|
Currency |
Contains the maximum aggregate coverage amount, expressed in dollars. If no cap is present or applicable, then a value of zero is returned.
🔸 InceptAge
Data Type |
---|
Integer |
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.
🔸 Term
Data Type |
---|
Integer |
Contains the maximum coverage term, expressed in months. If no cap is present or applicable, then a value of zero is returned.
🟦 <AmTable>
Element Type | Data Type |
---|---|
Parent | - |
This element (if present) contains child elements which describe the loan's
amortization information. This element (and all of its child elements) will only
be present if the HideAmort
property of the
root element of the input query is set to false
.
<AmTable>
Attributes will only occur as feedback data for Canadian APR's.
🔹 AvgBal
Data Type | Default |
---|---|
Currency | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute is the average balance of the loan used in the Canadian APR calculation.
🔹 Months
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🔹 OddDays
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🔹 Weeks
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🟦 <AmTable>
→<GrandTotals>[]
Element Type | Data Type |
---|---|
Empty | - |
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 the following attributes:
<GrandTotals PmtTot="10551.72" IntTot="551.68" PrinTot="10000.04"/>
Attributes:
🔹AHTot
,🔹CLTot
,🔸IntTot
,🔹IUTot
,🔹PMITot
,🔸PmtTot
,🔸PrinTot
,🔹SCTot
🔹 AHTot
Data Type | Default |
---|---|
Currency | 0 |
The AHTot
attribute 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 over the duration
of the loan.
🔹 CLTot
Data Type | Default |
---|---|
Currency | 0 |
The CLTot
attribute 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.
🔸 IntTot
Data Type |
---|
Currency |
Contains the sum of all interest attributes in the AmLine
elements.
This amount will be different from the <Interest>
element if
there is a nonzero EndBal
for the final line of
amortization. The two will differ by this non-zero EndBal
.
🔹 IUTot
Data Type | Default |
---|---|
Currency | 0 |
The IUTot
attribute 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 over the
duration of the loan.
🔹 PMITot
Data Type | Default |
---|---|
Currency | 0 |
The PMITot
attribute 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.
🔸 PmtTot
Data Type |
---|
Currency |
Contains the total of payments scheduled for the computed loan.
🔸 PrinTot
Data Type |
---|
Currency |
Like IntTot
above, this attribute contains the total
amount paid to principal during the loan term, assuming all payments are made as
scheduled.
🔹 SCTot
Data Type | Default |
---|---|
Currency | 0 |
The SCTot
attribute will only appear on loans with service charges. It
contains the total service charge amount paid over the duration of the loan.
🟦 <AmTable>
→<SubTotals>[]
Element Type | Data Type |
---|---|
Empty | - |
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 <SubTotals>
element present. The element itself is empty, as all the
interesting categories are found in the following attributes:
<SubTotals Year="2024" Start="1" Events="12" PmtSub="10551.72" IntSub="551.68" PrinSub="10000.04"/>
Attributes:
🔹AHSub
,🔹CLSub
,🔸Events
,🔸IntSub
,🔹IUSub
,🔹PMISub
,🔸PmtSub
,🔸PrinSub
,🔹SCSub
,🔸Start
,🔸Year
🔹 AHSub
Data Type | Default |
---|---|
Currency | 0 |
The AHSub
attribute 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
.
🔹 CLSub
Data Type | Default |
---|---|
Currency | 0 |
The CLSub
attribute 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
.
🔸 Events
Data Type |
---|
Integer |
This attribute defines the number of amortization events (contained in
<AmLine>
elements which are defined below) which belong to this
calendar Year
.
🔸 IntSub
Data Type |
---|
Currency |
Holds the total amount paid to interest over the Year
in
question, assuming all payments are made as scheduled.
🔹 IUSub
Data Type | Default |
---|---|
Currency | 0 |
The IUSub
attribute 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
.
🔹 PMISub
Data Type | Default |
---|---|
Currency | 0 |
The PMISub
attribute 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 upfront periodic PMI premiums) for PMI during
the Year
.
🔸 PmtSub
Data Type |
---|
Currency |
Contains the total of payments scheduled for the Year
in
question.
🔸 PrinSub
Data Type |
---|
Currency |
Like IntSub
above, this attribute contains the total
amount paid to principal during the Year
in question,
assuming all payments are made as scheduled.
🔹 SCSub
Data Type | Default |
---|---|
Currency | 0 |
The SCSub
attribute will only appear on loans with service charges. It
contains the total of service charges paid during the Year
.
🔸 Start
Data Type |
---|
Integer |
This attribute defines the first amortization event which falls in the specified
calendar Year
. To find the <AmLine>
element
which corresponds to this value, match the Idx attribute of the
<AmLine>
element with the integer value reported by this attribute.
🔸 Year
Data Type |
---|
Integer |
The given calendar year for which the subtotal data is applicable.
🟥 <AmTable>
→<AmLine>[]
Element Type | Data Type |
---|---|
Empty | - |
There is one <AmLine>
element 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.) However, some loan protection methods (TruStage's monthly
renewable product, to be exact) have amortization events which correspond to
loan protection premiums being added to the loan balance on specific dates.
<AmLine Idx="1" Date="2024-01-01" BegBal="10000.00" Pmt="879.31" Int="84.93" Prin="794.38" EndBal="9205.62"/>
As with the <GrandTotals>
and <SubTotals>
elements, this element is empty and contains all of the useful information for a
given point in the amortization of a loan in the following attributes.
Attributes:
🔹AH
,🔸BegBal
,🔹CL
,🔸Date
,🔸EndBal
,🔸Idx
,🔸Int
,🔹IU
,🔹PMI
,🔸Pmt
,🔸Prin
,🔹SC
,🔹UnpaidInt
🔹 AH
Data Type | Default |
---|---|
Currency | 0 |
The AH
attribute 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.
🔸 BegBal
Data Type |
---|
Currency |
The principal balance before the amortization event occurs.
🔹 CL
Data Type | Default |
---|---|
Currency | 0 |
The CL
attribute 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.
🔸 Date
Data Type |
---|
Currency |
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.
🔸 EndBal
Data Type |
---|
Currency |
The principal balance amount, after the amortization event has taken place.
🔸 Idx
Data Type |
---|
Integer |
The index of the amortization event, which is either the payment number, or zero. A value of zero designates a protection premium that was charged on a date other than a payment date. (Occurs with protection category "TrueMOB").
🔸 Int
Data Type |
---|
Currency |
The amount of the payment which goes to pay interest.
🔹 IU
Data Type | Default |
---|---|
Currency | 0 |
The IU
attribute 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.
🔹 PMI
Data Type | Default |
---|---|
Currency | 0 |
This attribute contains the PMI premium for this payment.
🔸 Pmt
Data Type |
---|
Currency |
The amount of the payment (or zero if the event is a "TrueMOB" protection premium).
🔸 Prin
The amount of the payment which goes to reduce the principal balance.
🔹 SC
Data Type | Default |
---|---|
Currency | 0 |
This attribute contains the total service charge for this payment, and will only be present if one or more service charges were requested with the loan.
🔹 UnpaidInt
Data Type | Default |
---|---|
Currency or Decimal | 0 |
This attribute 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 places. If rounded, then the unpaid interest is displayed to two (2) decimal places.
🟦 <Metavante>
Element Type | Data Type |
---|---|
Empty | - |
This element will only be present if the
Metavante
attribute of the root element is
set to true
. The element itself is empty, as all of the useful information is
in the following attributes:
Attributes:
🔸FormsTerm
,🔸HostTerm
🔸 FormsTerm
Data Type |
---|
Integer |
The number of months in the loan, as computed using the Metavante FORMS method.
🔸 HostTerm
Data Type |
---|
Integer |
The number of months in the loan, as computed using the Metavante HOST method.
Balloon Specified Final - Request
The specified final balloon loan request is almost identical to the specified regular balloon loan request, with the following differences:
- The root element is
<inBALLOON_SPECIFY_FINAL>
instead of<inBALLOON_SPECIFY_REGULAR>
. - There is no
<RegPmt>
element present, since this is the value we are solving for. - The new
<FinalPmt>
element allows the calling application to specify a desired final payment amount.
Please see the Legend to understand the conventions used to document each element and attribute. Note that for requests, the XML elements are documented in alphabetical order by parent element.
🟥 <inBALLOON_SPECIFY_FINAL>
Element Type | Data Type |
---|---|
Parent | - |
This element is the root element for the request. It is a parent element that has no data, but does have several attributes that offer a wide variety of adjustments.
Attributes:
🔹Account
,🔹AccrualCode
,🔹AprType
,🔹Country
,🔹DataDirPath
,🔹ForceReload
,🔹HideAmort
,🔹Lastday
,🔹MAPR_Max
,🔹Metavante
,🔹OddFinal
,🔹PmtDollarRound
,🔹PmtRound
,🔹PPY
,🔹UseMAPR
,🔹YieldPPY
🔹 Account
Data Type | Values | Default |
---|---|---|
Integer | [1...9999] | 1 |
This attribute specifies which account should be used to compute the requested
loan. Each account is numbered from 1 to 9,999, and each account corresponds to
a set of setup files which define numerous settings which may affect the loan
calculation, such as the accrual method, insurance methods and rates, etc. If
this attribute is not specified, a default value of 1
will be used.
🔹 AccrualCode
Data Type | Values | Default |
---|---|---|
Enum | See table | default |
This property allows an accrual method to be used other than the accrual method dictated by the setup file for the given account. If no accrual code attribute is specified, the method defined in the setup file will be used. The Accrual Code Table lists all valid accrual codes available. Note that for the split rate accrual codes (i.e. those above 500), the split rate tiers must be defined in the setup file.
🔹 AprType
Data Type | Values | Default |
---|---|---|
Enum | See below | default |
This attribute allows the calling application to specify an APR calculation method which will override the default value found in the setup file for the given account. If this attribute is set to a valid value, then the specified method will be used to compute the APR for this loan calculation.
If the Country
attribute has been set by the calling
application and this attribute is not set, then the APR method used will be
determined by the specified country. For the United States of America, the
default APR method is actuarial
. For a country in the European Union, the
default value is eu
(European Union APR). For Canada, the default APR method
is ca
(Canadian APR).
default
- Use setup file value.actuarial
- Appendix J Actuarial APRusrule
- US Rule APReu
- European Union APRca
- Canadian APRxirr
- Extended Internal Rate of Return (same as excel function)xirr360
- XIRR using a 360 divisor rather than a 365 divisorirr
- Simple Internal Rate of Return (same as excel function)
If this attribute is not specified and the Country
attribute
is not specified, then the value of default
will be used which informs the SCE
to use the APR method defined in the setup file for the specified
Account
.
🔹 Country
Data Type | Values | Default |
---|---|---|
Alpha-2 or Numeric-3 code | See table | US |
This attribute allows the calling application to specify a two (2) character or
three (3) digit country code. If none is provided, then a default value of US
will be used. Please see the Country Codes Table for the
list of supported countries and their associated codes.
Currently, the country code is used to determine the default value of the
AprType
attribute (see above).
🔹 DataDirPath
Data Type | Values | Default |
---|---|---|
Text | See below | See below |
If this attribute is set, the SCE will look for a data folder containing the
setup files in the path specified. Thus, if the DataDirPath
is set to
C:\SCEX\
, the SCE will look for the setup files in C:\SCEX\data
.
If the calling application wishes to specify the data directory path in its
entirety (e.g. the calling app does not want the SCE to append \data
to the
provided path), then simply terminate the specified DataDirPath
with an
asterisk (*
). Thus, if the DataDirPath
is set to C:\SCEX\bank1\*
, the SCE
will look for the setup files in C:\SCEX\bank1\
.
If this attribute is not set, the SCE will attempt to locate the data folder in
the default data directory path location, which can be retrieved using the
<inVERSION>
module query, and set via the SCE API.
This attribute is useful if you wish to use only a single installation of the
SCE, but have many different setup file groupings. By specifying a different
DataDirPath
for each grouping, you can easily separate the groups from one
another instead of grouping them all together in a single directory.
🔹 ForceReload
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
The SCE caches setup files previously used. This improves performance for
subsequent loan requests using one of the cached accounts. However, if you need
the SCE to reload the setup files for a given request (e.g. you just copied
over new setup files), then you can set this attribute to true
and the setup
files will be forced to reload. If left at the default value of false
, then
setup files are only reloaded when the SCE notices that one of the setup files
has been modified.
🔹 HideAmort
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
This attribute determines whether or not an amortization schedule will be
included in the response, given a successful loan calculation. If you do not
require the use of the amortization schedule, then setting this attribute to
true
will suppress its output. The default value of false
will return the
amortization schedule as part of the response.
🔹 Lastday
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If present, this attribute overrides the Last Day setting in the setup files, which only applies to loans computed with an actual day interest accrual calendar where the first payment date falls at the end of a month with fewer than 31 days. As an example, if the first payment date is on April 30, should the following payment dates be made on the 30th of each month, or on the last day of the month?
If no value is specified for this attribute, then the setup file setting will be
used. If true
is specified, then conditions triggering a last day situation
will result in payments which fall at the end of the month. A value of false
indicates that when dictated, subsequent payment dates will not be moved to the
last day of the month.
🔹 MAPR_Max
Data Type | Values | Default |
---|---|---|
Decimal | [-99.999...600] | 36.0 |
If you are computing the Military APR (see UseMAPR
below) and
wish to override the default maximum APR value of 36
%, then specify the
desired maximum as the value of this attribute.
🔹 Metavante
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to a value of true
, then the
<Metavante>
element will be included in the
response. Also, some loans will also disclose
<MinInterestPmt>
and
<MaxInterestPmt>
elements.
🔹 OddFinal
Data Type | Values | Default |
---|---|---|
Enum | default , true , false , 1 , 0 | default |
This attribute allows the calling application to specify an odd final payment
calculation method which will override the default value found in the setup file
for the given account. If not specified, then the value of default
will be used.
Odd final payments are sometimes desired to produce perfect amortization (i.e. an ending balance of zero after the final payment is made).
🔹 PmtDollarRound
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Payments are normally rounded to the penny, according to the method specified by
the PmtRound attribute (see below). If the payment should be rounded to the
dollar instead of the penny, then set the value of this attribute to true
.
Note that for some loans (such as those with longer terms or relatively small proceeds), rounding the payment up or to the nearest dollar may require a shortened loan term to prevent one or more negative payments at the end of the loan.
🔹 PmtRound
Data Type | Values | Default |
---|---|---|
Enum | default , nearest , up , down , best | default |
This attribute allows the calling application to specify a payment rounding
option which will override the value found in the setup file. If not specified,
then the value of default
will be used.
default
- Use method specified in setup file.nearest
- Round computed payment to the nearest penny, using 5/4 rounding. e.g. 300.242 = 300.24, 300.245 = 300.25.up
- Round computed payment up to the next penny. e.g. 300.241 = 300.25.down
- Round computed payment down to the previous penny. e.g. 300.249 = 300.24.best
- Once the unrounded payment has been computed, amortize the loan using the rounded down and rounded up payment, and then return the payment which amortizes the loan’s ending balance closest to zero.
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | See below | monthly |
PPY is an abbreviation for payments per year, and as one might surmise,
determines the payment frequency for the loan. The default value of monthly
will
result in a loan with 12 payments per year. If you require a loan with a payment
frequency other than monthly, specify it using this attribute.
Value | Translation | Description |
---|---|---|
1 | Annual | Once Per Year |
2 | SemiAnnual | Twice Per year (every six months) |
4 | Quarterly | Four per year (every three months) |
6 | Bimonthly | Six per year (every two months) |
12 | Monthly | Twelve per year (every month) |
24 | Semimonthly | Twice Per Month* |
26 | Biweekly | Every two weeks |
52 | Weekly | Every week |
* Semimonthly loans are characterized by making two payments per month on the same days. A common semimonthly schedule is to make payments every 1st and 16th of the month. Another common schedule is the 15th and the end of every month.
🔹 UseMAPR
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to a value of true
, the SCE will compute the Military
APR in addition to the Regulation Z APR. The <MAPR>
element will be included in the XML loan response.
🔹 YieldPPY
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 , 4 , 6 , 12 | 0 |
Canadian mortgages may compute periodic interest using a fractional power of a
periodic yield. If set to a value other than 0
, this value determines the
period. Please contact us for further information if you support mortgage
calculations in Canada. Note that when using this attribute with a value other
than zero, the calling application must include an odd days prepaid fee in the
request.
🟦 <Construction>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | Not a construction loan |
Include the <Construction>
element to configure a construction period on a
loan. The use of this element requires setup files configured to support
construction loans, or specification of the Method
to be used.
If the specified account is not set up to support construction loans, this
element will be ignored.
Attributes:
🔹Accrual
,🔹Active
,🔹HalfCommitment
,🔹Method
,🔹PermanentAttached
,🔹PPY
,🔸Rate
,🔸Term
,🔹UnitOddDayDivisor
🔹 Accrual
Data Type | Values | Default |
---|---|---|
Enum | default , unitperiod , actual360 , actual365 | default |
If the loan request is a construction loan with no permanent loan attached, this attribute allows the calling application to specify the accrual method used.
default
- The setup files determine the default value for interest accrual.unitperiod
- Compute periodic interest using a 1/PPY factor.actual360
- Compute periodic interest using the actual # of days between payments/360.actual365
- Compute periodic interest using the actual # of days between payments/365.
🔹 Active
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this loan request includes a construction loan, then set this attribute to
true
. If no construction loan is desired, either do not specify the
<Construction>
element or set this attribute to false
.
🔹 HalfCommitment
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
During the term of the construction loan, the estimated interest for disclosure
purposes may be either computed on the full or half commitment amounts. By
setting this attribute to true
, interest will be estimated using half of the
initial commitment amount (i.e. the principal balance). The default value of
false
will cause interest to be estimated using the entire initial commitment
amount.
🔹 Method
Data Type | Values | Default |
---|---|---|
Enum | default , simple , laserpro , intonly | default |
There are three methods used to define how construction loans are computed and
disclosed. A method of default
tells the SCE to use the method
configured in the setup file. The meaning of the three methods are as follows:
simple
- Compute an aggregate construction interest amount for the entire construction period for both pure construction loans and construction to permanent loans.laserpro
- Compute an aggregate construction interest amount for the entire construction period for pure construction loans. For construction to permanent loans, compute and disclose discrete interest-only payments during the construction period.intonly
- Compute and disclose discrete interest-only payments during the construction period for both pure construction loans and construction to permanent loans.
🔹 PermanentAttached
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Construction loans may be computed on their own, or they may be attached to a
permanent loan which begins at the conclusion of the construction loan. If a
permanent loan is attached to the construction loan, then set this attribute’s
value to true
and set up the permanent loan information in the request
elements.
The default value of false
indicates that this is solely a construction loan
with no permanent attached. In this case, you still need to set up the
<LoanDate>
, <PmtDate>
and <Proceeds>
elements.
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | 1 , 2 , 4 , 6 , 12 , 24 , 26 , 52 | 12 |
The PPY
attribute allows the calling application to specify the payment
frequency during the construction period. The default value of monthly will
result in a construction loan with 12 payments per year. If you require a
payment frequency during the construction period other than monthly, then
specify it using this attribute. Note that if a permanent loan is attached to
the construction loan, that the permanent loan's payment frequency may differ
from the construction period’s payment frequency.
🔸 Rate
Data Type | Values | Default |
---|---|---|
Decimal | [-99.999...600] | 0 |
This attribute determines the rate applied to the appropriate commitment amount during the term of the construction loan.
🔸 Term
Data Type | Values | Default |
---|---|---|
Integer | [1...60] * | 0 |
The term of the construction loan (in payments) is specified using this attribute. Please note that the term may not exceed five years.
* 60 is the maximum number of months in the Construction period. In general, the maximum entry is 5 *
PPY
, where the PPY is the payments per year attribute of the<Construction>
element.
🔹 UnitOddDayDivisor
(enum, [], Ignore)
Data Type | Values | Default |
---|---|---|
Enum | ignore , 360 , 365 , vardpy | ignore |
When specifying an Accrual
method of type unitperiod
, this
attribute allows the calling application to specify how odd days between the
loan and first payment dates are taken into account.
ignore
means that all odd days are ignored, and the calculation will assume
one full unit period. 360
and 365
will compute the actual number of days
between the loan date and first payment date, and then use either a 360 or 365
divisor to determine the amount of interest accrued during that period. vardpy
accrues interest in the same manner as accrual code 250/350.
🟦 <Fee>[]
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No fee |
Unlike most other elements, any number of fees may be defined, or none at all. All of the information used to compute a fee is contained in its attributes.
Attributes:
🔹AddToFinChg
,🔹AddToPrin
,🔹Adjust
,🔹CalcType
,🔸Entry
,🔹IsLoanCost
,🔹MAPR
,🔹MaxValue
,🔹MinValue
,🔹Name
🔹 AddToFinChg
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
If this fee should be included in the Reg. Z Finance Charge (and hence, affect
the APR), then set this attribute to true
. The default value of false
indicates that the fee does not affect the Finance Charge nor APR.
🔹 AddToPrin
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this fee should be added to the principal balance (e.g. the fee is financed
along with the amount requested), then set this attribute to true
. If set to
false
, then the fee is paid up front out of the borrower’s pocket.
🔹 Adjust
Data Type | Values | Default |
---|---|---|
Currency | any | 0 |
The optional attribute Adjust
allows the calling application to increase or
decrease the base amount on which a fee is calculated. If a negative value is
specified and this adjustment would produce a negative base amount, then a value
of zero is returned for the given fee. This attribute has no effect on fees with
a CalcType
of Dollar
.
As an example, in Tennessee you may need to define a financed, non-APR affecting fee to be computed by decreasing the amount financed by $2,000, and then multiplying this reduced amount by 0.115. The way to accomplish this in the SCEX is as follows:
<Fee CalcType="OnAmtFin" Entry="0.115" Adjust="-2000" AddToPrin="true" AddToFinChg="false" />
🔹 CalcType
Data Type | Values | Default |
---|---|---|
Enum | Dollar , OnProceeds , OnAmtFin , OnPrin , DocStamp | Dollar |
The value of this attribute determines how the fee is to be computed, as described below:
Dollar
- TheEntry
attribute is understood as a flat dollar amount.OnProceeds
- TheEntry
attribute is understood as a percentage value, to be applied to the loan’s proceeds. AnEntry
of1.0
would represent a fee of 1.0% of proceeds.OnAmtFin
- TheEntry
attribute is understood as a percentage value, to be applied to the Amount Financed. AnEntry
of0.5
would represent a fee of 0.5% of Amount Financed.OnPrin
- TheEntry
attribute is understood as a percentage value, to be applied to the loan’s principal balance. AnEntry
of0.125
would represent a fee of 0.125% of principal balance.DocStamp
- TheEntry
attribute is understood as a Florida doc stamp rate, to be applied to the loan’s principal balance. AnEntry
of0.35
would represent a fee of 0.35% of the principal balance. You must set the AddToFinChg attribute to false, otherwise the doc stamp fee will return a value of zero.
🔸 Entry
Data Type | Values |
---|---|
Decimal or Currency | >= 0 |
The Entry
is the basic starting point fee value that determines the dollar
value of the resulting fee computation. How this attribute is interpreted
depends upon the CalcType
attribute, described above. This
value is either a dollar value or a percentage (aka "points").
🔹 IsLoanCost
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
When requesting the new TILA RESPA outputs (via the
<TILARESPA2015>
element), the SCE needs to know which fees need
to be considered borrower paid loan costs, as defined in the rule. Please note
that if the fee is paid by a lender or other third party, then the fee does not
affect the loan calculation and should not be sent to the SCE. If it is sent,
then the value of this attribute should be set to false
.
🔹 MAPR
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If you wish to compute the Military APR, then certain fees may not be considered
Regulation Z APR affecting fees, but are considered Military APR affecting fees.
In this case, you will need to set the value of this attribute to true
.
Fees which are added to the finance charge (e.g.
AddToFinChg
="true"
) are always considered MAPR fees,
regardless of the stated value of this attribute.
Note that debt protection products are automatically included in the calculation of the Military APR, no matter what method is used for payment (e.g. single premium vs. monthly outstanding balance).
🔹 MaxValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If a maximum value for the fee is specified and is greater than zero, then if the computed fee exceeds this maximum value, then this maximum value will be used instead. If no maximum value is specified or is set to a value of zero, then no maximum will be enforced. Please note that this attribute is applied to all fee types documented.
🔹 MinValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If a minimum value for the fee is specified and is greater than zero, and if the
Entry
attribute holds a value greater than zero, then if the
computed fee is less than this minimum value, then this minimum value will be
used instead. If no minimum value is specified or is set to a value of zero,
then no minimum will be enforced. If a specified minimum value exceeds a
specified maximum value, then the minimum value will be ignored. Please note
that this attribute is applied to all fee types documented.
🔹 Name
Data Type | Values | Default |
---|---|---|
Text | any | n/a |
This attribute is for convenience purposes only, and does not affect the
calculation of the fee in any manner. If a Name
attribute is specified for the
<Fee>
element, then the corresponding <Fee>
element in the XML output will have a Name
attribute with the same value. This allows you to easily differentiate fees in
the response.
🟥 <FinalPmt>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | > 0 |
This required element contains the desired final payment amount. So long as this specified final payment is not too large, the SCE will compute a regular payment amount to amortize the loan.
Attributes: None
🟦 <Format>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | See attributes |
The <Format>
element is one of the first elements parsed from a request, as the
attributes of this empty element affect how date and numeric values are parsed
and validated.
Attributes:
🔹CurrencyDecimals
,🔹DateFormat
,🔹DateSeparator
,🔹DecimalSeparator
,🔹StrictDP
,🔹ThousandSeparator
🔹 CurrencyDecimals
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 | 2 |
When displaying and parsing Currency values, the value of this attribute
determines the maximum number of decimal places allowed after the
DecimalSeparator
.
🔹 DateFormat
Data Type | Values | Default |
---|---|---|
Enum | YMD , MDY , DMY | YMD |
When displaying and parsing Date values, this field determines the expected
format for all Date fields. The following DateFormat
options are allowed:
YMD
- All dates should be formatted as YYYY-MM-DD.MDY
- All dates should be formatted as MM-DD-YYYY.DMY
- All dates should be formatted as DD-MM-YYYY.
Note that the character which separates the individual month, day, and year
portions of the date is configurable via the
DateSeparator
attribute.
🔹 DateSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | - |
When displaying and parsing Date values, this attribute determines the character used to separate the individual month, day, and year portions of a date.
🔹 DecimalSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | . |
When displaying and parsing Currency or Decimal numeric values, this attribute determines the character used to separate the fractional part from the whole.
🔹 StrictDP
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 , | false |
If the value of this attribute is true
, then the SCE will strictly verify the
number of decimal places allowed for currency input values. Thus, if the calling
application sends in a request with a currency amount of 1000.005
, the SCE
will return an error code.
If the value of this attribute is false
, then currency values sent in with an
invalid number of decimal places will be rounded to the correct number of
decimal places by the SCE (using five/four rounding), and a warning message with
this information will be returned with the response.
🔹 ThousandSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | , |
When displaying numeric values, this attribute determines the character used to separate the thousands places from the hundreds. Note that when parsing numeric values, the value of this attribute is ignored.
🟥 <IntRate>
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | [-99.999...600] |
The element data will determine the annual interest rate used for the loan. (Split rate loans require use of the setup files.)
The interest rate should be expressed as an annual percentage. For example, a loan computed with an interest rate of 6.125% would be specified as:
<IntRate>6.125</IntRate>
Attributes: None
🟦 <IntStartDate>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= <LoanDate> and <= <PmtDate> | <LoanDate> |
This element contains the date on which interest begins to accrue on the loan’s
principal balance. If this element is not specified, then the interest start
date is defaulted to be the <LoanDate>
. Also note that the
interest start date must be equal to the loan date when computing a construction
loan. The interest start date (when specified) must be on or after the loan
date, as well as on or before the <PmtDate>
. All dates must be in
the form of YYYY-MM-DD, and be 10 characters long. Hence, an interest start date
April 27, 2024 would be specified as:
<IntStartDate>2024-04-27</IntStartDate>
Attributes: None
🟥 <LoanDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= 1900-01-01 |
This element determines when interest begins to accrue. If interest begins on a
later date, use the <IntStartDate>
element to define the date
on which interest begins to accrue.
This element contains the date on which the loan amount is disbursed and interest begins to accrue. All dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a loan date of March 4, 2024 would be specified as:
<LoanDate>2024-03-04</LoanDate>
Attributes: None
🟦 <Mortgage_Insurance>
Element Type | Data Type | Values | Default |
---|---|---|---|
Parent | - | - | No mortgage insurance |
The <Mortgage_Insurance>
element determines if this loan includes one of the
supported types of mortgage insurance (MI) - PMI or FHA. This element contains
child elements which further specify mortgage insurance options.
NOTE: Mortgage insurance is only supported on equal, balloon, and interest only loan builder requests at this time.
Attributes:
🔹CashDown
,🔹LoanAmt
,🔸PropertyValue
,🔹Type
🔹 CashDown
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
The CashDown
attribute represents a cash down payment made at closing. If
specified and greater than zero, this amount will be deducted from the principal
balance. If not specified, the cash down payment will default to zero.
🔹 LoanAmt
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | Principal balance |
The LoanAmt
attribute represents the amount by which the PMI rates are
multiplied to produce a level PMI premium. If not specified, then the principal
balance will be used to compute the annual premium.
🔹 PropertyValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
This attribute’s value represents the appraised property value, and will be used in the calculation of the loan to value ratio.
🔹 Type
Data Type | Values | Default |
---|---|---|
Enum | pmi , fha | pmi |
This attribute determines the type of mortgage insurance to include with the
loan. If the Type
attribute is set to FHA
, a different MI premium is
computed every twelve months based upon the average outstanding principal
balance during that same term. The MI calculation adheres strictly to the HUD
regulation.
🟥 <Mortgage_Insurance>
→<MI_Rate>[]
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | >= 0 |
The value of this element specifies the cost of mortgage insurance per $100 of
the loan amount. Note that there may be more than one <MI_Rate>
element
defined in an XML loan request (see the Switch
attribute
below).
As an example, a loan computed with a MI rate of $1.50 per $100 would be
specified as <MI_Rate>1.50</MI_Rate>
.
Attributes:
🔸Switch
🔹 Switch
Data Type | Values | Default |
---|---|---|
Integer | > 0 | 0 |
This optional attribute defines the payment number beyond which the associated MI rate will apply. If not specified, the value will default to zero.
Thus, if there is only a single MI rate, one may omit this attribute. Single rate example (use a rate of $1.50 for the entire term of MI coverage):
<MI_Rate>1.50</MI_Rate>
Multiple rate example (use a rate of $1.50 for the first 10 years, with a rate of $0.20 for coverage beyond 10 years):
<MI_Rate>1.50</MI_Rate>
<MI_Rate Switch="120">0.20</MI_Rate>
🟦 <Mortgage_Insurance>
→<Periodic>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Integer | >= 0 | 0 |
The value of this element represents the term beyond which MI is no longer
included. As an example, if mortgage insurance must be removed after the 180th
payment, then the calling application should specify <Periodic>180</Periodic>
in the XML loan request. 0
means no term removal is in effect.
🔹 DropLTV
Data Type | Values | Default |
---|---|---|
Decimal | >= 0 and <= 100 | 0 |
The value of this attribute determines the loan to value ratio at which MI
should be removed, and is expressed as a percentage. For example, if you wish to
automatically drop MI when the loan to value ratio first equals or falls below
78%, then you would specify DropLTV="78.0"
.
🔹 WarnLTV
Data Type | Values | Default |
---|---|---|
Decimal | >= 0 and <= 100 | 0 |
The value of this attribute determines the loan to value ratio at which a
warning should be issued, and is expressed as a percentage of LTV (loan to
value). For example,if you wish to know when the loan to value ratio first
equals or falls below 80%, then you would specify WarnLTV="80.0"
.
🟦 <Mortgage_Insurance>
→<UpFront>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Decimal | >= 0 | 0 |
This element determines the up front fee for mortgage insurance, as disclosed in
the <PMI_Fee>
element in the results. If this element is not
specified, no up front fee will be computed. Note that ZOMP (zero option monthly
premium) products do not have an up front fee, which means that this element can
be omitted or set to zero.
The following attributes define how the fee is computed and disclosed.
🔹 Paid
Data Type | Values | Default |
---|---|---|
Enum | Financed , AtClosing , ByLender | AtClosing |
If the value of this attribute is set to Financed,
then the computed up front
fee will be added to the principal balance and the finance charge. A value of
AtClosing
will cause the value of the fee to be added to the finance charge
alone. Finally, a value of ByLender
means that the up front fee is to be paid by
the lender; hence, the value of the fee is a Pocket Fee that is not added to
either the principal balance nor the finance charge.
🔹 Units
Data Type | Values | Default |
---|---|---|
Enum | Months , Points , Years | Months |
If the Units attribute is set to Months
, the value of the
<UpFront>
element represents the number of periodic MI premiums to
be paid at closing.
If the Units attribute is set to Years
, the value of the
<UpFront>
element represents the number of annual MI premiums to
be paid at closing.
Many single premium products define the up front fee as a number of years of MI to be paid up front.
Finally, if the Units attribute is set to Points
, the value of the
<UpFront>
element represents the percentage of principal to be
paid up front. As of October 3, 2011, FHA loans use points.
🟦 <OddDaysPrepaid>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No odd days prepaid interest |
If odd days interest should be treated as a prepaid finance charge or added to the first payment, then include this empty element in the request. The attributes of this element determine how odd days interest is computed and handled.
Attributes:
🔹AccrualCode
,🔹AddToPmt
,🔹AddToPrin
,🔹AnchorDate
,🔹ForceUnitPeriod
,🔹NoCap
,🔹UseDailyCost
,🔹UseNegODI
🔹 AccrualCode
Data Type | Values | Default |
---|---|---|
Enum | See below | 220 |
The accrual code defines how the odd days interest is computed.
Note that accrual code 250
("Variable Days Per Year") defines the basis divisor
days to be equal to 12 multiplied by the number of days in the month of the date
on which interest begins to accrue. Thus, if the interest start date falls in
November, then the number of basis days is 360. If the interest start date falls
in a month with 31 days, then the number of basis days is 372. For an interest
start date in February, the number of basis days will either be 336 or 348,
depending upon whether or not it is a leap year.
AccrualCode | Description |
---|---|
204 | Unit period simple w/ true 360 calendar and 360 day divisor |
205 | Unit period simple w/ true 360 calendar and 365 day divisor |
210 | Actual / 360 simple |
211 | True 365 / 360 simple |
220 | Actual / 365 simple |
221 | True 365 / 365 simple |
230 | Actual / Actual simple |
231 | Midnight 366 simple |
250 | Unit period simple w/ variable DPY divisor |
🔹 AddToPmt
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application wants the odd days interest to be added to the first
payment, then set the value of this attribute to true
. A value of false
indicates that the odd days interest will be treated as a prepaid fee.
🔹 AddToPrin
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If any odd days interest should be treated as a financed prepaid fee, then set
the value of this attribute to true
. Note that if both
AddToPmt
and AddToPrin
are set to true
, then a warning
message will be returned by the SCEX and the value of AddToPrin
will be set to
false
.
🔹 AnchorDate
Data Type | Values | Default |
---|---|---|
Enum | BackUnitPeriod , BackDaysPerPeriod | BackUnitPeriod |
The computed number of odd days is the number of days between the loan date and the anchor date. This attribute determines how to arrive at the anchor date.
BackUnitPeriod
- The anchor date is one unit period prior to the specified first payment date.BackDaysPerPeriod
- The anchor date is the number of days per period prior to the first payment date.
Please note that for both of these methods, the period used will be that associated with the payment stream in which the first payment occurs.
🔹 ForceUnitPeriod
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the loan's interest accrual is unit period, this attribute forces the period
to the first payment to be 1/12 (or 1/(PmtsPerYear) in general). Without this
attribute an accrual code of 202
(Unit Period /365) would use a factor of
Days/365 rather than the expected 1/12.
🔹 NoCap
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
When an odd days interest fee is present and financed, the value of this
attribute determines if the ODI fee is added to the principal balance for the
purposes of computing the ODI fee (e.g. if it is capitalized). If this value is
true
, the ODI is computed on the true principal balance less the ODI; false
means "compute ODI on the true principal balance.
🔹 UseDailyCost
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the total odd days prepaid fee is computed by first generating a rounded (to
the nearest penny) daily cost and then multiplying this value by the computed
number of odd days, then set the value of this property to true
.
A value of false
means that the daily cost is left unrounded, and the total
prepaid fee is rounded after the computation is complete.
🔹 UseNegODI
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If there are negative odd days in the loan, then the value of this attribute
determines if a negative odd days interest fee is computed. If the value of this
attribute is false
, then negative odd days fees are not allowed, the SCEX will
return a value of zero in this situation, and the computed payment will be
adjusted to take into account the negative odd days. A value of true
will
return a negative odd days interest fee (in effect, it then becomes an odd days
interest credit) when there are negative odd days in a loan.
🟥 <PmtDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= <LoanDate> and >= <IntStartDate> |
This element contains the date on which the first payment of the loan is made, and must be on or after the loan date.
All dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a first payment date of April 4, 2024 would be specified as:
<PmtDate>2005-04-04</PmtDate>
Attributes: None
🟥 <Proceeds>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | >= 0 |
The proceeds specifies the amount the customer has frequested to borrow, ignoring every other financed quantity. Proceeds of up to one billion dollars are accepted.
The amount should be expressed as a number. For example, a request including
<Proceeds>10000.00</Proceeds>
indicates an amount requested of 10,000.
Attributes: None
🟦 <Protection>
Element Type | Data Type | Values | Default |
---|---|---|---|
Parent | - | - | No protection included |
The <Protection>
element is used to specify debt protection coverages such as
life, disability, involuntary unemployment, personal property and debt
cancellation. Each type of coverage is specified by its own sub-element, along
with the borrower birthdays. The following attributes apply to this element:
Attributes:
🔹FinanceProt
,🔹LineOfCredit
,🔹Mandatory
,🔹ShowBorrowerInfo
,🔹ShowCaps
🔹 FinanceProt
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
If the computed premiums for single premium debt protection products should be
financed along with the proceeds, then this attribute should be set to true
(which is the default value if not specified). A value of false
indicates that
the computed premiums will not be financed with the proceeds, and hence will be
paid out of pocket by the borrower. Note that this applies to single premium
insurance products only!
🔹 LineOfCredit
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this is an account using TruStage’s MOB insurance, and if this loan is a line
of credit where product term caps should be ignored, then set this attribute to
true
. Otherwise, leave this attribute unspecified or set it to false
.
🔹 Mandatory
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the value of this attribute is set to true
, then any computed payment
protection premium or fee will be considered a mandatory fee which will be
included as a part of the Regulation Z Finance Charge, and hence affect the
Regulation Z APR. In this case, the <Protection>
element in the response will contain a
Mandatory
="true"
attribute indicating this.
If the Mandatory attribute is set to false
, the loan will treat any premiums /
fees as normal.
🔹 ShowBorrowerInfo
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application would like to have data returned for each specified
borrower instead of a single <CovTerm>
element, then
set the value of this attribute to true
. Otherwise, leave this attribute
unspecified or set it to false
. See the <Borrower>
and <CovTerm>
elements defined in the response for
more information.
🔹 ShowCaps
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application would like to have cap information (e.g., maximum
terms, coverage amounts, ages, etc.) returned for each product offered, set the
value of this attribute to true
. Otherwise, leave this attribute unspecified
or set it to false
. See the <Caps>
element for more
information.
🟦 <Protection>
→<Birthday1>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= 1900-01-01 | No birthday specified |
This element contains the date of birth for the primary borrower. All dates must
be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a birthday of
April 9, 1972 would be specified as <Birthday1>1972-04-09</Birthday1>
. Note
that this element must be set if the Covers attribute of any of the four debt
coverage elements is set to borrower1
or both
.
Attributes: None
🟦 <Protection>
→<Birthday2>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= 1900-01-01 | No birthday specified |
This element contains the date of birth of the secondary borrower. All dates
must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a birthday
of May 21, 1969 would be specified as <Birthday2>1969-05-21</Birthday2>
.
Attributes: None
🟦 <Protection>
→<Disability>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No disability coverage |
The <Disability>
element determines what type of disability coverage is
requested for the loan. It also serves double duty as the debt cancellation
coverage element, for accounts set up to compute debt cancellation using the
disability tables. The element itself is empty, with all information needed for
disability coverage request being specified in the following attributes:
Attributes:
🔹Benefit
,🔹CoverBalloon
,🔹Covers
,🔹CovTerm
,🔹Table
🔹 Benefit
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
🔹 CoverBalloon
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
This attribute is only applicable when the loan is covered with TruStage single premium insurance. If this attribute is set to true, then the SCE will cover the regular benefit amount for the amortization term of the loan. If set to false, then the regular benefit amount is covered for the actual loan term.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in the appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <Disability>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will assure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user specified coverage terms, then this attribute will be ignored.
🔹 Table
Data Type | Values | Default |
---|---|---|
Integer | [0...19] | 0 |
If the specified account has been set up with multiple disability or debt
cancellation plans, then this attribute determines which plan number will be
used. If no table number is specified, the first table (table zero) will be
used. To find out the number of available plans, use the
<AhSetCount>
element in the
<inINPUT_TOOL>
response.
🟦 <Protection>
→<Life>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No life coverage |
The <Life>
element determines what type of life coverage is requested for the
loan. The element itself is empty, with all information needed for a life
coverage request being specified in the following attributes:
Attributes:
🔹Coverage
,🔹Covers
,🔹CovTerm
,🔹Dismemberment
,🔹Method
,🔹UseLevelRates
🔹 Coverage
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
If you wish to specify a coverage amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum coverage amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified coverage amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in the appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <life>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will assure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user specified coverage terms, then this attribute will be ignored.
🔹 Dismemberment
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the specified account has been set up to offer optional dismemberment coverage to be offered with life coverage (using an increased rate in the premium calculation), then this attribute determines whether or not this additional coverage will be provided.
🔹 Method
Data Type | Values | Default |
---|---|---|
Enum | default , net , gross | default |
If the specified account has been set up to offer single premium life coverage
by default, net or gross coverage, then this attribute can be used to specify
which type of coverage to compute with the loan. For all other accounts, the
default value of default
should be used (or simply do not specify the attribute
at all).
🔹 UseLevelRates
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the account specified has been set up to offer single premium credit life
using level rates instead of the normal decreasing rates, then set this
attribute’s value to true
. Otherwise, use the default value of false
.
🟦 <Protection>
→<Property>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No property coverage |
The <Property>
element determines what type of personal property coverage is
requested for the loan. The element itself is empty, with all information needed
for coverage request being specified in the following attributes:
🔹 Coverage
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a coverage amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum coverage amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user-specified coverage amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The value borrower1
represents single coverage on the primary borrower (whose
birthday is contained in element <Birthday1>
). A request for
joint coverage on both borrowers is indicated by a value of both
. Finally, if
no coverage is desired, specify a value of none
or omit the <Property>
element entirely.
🟦 <Protection>
→<Unemployment>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No unemployment coverage |
The <Unemployment>
element determines what type of involuntary unemployment
coverage is requested for the loan. The element itself is empty, with all
information needed for a coverage request being specified in the following
attributes:
🔹 Benefit
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in the appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <Unemployment>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will ensure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user-specified coverage terms, then this attribute will be ignored.
🟦 <ServiceCharge>[]
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No service charge |
As with the <Fee>
element, any number of <ServiceCharge>
elements
may be added to a loan. Service charges are supported on single, equal, and
balloon payment loans only.
The <ServiceCharge>
element itself contains no data. Instead, all of the
information used to compute the service charge is contained in the following
attributes of the element:
🔸 Entry
(decimal, 0)
How this attribute is interpreted depends upon the Type
attribute, described below. It is the numeric amount defining either the lump
sum or periodically paid service charge.
🔹 Exact
(boolean, false)
The Exact
attribute is only considered when the service charge is of
Type
LumpSum
. When the calculated periodic amount is
rounded, it will most often times produce a total service charge amount that
differs from that entered.
If the Exact
attribute is set to true
, then the final periodic amount will be
adjusted so that the sum of all periodic amounts is exactly equal to the entered
amount (and will result in an odd final payment). A value of false
indicates
that the final periodic amount will not be adjusted.
🔹 Name
(text, "")
This attribute is for convenience purposes only, and does not affect the
calculation of the service charge in any manner. If a Name
attribute is
specified for the <ServiceCharge>
element, then the corresponding
<ServiceCharge>
element in the response will have a
Name
attribute with the same value. This allows
you to easily differentiate fees in the response.
🔹 Round
(enum, [nearest, up, down], nearest)
This attribute is only considered when the service charge is of
Type
LumpSum
. It determines how the calculated periodic
amount is rounded.
🔹 Type
(enum, [LumpSum, Periodic], LumpSum)
A service charge of Type
of LumpSum
allows the calling application to specify an
amount that will be spread out evenly over the loan’s payment stream. On the
other hand, a Periodic
service charge is the amount which will be added to each
payment.
🟥 <Term>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | [2...600] * |
The value of this element indicates the number of payments in the loan.
The term must be entered as a number of payments, not a duration of time.
Therefore, <Term>72</Term>
represents 72 payments, not 72 months (or years).
This term is intimately tied to the PPY
(# of payments per year)
attribute of the root element. If the value of the PPY
attribute
was 24
(semimonthly) for this loan, the 72 payments would mean that the
duration of the loan is three years, since years = number of payments / payments
per year = 72 / 24 = 3.
* In general, the term can be no greater than 50 years, so the maximum entry would be 50 *
PPY
. Weekly loans, however, are limited to 30 years, or 1,560 payments.
Attributes: None
🟦 <TILARESPA2015>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No TILA RESPA disclosures |
The presence or absence of this element determines whether or not the TILA RESPA data table is present in the output.
If this element is present in the loan request, then the SCEX will return data for the Integrated Mortgage Disclosures under the Real Estate Settlement Procedures Act (Regulation X) and the Truth In Lending Act (Regulation Z) rule, which is required as of August 1st, 2015. If this element is not present, then the TILA RESPA outputs will not be generated.
Attributes: None
🟦 <TotalDown>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
This optional element represents the total down payment that the borrower has applied to reduce the requested proceeds. It may consist of a cash down payment, net trade-in value, or rebate. You only need to specify a total down payment if the loan needs to disclose a total sale price. Typical examples of these loan types are auto and boat loans.
To generate a total down payment, please see the chapter detailing the SCEX’s Auto Prompts module.
Attributes: None
Balloon Specified Final - Response
The specified final balloon loan response is almost identical to the specified regular balloon loan response, with the following differences:
- The root element is
<outBALLOON_SPECIFY_FINAL>
instead of<outBALLOON_SPECIFY_REGULAR>
.
Please see the Legend to understand the conventions used to document each element and attribute. Note that for responses, the XML elements are documented in the order that they appear in the response.
🟥 <outBALLOON_SPECIFY_FINAL>
Element Type | Data Type |
---|---|
Parent | - |
This element is the root element of the response, and contains all of the relevant outputs.
Attributes:
🔹CountryName
🔹 CountryName
Data Type | Values | Default |
---|---|---|
Text | See table | United States of America |
If a valid Country
code was specified as an
attribute of the input module element, the full name of the country associated
with the specified Country code will be reported in this attribute.
🟥 <Results>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which describe the success or failure of the calculation, any warning or error messages, and the most important numerical results for the query.
<Results>
<Description>Successful Calculation</Description>
<Payment>523.06</Payment>
<Final>5000.00</Final>
</Results>
Attributes: None
🟥 <Results>
→<Description>
Element Type | Data Type |
---|---|
Data | Text |
If the calculation was completed successfully, then this element will contain
the value Successful Calculation
. Otherwise, this element will contain a
description of the problem encountered during the attempted computation.
Attributes: None
🟦 <Results>
→<XMLDetail>[]
Element Type | Data Type | Default |
---|---|---|
Data | Text | NULL |
The <XMLDetail>
elements are messages passed back to the calling application
which detail the status of the XML request. If the SCEX issues any warnings
regarding unrecognized elements or attributes, then each warning message will be
displayed in an <XMLDetail>
element.
Attributes: None
🟥 <Results>
→<Payment>
Element Type | Data Type |
---|---|
Data | Currency |
The computed regular payment (<RegPmt>
) amount
which amortizes the loan, along with the specified final payment
(<Final>
).
Attributes: None
🟥 <Results>
→<Final>
Element Type | Data Type |
---|---|
Data | Currency |
The specified final (or balloon) payment amount which amortizes the loan given the requested regular payment.
Attributes: None
🟥 <FedBox>
Element Type | Data Type |
---|---|
Parent | - |
Some of the most important compliance related outputs are organized into the
<FedBox>
disclosures.
<FedBox>
<AmtFin>10000.00</AmtFin>
<FinChg>753.66</FinChg>
<TotPmts>10753.66</TotPmts>
<RegZAPR Type="Actuarial">10.030</RegZAPR>
</FedBox>
Attributes: None
🟥 <FedBox>
→<AmtFin>
Element Type | Data Type |
---|---|
Data | Currency |
The Regulation Z Amount Financed, which is defined as the amount of credit provided to you or on your behalf.
Attributes: None
🟥 <FedBox>
→<FinChg>
Element Type | Data Type |
---|---|
Data | Currency |
This element contains the Regulation Z Finance Charge, described as the dollar amount the credit extension will cost you.
Attributes: None
🟥 <FedBox>
→<TotPmts>
Element Type | Data Type |
---|---|
Data | Currency |
The amount which the borrower will have paid when the borrower has made all scheduled payments.
Attributes: None
🟦 <FedBox>
→<TotalSalePrice>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | <TotPmts> |
The sum of the total of payments plus the total down payment. Please note that
if no <TotalDown>
element was specified in the
request, then this element will not be present.
Attributes: None
🟥 <FedBox>
→<RegZAPR>
Element Type | Data Type |
---|---|
Data | Decimal |
The Regulation Z APR, which is the cost of the extension of credit expressed as a yearly rate. The Reg. Z APR element has a few attributes, described below:
Attributes:
🔹Max
,🔹MaxExceeded
,🔸Type
🔹 Max
Data Type | Default |
---|---|
Decimal | n/a |
This attribute specifies the maximum APR as configured in the account's setup files. If no maximum APR has been specified, then this attribute will not be present. The value of this attribute should be displayed as a percentage. As an example, for Max="36.000", you would disclose a maximum APR of 36.000%.
🔹 MaxExceeded
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
If a maximum APR is configured in the account's setup files, then the value of
this attribute indicates whether or not the current loan exceeds the maximum
allowed APR. As an example, if the maximum APR has been set to 36% and the APR
for the returned loan was 37.125%, the <RegZAPR>
element would be:
<RegZAPR Type="Actuarial" Max="36.000" MaxExceeded="true">37.125</RegZAPR>
🔸 Type
Values | |
---|---|
Enum | Actuarial , USRule , EU_APR , Canadian_APR , XIRR , XIRR360 , IRR , YieldIRR , Open_End |
This attribute specifies the method used to compute the reported APR: Actuarial or US Rule The method used is dictated by the setup files for the given account, but may be overridden in the XML input query.
Actuarial
- Governed by Appendix J to Regulation Z. Default US APR.USRule
- Used by large banks to mirror loan amortization.EU_APR
- Default European Union APR.Canadian_APR
- Default APR for Canada.XIRR
- Extended Internal Rate of Return (same as excel function).XIRR360
-XIRR
using a 360 divisor rather than a 365 divisor.YieldIRR
- Canadian mortgages may compute periodic interest using a fractional power of a periodic yield.Open_End
- Simply returns the interest rate.
🟦 <FedBox>
—><MAPR>
Element Type | Data Type |
---|---|
Data | Decimal |
If the military APR has been requested, then this element will be included in the output. The value of the element is the military APR, and the element has a few attributes, described below:
Attributes:
🔸Advance
,🔹Max
,🔹MaxExceeded
🔸 Advance
Data Type |
---|
Currency |
This attribute is the equivalent of the Amount Financed for the Military APR. Specifically, it is the principal balance less any MAPR fees, debt protection, etc.
🔹 Max
Data Type | Default |
---|---|
Decimal | 36.0 |
This attribute specifies the maximum Military APR as specified in the input XML
(see MAPR_Max
). If not specified, a default value
of 36% is assumed. The value of this attribute should be displayed as a
percentage. As an example, for Max="36.0"
, you would disclose a maximum
Military APR of 36.0%.
🔹 MaxExceeded
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
The value of this attribute 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>
element would be:
<MAPR Advance="1350.00" Max="36.000" MaxExceeded="true">37.125</MAPR>
🟦 <TILARESPA2015>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which are of interest to fulfilling the
2015 TILA RESPA rule. It will only be present if the
<TILARESPA2015>
element is present in the
request.
Sample TILARESPA2015 output:
<TILARESPA2015>
<TotalLoanCosts>0</TotalLoanCosts>
<CD_TotPmts>27311.07</CD_TotPmts>
<In5Years PaidTotal="27311" PaidPrincipal="25000"/>
<TIP>9.244</TIP>
<MaxPnIPmt Date="2012-11-01">1636.65</MaxPnIPmt>
<MinRate Idx="1">5.651</MinRate>
<MaxRate Idx="1">5.651</MaxRate>
<ProjectedPayments NumCols="3">
<PPCol Num="1" Title="Year 1">
<Years Start="1" End="1"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
<PPCol Num="2" Title="Year 2">
<Years Start="2" End="2"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
<PPCol Num="3" Title="Year 3">
<Years Start="3" End="3"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
</ProjectedPayments>
</TILARESPA2015>
Attributes: None
🟦 <TILARESPA2015>
→<LoanCost>[]
Element Type | Data Type |
---|---|
Data | Currency |
For every <Fee>
element present in the input which has
its IsLoanCost
attribute 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>
input element), there will be a
corresponding <LoanCost>
element. The value of this element will be the
numerical value of the fee, rounded to the nearest dollar.
🔹 In5Years
Data Type | Default |
---|---|
Currency | <LoanCost> |
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 attribute will be present and disclose the portion of this loan cost that is accrued during the first five years.
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
This attribute will hold the same value as the attribute of the same name for
the <Fee>
element. It is recommended that each fee
have a unique Name
for identification purposes.
🟥 <TILARESPA2015>
→<TotalLoanCosts>
Element Type | Data Type |
---|---|
Data | Currency |
This element holds the sum of all borrower paid loan costs. Since all
<LoanCost>
element values are rounded dollar amounts, the value of this
element will also be a rounded dollar amount.
Attributes: None
🟥 <TILARESPA2015>
→<CD_TotPmts>
Element Type | Data Type |
---|---|
Data | Currency |
This element holds 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 will be the numerical value of the sum.
Attributes: None
🟥 <TILARESPA2015>
→<In5Years>
Element Type | Data Type |
---|---|
Empty | - |
This element is empty, with all important values required for the new "In 5 Years" section returned in the following two attributes of this element.
Attributes:
🔸PaidPrincipal
,🔸PaidTotal
🔸 PaidPrincipal
Data Type |
---|
Currency |
This attribute 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.
🔸 PaidTotal
Data Type |
---|
Currency |
This attribute 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.
🟥 <TILARESPA2015>
→<TIP>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the total interest percentage, rounded to three or fewer decimal places, as required.
Attributes: None
🟥 <TILARESPA2015>
→<MaxPnIPmt>
Element Type | Data Type |
---|---|
Data | Currency |
The value of this element holds the maximum scheduled principal and interest payment during the term of the loan.
Attributes: 🔸
Date
🔸 Date
Data Type |
---|
Date |
This attribute contains 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. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🟥 <TILARESPA2015>
→<MinRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the minimum possible interest rate applied during the term of the loan.
Attributes: 🔸
Idx
🔸 Idx
Data Type |
---|
Integer |
This attribute contains the payment number for which the minimum rate is first applicable.
🟥 <TILARESPA2015>
→<MaxRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the maximum possible interest rate applied during the term of the loan.
Attributes: 🔸
Idx
🔸 Idx
Data Type |
---|
Integer |
This attribute contains the payment number for which the maximum rate is first applicable.
🟥 <TILARESPA2015>
→<ProjectedPayments>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which are of interest to filling the
Projected Payments table. It will only be present if the <TILARESPA2015>
element is present in the XML request for a supported loan type.
Attributes: 🔸
NumCols
🔸 NumCols
Data Type | Values |
---|---|
Integer | [1...4] |
This attribute will hold the number of columns which must be present in the Projected Payments table. It will be a numeric value from 1 to 4.
🟥 <ProjectedPayments>
→<PPCol>[]
Element Type | Data Type |
---|---|
Parent | - |
For every column required in the Projected Payments table, there will be an
associated <PPCol>
element. This element is a parent to child elements which
contain data associated with a single column of the table.
🔸 Num
Data Type | Values |
---|---|
Integer | [1...4] |
This attribute will hold the number of the column to which the following data applies.
🔸 Title
Data Type |
---|
Text |
The value of this attribute 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.
🟥 <ProjectedPayments>
→<PPCol>
→<Years>
Element Type | Data Type |
---|---|
Empty | - |
The attributes of this element hold the beginning and ending year numbers for which this column data applies. The element itself is empty.
🔸 End
Data Type |
---|
Integer |
The ending year associated with this column's data.
🔸 Start
Data Type |
---|
Integer |
The beginning year associated with this column's data.
🟥 <ProjectedPayments>
→<PPCol>
→<PnIPmt>
Element Type | Data Type |
---|---|
Empty | - |
This empty element has several attributes which describe the principal and interest payments associated with this column.
🔸 Balloon
Data Type | Values |
---|---|
Boolean | true , false |
If any of the payments associated with this column are balloon payments (e.g.
isolated payments that are more than twice the value of a regular periodic
payment), then the value of this attribute will be true
.
🔸 IntOnly
Data Type | Values |
---|---|
Enum | all , some , none |
none
- No payments associated with the column are Interest Onlysome
- Some, but not all, of the payments associated with the column are Interest Only.all
- All of the payments associated with the column are Interest Only.
Note that for the purposes of this attribute, 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.
🔸 Max
Data Type |
---|
Currency |
This attribute holds the maximum principal and interest payment for this column.
If this value is not the same as the value of the Min
attribute, then a range of rounded payments must be displayed. If the values are
the same, then only a single value needs to be disclosed.
🔸 Min
Data Type |
---|
Currency |
This attribute holds the minimum principal and interest payment for this column.
🟥 <ProjectedPayments>
→<PPCol>
→<MIPmt>
Element Type | Data Type |
---|---|
Data | Currency |
The value of this element 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.
Attributes: None
🟥 <ProjectedPayments>
→<PPCol>
→<TotalPmt>
Element Type | Data Type |
---|---|
Empty | - |
This empty element has two attributes which describe the estimated total payment or range of payments associated with this column. Note that this value does not include any estimated escrow, as the SCEX does not support escrow calculations. The calling application will need to increase these values by the estimated escrow amounts if any are present.
🔸 Max
Data Type |
---|
Currency |
This attribute holds the maximum estimated total payment for this column. If
this value is not the same as the value of the Min
attribute,
then a range of rounded payments must be displayed. If the values are the same,
then only a single value needs to be disclosed.
🔸 Min
Data Type |
---|
Currency |
This attribute holds the minimum estimated total payment for this column.
🟥 <Moneys>
Element Type | Data Type |
---|---|
Parent | - |
This element groups together those other major cash amounts not disclosed under
the <FedBox>
element, such as the principal balance, interest
change, fee amounts and protection premiums.
<Moneys>
<Principal>10120.00</Principal>
<Interest>1635.80</Interest>
<OddDaysPrepaid OddDayCount="15" DailyCost="2.77">41.55</OddDaysPrepaid>
<FinFees>120.00</FinFees>
<FinChgFees>91.55</FinChgFees>
<PocketFees>65.00</PocketFees>
<MAPRFees>201.55</MAPRFees>
<Protection Category="None" PerPmt="0.00" PerDay="0.00">0.00</Protection>
<Fee Name="FinFee">60.00</Fee>
<Fee Name="Prepaid Fee">50.00</Fee>
</Moneys>
Attributes: None
🟥 <Moneys>
→<Principal>
Element Type | Data Type |
---|---|
Data | Currency |
The principal balance is the amount on which interest is accrued. The principal balance consists of the amount requested by the borrower, any fees which are financed, as well as financed protection premiums.
Attributes: None
🟥 <Moneys>
→<Interest>
Element Type | Data Type |
---|---|
Data | Currency |
This element contains the total interest accrued during the term of the loan, assuming the borrower will make all scheduled payments.
Attributes: None
🟦 <Moneys>
→<ConstructInterest>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If the requested loan is a construction loan with a permanent loan attached and the account specified is set up to compute construction loans via the "Simple" method, then this element 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 <Interest>
element, and
both loans reflected in a single, combined amortization schedule.
If the requested loan was not a construction loan, or if construction loans have not been set up for the given account, then this element will not appear in the results.
Attributes: None
🟦 <Moneys>
→<OddDaysPrepaid>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element, if present, holds the total odd days prepaid finance charge. If no odd days prepaid fee was requested, then this element will not be present in the output.
Attributes:
🔹AddToPmt
,🔹DailyCost
,🔸OddDayCount
,🔹OddMonths
🔹 AddToPmt
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
If the odd days interest has been added to the first payment, this attribute
will be present in the output with a value of true
. If the odd days interest has
been treated as a prepaid finance charge, then this attribute will not be
present and a default value of false
should be assumed.
🔹 DailyCost
Data Type | Default |
---|---|
Currency | n/a |
If the odd days prepaid fee is computed using a rounded daily cost, then the value of this attribute will hold that value. If the odd days prepaid is not computed using a rounded daily cost, then this attribute will not be present.
🔸 OddDayCount
Data Type |
---|
Integer |
This attribute holds the number of odd days computed by the SCE for the requested loan.
🔹 OddMonths
Data Type | Default |
---|---|
Integer | n/a |
This attribute holds the number of odd months computed by the SCE for the
requested loan when using odd days accrual method 250
.
🟦 <Moneys>
→<MinInterestPmt>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | n/a |
The <MinInterestPmt>
element will only appear if the
Metavante
attribute has been set to true
,
and even then only under certain loan conditions. The element itself contains no
data, as all required data is found in the following two attributes:
🔸 Index
Data Type |
---|
Integer |
The Index
attribute specifies the payment number in the payment stream at which
the minimum interest payment is achieved.
🔸 Pmt
Data Type |
---|
Currency |
The interest payment amount for the given Index
.
🟦 <Moneys>
→<MaxInterestPmt>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | n/a |
The <MaxInterestPmt>
element will only appear if the
Metavante
attribute has been set to true
,
and even then only under certain loan conditions. The element itself contains no
data, as all required data is found in the following two attributes:
🔸 Index
Data Type |
---|
Integer |
The Index
attribute specifies the payment number in the payment stream at which
the maximum interest payment is achieved.
🔸 Pmt
Data Type |
---|
Currency |
The interest payment amount for the given Index
.
🟦 <Moneys>
→<FinFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element contains the sum of all financed fees requested for the loan. If no financed fees were requested, then this element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<FinChgFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element contains the sum of all APR affecting fees (those fees which are
added to the <FinChg>
) requested for the loan. If no APR affecting
fees were requested, then this element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<PocketFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element 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 element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<MAPRFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element 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.
Attributes: None
🟦 <Moneys>
→<Protection>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
Contains the total cost of all protection plans included with the computed loan.
For the individual plan costs, see the <ProtectionInfo>
elements described
below. The attributes of this element are as follows:
Attributes:
🔸Category
,🔹IsDp
,🔹Mandatory
,🔸PerDay
,🔸PerPmt
🔸 Category
Data Type | Values |
---|---|
Enum | See below |
This attribute specifies the category under which the computed loan protection falls. The possible values for this attribute are:
None
- No protection catetory has been identified.SP
- Single Premium protection financed at loan closing.MOB
- Monthly outstanding balance (paid on Payments).TrueMOB
- Premiums paid monthly on a date specified in the setup files.PaidSP
- Single premium protection paid at closing.ConstantMOB
- CMOB is a product paid with payments and a constant amount.AddToPmtMOB
- MOB insurance added to a constant P&I payment, resulting in variable payments.
🔹 IsDp
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
This attribute indicates if the specified account’s protection is set up as debt
protection. If this attribute 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).
🔹 Mandatory
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
This attribute should only appear in the response if the value of the attribute
is true
. If this attribute does not appear in the output, then the value of
this attribute should default to false
. If the value of the Mandatory
attribute is true
, then the total premium/fee amount for all insurance/debt
protection products has been treated as a part of the Regulation Z Finance
Charge, and hence will affect the Reg. Z APR.
🔸 PerDay
Data Type |
---|
Currency |
Contains the cost of all loan protection products expressed as dollars per day.
🔸 PerPmt
Data Type |
---|
Currency |
Contains the cost of all loan protection products expressed as dollars per payment.
🟦 <Moneys>
→<MinIntChgAdj>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a minimum interest charge is configured in the account’s setup files and the final payment was adjusted to meet this minimum interest charge, then this element will be returned in the response and will contain the value of the minimum finance charge adjustment.
Attributes: None
🟦 <Moneys>
→<MinFinChgAdj>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a minimum finance charge is configured in the account’s setup files and the final payment was adjusted to meet this minimum finance charge, then this element will be returned in the response and will contain the value of the minimum finance charge adjustment.
Attributes: None
🟦 <Moneys>
→<Fee>[]
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
For each non-zero fee requested in the loan calculation, there will be a <Fee>
element containing the computed fee amount.
Attributes:
🔹Name
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
Contains the value of the Name attribute of the corresponding
<Fee>
element from the request. If no such attribute is
present in the <Fee>
element, then none will be present
in the response element.
🟦 <Moneys>
→<ServiceCharge>[]
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
For each non-zero service charge requested in the loan calculation, there will
be a <ServiceCharge>
element containing the total service charge amount.
Attributes:
🔹Name
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
Contains the value of the Name attribute of the corresponding
<ServiceCharge>
element from the request. If no such
attribute is present in the request element, then none will be present in the
response element.
🟦 <Moneys>
→<PMI_Fee>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If PMI has been requested on the loan, and if a number of up front payments have been specified, then this element will hold the total PMI fee for all upfront payments.
Attributes: None
🟥 <Accrual>
Element Type | Data Type |
---|---|
Parent | - |
This element groups together interest accrual information, such as the accrual method used, days to the first payment, and the loan’s maturity date.
<Accrual>
<Method>Actual/365 US Rule</Method>
<Days1Pmt DayCount="Actual">74</Days1Pmt>
<Maturity>2015-07-01</Maturity>
</Accrual>
Attributes: None
🟥 <Accrual>
→<Method>
Element Type | Data Type |
---|---|
Data | Text |
The <Method>
element contains a textual description of the interest accrual
method used to compute the loan (e.g. "Unit Period 365 Simple").
Attributes: None
🟥 <Accrual>
→<Days1Pmt>
Element Type | Data Type |
---|---|
Data | Integer |
This element contains the number of days to the first payment, computed by one of two methods as specified in this element’s sole attribute.
Attributes:
🔸DayCount
🔸 DayCount
Data Type | Values |
---|---|
Enum | Actual , True360 |
Actual
- The actual number of days between these two dates are used.31
would be the day count for the 2024-01-01 to 2024-02-01.True360
- All months have 30 days.30
would be the day count for 2024-01-01 to 2024-02-01.
🟥 <Accrual>
→<Maturity>
(YYYY-MM-DD)
Element Type | Data Type |
---|---|
Data | Date |
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. Hence, a maturity date of February 15, 2020 would be specified as
<Maturity>2020-02-15</Maturity>
.
Attributes: None
🟦 <PMI>
Element Type | Data Type |
---|---|
Empty | - |
The PMI element 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
<Payment>
element, the <PmtStream>
element(s), the
<TotPmts>
element, nor the Pmt
attribute of the
<AmLine>
element.
<PMI Rate="1.00" LTV="100.00" PremiumPerYear="964.08" PremiumPerPeriod="80.34"/>
The element itself contains no data, as all associated PMI data is found in the following attributes:
Attributes:
🔹IndexToRemove
,🔹IndexToWarn
,🔸LTV
,🔸PremiumPerPeriod
,🔸PremiumPerYear
,🔸Rate
🔹 IndexToRemove
Data Type | Default |
---|---|
Integer | 0 |
This attribute only appears if the PercentToRemove PMI input attribute 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.
In the sample above, after four payments are made, the ending principal balance to home value ratio drops below 70%, and hence the calculation engine returns IndexToRemove="4". Note that no PMI is included in the amortization schedule for payment numbers four or greater.
🔹 IndexToWarn
Data Type | Default |
---|---|
Integer | 0 |
This attribute only appears if the PercentToWarn PMI input attribute is specified, and indicates that the payment index on which the remaining principal balance to home value ratio drops below the specified percentage. In the sample above, after three payments are made, the ending principal balance to home value ratio drops below 80%, and hence the calculation engine returns IndexToWarn="3".
🔸 LTV
Data Type |
---|
Decimal |
The loan to value ratio of the computed loan, expressed as a percentage.
🔸 PremiumPerPeriod
Data Type |
---|
Currency |
The periodic PMI premium amount.
🔸 PremiumPerYear
Data Type |
---|
Currency |
The annual PMI premium amount
🔸 Rate
Data Type |
---|
Decimal |
The percentage rate used in the PMI calculation.
🟥 <PmtStream>[]
Element Type | Data Type |
---|---|
Empty | - |
The <PmtStream>
element(s) describe the scheduled stream of payments for the
computed loan in the order paid. Instead of disclosing each and every payment
individually (which can be done with the <AmTable>
element), the
payment streams group together consecutive equal payments to produce a
compressed output view.
The following code translates to "Twelve consecutive payments of $879.31 computed at 10.000% begin on January 22nd, 2024".
<PmtStream Term="12" Pmt="879.31" Rate="10.000" Begin="2024-01-22"/>
Each element describes a single stream of equal payments, using the following attributes to define the important properties of each resulting payment stream:
🔸 Begin
Data Type |
---|
Date |
This attribute contains 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. In the example above, the first payment stream
is scheduled to begin on September 18, 2005. Hence, the Begin attribute for the
first payment stream element would be specified as Begin="2005-09-18"
.
🔸 Pmt
Data Type |
---|
Currency |
The Pmt
attribute contains the computed payment amount for this payment stream.
For the sample payment stream above, the payment amount is 879.31.
🔸 Rate
Data Type |
---|
Decimal |
Contains the interest rate used for the duration of this payment stream. Usually, the interest rate will remain fixed for the duration of the loan unless you are computing an adjustable rate loan or you are computing a LaserPro construction loan with permanent loan attached.
🔸 Term
Data Type |
---|
Integer |
The Term
attribute holds the number of contiguous payments that make up the
given payment stream. In the example payment stream above, the term for the
stream is 12.
🟦 <ProtectionInfo>[]
Element Type | Data Type |
---|---|
Parent | - |
These elements (there may be more than one if more than one type of protection was requested) contain information related to the various protection products requested on the given loan. Each element group provides complete results for each requested product (decreasing life, level life, disability/debt cancellation, involuntary unemployment, or personal property).
🔸 Formula
Data Type | Values |
---|---|
Enum | see Protection Formulas |
The Formula
attribute contains an abbreviated description of the formula used
to compute the desired protection product. The formula codes are described
here.
🔸 Product
Data Type | Values |
---|---|
Enum | Life , Level , Disability , Unemployment , Property |
This attribute informs the calling application to which type of protection product this element refers: decreasing life, level life, disability/debt cancellation, involuntary unemployment or personal property.
🔹 RateType
Data Type | Values |
---|---|
Enum | Fixed , Variable |
Fixed
- Protection rate stays constant during the calculations.Variable
- Protection rate changed from Joint to Single as the loan evolves.
🟥 <ProtectionInfo>
→<CalcResult>
Element Type | Data Type |
---|---|
Data | Text |
This element 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 child elements
of <ProtectionInfo>
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 child elements of
<ProtectionInfo>
, as the product was not computed.
<CalcResult>Valid Calculation</CalcResult>
Attributes: None
🟥 <ProtectionInfo>
→<Cost>
Element Type | Data Type |
---|---|
Empty | - |
Attributes of this empty element 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.
The only time there will be two <Cost>
elements to parse is when the account
has been set up to use Plateau’s Uniguard product, and the user has requested
joint coverage. If this is the case, then two <Cost>
elements are provided to
disclose two premiums instead of a single aggregate joint premium.
<Cost Premium="827.26" PerPmt="19.28" PerDay="0.63" Factor="1.0154"/>
🔸 Factor
Data Type |
---|
Decimal |
The rate factor used to compute the premium for the requested protection product.
🔸 PerDay
Data Type |
---|
Currency |
The daily cost of coverage, expressed in dollars.
🔸 PerPmt
Data Type |
---|
Currency |
The cost of coverage expressed as dollars per payment.
🔸 Premium
Data Type |
---|
Currency |
The total cost for this protection over the term of the loan.
🟥 <ProtectionInfo>
→<Coverage>
Element Type | Data Type |
---|---|
Empty | - |
The aggregate coverage amount and note are provided in the following attributes of this empty element:
<Coverage Amount="75000.00" Note="Partial Coverage of $75,000"/>
🔸 Amount
Data Type |
---|
Currency |
This attribute contains the aggregate coverage amount for this protection product.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🟥 <ProtectionInfo>
→<Benefit>
Element Type | Data Type |
---|---|
Empty | - |
This empty element will only show up for the disability and involuntary unemployment products.
<Benefit Amount="1000.00" Note="Partial Benefit of $1,000"/>
🔸 Amount
Data Type |
---|
Currency |
Attribute which contains the monthly benefit amount for this protection product.
🔸 Note
Data Type |
---|
Text |
This Note
will describe 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.
🔹 Periodic
Data Type | Default |
---|---|
Currency | n/a |
If the account has been configured to disclose periodic benefits (as opposed to
monthly benefit amounts, which are returned in the Amount
attribute described above), and if the specified payment frequency is other than
monthly, then this attribute will be present and will hold the periodic benefit
amount.
🟦 <ProtectionInfo>
→<CovTerm>
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the term of coverage for the requested product. If the request has specified the coverage term, then this element will be populated with that term.
<CovTerm InMonths="75" InPmts="75" Maturity="2018-09-22" Note="Truncated: Keep Benefit"/>
🔹 InDays
Data Type | Default |
---|---|
Integer | n/a |
Attribute which expresses the term of coverage in days. This attribute will only be present for the level life product, and even then only if needed (for example, when covering single payment notes).
🔸 InMonths
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of months.
🔸 InPmts
Data Type |
---|
Integer |
Contains the number of payments covered.
🔸 Maturity
(YYYY-MM-DD)
Data Type |
---|
Date |
This attribute contains the maturity date for the requested coverage. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🟦 <ProtectionInfo>
→<Borrower>[]
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the term of
coverage of a specified borrower, for the requested product. Note that this
element will only be present if the input XML request has specified
ShowBorrowerInfo
= "true"
, and a valid
birthdate was provided. The following attributes are defined for this purpose:
Attributes:
🔸AgeAtIssue
,🔸AgeAtMaturity
,🔸Birthday
,🔸Maturity
,🔸Months
,🔸Note
,🔸Pmts
🔸 AgeAtIssue
Data Type |
---|
Special - see below |
If coverage is written on this borrower, then the value of this attribute 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.
🔸 AgeAtMaturity
Data Type |
---|
Special - see below |
If coverage is written on this borrower, then the value of this attribute 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.
🔸 Birthday
Data Type |
---|
Date |
This attribute contains the birthday associated with the borrower, as specified in the request. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🔸 Maturity
Data Type |
---|
Date |
The value of this attribute contains the coverage maturity date for this particular borrower.
🔸 Months
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of months.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🔸 Pmts
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of payments.
🟦 <ProtectionInfo>
→<Caps>
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the maximum
terms, amounts, and ages associated with the requested product. This element
will only be present if the ShowCaps
attribute
of the <Protection>
element is set to true
.
<Caps Cov="75000" Ben="1000" Term="84" InceptAge="65" AttainAge="66"/>
Attributes:
🔸AttainAge
,🔸Ben
,🔸Cov
,🔸InceptAge
,🔸Term
🔸 AttainAge
Data Type |
---|
Integer |
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.
🔸 Ben
Data Type |
---|
Currency |
Contains the maximum monthly benefit amount, expressed in dollars. If no cap is present or applicable, then a value of zero is returned.
🔸 Cov
Data Type |
---|
Currency |
Contains the maximum aggregate coverage amount, expressed in dollars. If no cap is present or applicable, then a value of zero is returned.
🔸 InceptAge
Data Type |
---|
Integer |
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.
🔸 Term
Data Type |
---|
Integer |
Contains the maximum coverage term, expressed in months. If no cap is present or applicable, then a value of zero is returned.
🟦 <AmTable>
Element Type | Data Type |
---|---|
Parent | - |
This element (if present) contains child elements which describe the loan's
amortization information. This element (and all of its child elements) will only
be present if the HideAmort
property of the
root element of the input query is set to false
.
<AmTable>
Attributes will only occur as feedback data for Canadian APR's.
🔹 AvgBal
Data Type | Default |
---|---|
Currency | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute is the average balance of the loan used in the Canadian APR calculation.
🔹 Months
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🔹 OddDays
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🔹 Weeks
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🟦 <AmTable>
→<GrandTotals>[]
Element Type | Data Type |
---|---|
Empty | - |
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 the following attributes:
<GrandTotals PmtTot="10551.72" IntTot="551.68" PrinTot="10000.04"/>
Attributes:
🔹AHTot
,🔹CLTot
,🔸IntTot
,🔹IUTot
,🔹PMITot
,🔸PmtTot
,🔸PrinTot
,🔹SCTot
🔹 AHTot
Data Type | Default |
---|---|
Currency | 0 |
The AHTot
attribute 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 over the duration
of the loan.
🔹 CLTot
Data Type | Default |
---|---|
Currency | 0 |
The CLTot
attribute 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.
🔸 IntTot
Data Type |
---|
Currency |
Contains the sum of all interest attributes in the AmLine
elements.
This amount will be different from the <Interest>
element if
there is a nonzero EndBal
for the final line of
amortization. The two will differ by this non-zero EndBal
.
🔹 IUTot
Data Type | Default |
---|---|
Currency | 0 |
The IUTot
attribute 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 over the
duration of the loan.
🔹 PMITot
Data Type | Default |
---|---|
Currency | 0 |
The PMITot
attribute 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.
🔸 PmtTot
Data Type |
---|
Currency |
Contains the total of payments scheduled for the computed loan.
🔸 PrinTot
Data Type |
---|
Currency |
Like IntTot
above, this attribute contains the total
amount paid to principal during the loan term, assuming all payments are made as
scheduled.
🔹 SCTot
Data Type | Default |
---|---|
Currency | 0 |
The SCTot
attribute will only appear on loans with service charges. It
contains the total service charge amount paid over the duration of the loan.
🟦 <AmTable>
→<SubTotals>[]
Element Type | Data Type |
---|---|
Empty | - |
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 <SubTotals>
element present. The element itself is empty, as all the
interesting categories are found in the following attributes:
<SubTotals Year="2024" Start="1" Events="12" PmtSub="10551.72" IntSub="551.68" PrinSub="10000.04"/>
Attributes:
🔹AHSub
,🔹CLSub
,🔸Events
,🔸IntSub
,🔹IUSub
,🔹PMISub
,🔸PmtSub
,🔸PrinSub
,🔹SCSub
,🔸Start
,🔸Year
🔹 AHSub
Data Type | Default |
---|---|
Currency | 0 |
The AHSub
attribute 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
.
🔹 CLSub
Data Type | Default |
---|---|
Currency | 0 |
The CLSub
attribute 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
.
🔸 Events
Data Type |
---|
Integer |
This attribute defines the number of amortization events (contained in
<AmLine>
elements which are defined below) which belong to this
calendar Year
.
🔸 IntSub
Data Type |
---|
Currency |
Holds the total amount paid to interest over the Year
in
question, assuming all payments are made as scheduled.
🔹 IUSub
Data Type | Default |
---|---|
Currency | 0 |
The IUSub
attribute 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
.
🔹 PMISub
Data Type | Default |
---|---|
Currency | 0 |
The PMISub
attribute 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 upfront periodic PMI premiums) for PMI during
the Year
.
🔸 PmtSub
Data Type |
---|
Currency |
Contains the total of payments scheduled for the Year
in
question.
🔸 PrinSub
Data Type |
---|
Currency |
Like IntSub
above, this attribute contains the total
amount paid to principal during the Year
in question,
assuming all payments are made as scheduled.
🔹 SCSub
Data Type | Default |
---|---|
Currency | 0 |
The SCSub
attribute will only appear on loans with service charges. It
contains the total of service charges paid during the Year
.
🔸 Start
Data Type |
---|
Integer |
This attribute defines the first amortization event which falls in the specified
calendar Year
. To find the <AmLine>
element
which corresponds to this value, match the Idx attribute of the
<AmLine>
element with the integer value reported by this attribute.
🔸 Year
Data Type |
---|
Integer |
The given calendar year for which the subtotal data is applicable.
🟥 <AmTable>
→<AmLine>[]
Element Type | Data Type |
---|---|
Empty | - |
There is one <AmLine>
element 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.) However, some loan protection methods (TruStage's monthly
renewable product, to be exact) have amortization events which correspond to
loan protection premiums being added to the loan balance on specific dates.
<AmLine Idx="1" Date="2024-01-01" BegBal="10000.00" Pmt="879.31" Int="84.93" Prin="794.38" EndBal="9205.62"/>
As with the <GrandTotals>
and <SubTotals>
elements, this element is empty and contains all of the useful information for a
given point in the amortization of a loan in the following attributes.
Attributes:
🔹AH
,🔸BegBal
,🔹CL
,🔸Date
,🔸EndBal
,🔸Idx
,🔸Int
,🔹IU
,🔹PMI
,🔸Pmt
,🔸Prin
,🔹SC
,🔹UnpaidInt
🔹 AH
Data Type | Default |
---|---|
Currency | 0 |
The AH
attribute 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.
🔸 BegBal
Data Type |
---|
Currency |
The principal balance before the amortization event occurs.
🔹 CL
Data Type | Default |
---|---|
Currency | 0 |
The CL
attribute 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.
🔸 Date
Data Type |
---|
Currency |
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.
🔸 EndBal
Data Type |
---|
Currency |
The principal balance amount, after the amortization event has taken place.
🔸 Idx
Data Type |
---|
Integer |
The index of the amortization event, which is either the payment number, or zero. A value of zero designates a protection premium that was charged on a date other than a payment date. (Occurs with protection category "TrueMOB").
🔸 Int
Data Type |
---|
Currency |
The amount of the payment which goes to pay interest.
🔹 IU
Data Type | Default |
---|---|
Currency | 0 |
The IU
attribute 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.
🔹 PMI
Data Type | Default |
---|---|
Currency | 0 |
This attribute contains the PMI premium for this payment.
🔸 Pmt
Data Type |
---|
Currency |
The amount of the payment (or zero if the event is a "TrueMOB" protection premium).
🔸 Prin
The amount of the payment which goes to reduce the principal balance.
🔹 SC
Data Type | Default |
---|---|
Currency | 0 |
This attribute contains the total service charge for this payment, and will only be present if one or more service charges were requested with the loan.
🔹 UnpaidInt
Data Type | Default |
---|---|
Currency or Decimal | 0 |
This attribute 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 places. If rounded, then the unpaid interest is displayed to two (2) decimal places.
🟦 <Metavante>
Element Type | Data Type |
---|---|
Empty | - |
This element will only be present if the
Metavante
attribute of the root element is
set to true
. The element itself is empty, as all of the useful information is
in the following attributes:
Attributes:
🔸FormsTerm
,🔸HostTerm
🔸 FormsTerm
Data Type |
---|
Integer |
The number of months in the loan, as computed using the Metavante FORMS method.
🔸 HostTerm
Data Type |
---|
Integer |
The number of months in the loan, as computed using the Metavante HOST method.
Balloon Specified Amort Term - Request
The specified amortization term balloon loan request is almost identical to the specified regular balloon loan request, with the following differences:
- The root element is
<inBALLOON_SPECIFY_AMORT>
instead of<inBALLOON_SPECIFY_REGULAR>
. - There is no
<RegPmt>
element present, since this is one of the values (along with the final payment) we are solving for. - The new
<AmortTerm>
element allows the calling application to specify a desired final payment amount.
Please see the Legend to understand the conventions used to document each element and attribute. Note that for requests, the XML elements are documented in alphabetical order by parent element.
🟥 <inBALLOON_SPECIFY_AMORT>
Element Type | Data Type |
---|---|
Parent | - |
This element is the root element for the request. It is a parent element that has no data, but does have several attributes that offer a wide variety of adjustments.
Attributes:
🔹Account
,🔹AccrualCode
,🔹AprType
,🔹Country
,🔹DataDirPath
,🔹ForceReload
,🔹HideAmort
,🔹Lastday
,🔹MAPR_Max
,🔹Metavante
,🔹OddFinal
,🔹PmtDollarRound
,🔹PmtRound
,🔹PPY
,🔹UseMAPR
,🔹YieldPPY
🔹 Account
Data Type | Values | Default |
---|---|---|
Integer | [1...9999] | 1 |
This attribute specifies which account should be used to compute the requested
loan. Each account is numbered from 1 to 9,999, and each account corresponds to
a set of setup files which define numerous settings which may affect the loan
calculation, such as the accrual method, insurance methods and rates, etc. If
this attribute is not specified, a default value of 1
will be used.
🔹 AccrualCode
Data Type | Values | Default |
---|---|---|
Enum | See table | default |
This property allows an accrual method to be used other than the accrual method dictated by the setup file for the given account. If no accrual code attribute is specified, the method defined in the setup file will be used. The Accrual Code Table lists all valid accrual codes available. Note that for the split rate accrual codes (i.e. those above 500), the split rate tiers must be defined in the setup file.
🔹 AprType
Data Type | Values | Default |
---|---|---|
Enum | See below | default |
This attribute allows the calling application to specify an APR calculation method which will override the default value found in the setup file for the given account. If this attribute is set to a valid value, then the specified method will be used to compute the APR for this loan calculation.
If the Country
attribute has been set by the calling
application and this attribute is not set, then the APR method used will be
determined by the specified country. For the United States of America, the
default APR method is actuarial
. For a country in the European Union, the
default value is eu
(European Union APR). For Canada, the default APR method
is ca
(Canadian APR).
default
- Use setup file value.actuarial
- Appendix J Actuarial APRusrule
- US Rule APReu
- European Union APRca
- Canadian APRxirr
- Extended Internal Rate of Return (same as excel function)xirr360
- XIRR using a 360 divisor rather than a 365 divisorirr
- Simple Internal Rate of Return (same as excel function)
If this attribute is not specified and the Country
attribute
is not specified, then the value of default
will be used which informs the SCE
to use the APR method defined in the setup file for the specified
Account
.
🔹 Country
Data Type | Values | Default |
---|---|---|
Alpha-2 or Numeric-3 code | See table | US |
This attribute allows the calling application to specify a two (2) character or
three (3) digit country code. If none is provided, then a default value of US
will be used. Please see the Country Codes Table for the
list of supported countries and their associated codes.
Currently, the country code is used to determine the default value of the
AprType
attribute (see above).
🔹 DataDirPath
Data Type | Values | Default |
---|---|---|
Text | See below | See below |
If this attribute is set, the SCE will look for a data folder containing the
setup files in the path specified. Thus, if the DataDirPath
is set to
C:\SCEX\
, the SCE will look for the setup files in C:\SCEX\data
.
If the calling application wishes to specify the data directory path in its
entirety (e.g. the calling app does not want the SCE to append \data
to the
provided path), then simply terminate the specified DataDirPath
with an
asterisk (*
). Thus, if the DataDirPath
is set to C:\SCEX\bank1\*
, the SCE
will look for the setup files in C:\SCEX\bank1\
.
If this attribute is not set, the SCE will attempt to locate the data folder in
the default data directory path location, which can be retrieved using the
<inVERSION>
module query, and set via the SCE API.
This attribute is useful if you wish to use only a single installation of the
SCE, but have many different setup file groupings. By specifying a different
DataDirPath
for each grouping, you can easily separate the groups from one
another instead of grouping them all together in a single directory.
🔹 ForceReload
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
The SCE caches setup files previously used. This improves performance for
subsequent loan requests using one of the cached accounts. However, if you need
the SCE to reload the setup files for a given request (e.g. you just copied
over new setup files), then you can set this attribute to true
and the setup
files will be forced to reload. If left at the default value of false
, then
setup files are only reloaded when the SCE notices that one of the setup files
has been modified.
🔹 HideAmort
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
This attribute determines whether or not an amortization schedule will be
included in the response, given a successful loan calculation. If you do not
require the use of the amortization schedule, then setting this attribute to
true
will suppress its output. The default value of false
will return the
amortization schedule as part of the response.
🔹 Lastday
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If present, this attribute overrides the Last Day setting in the setup files, which only applies to loans computed with an actual day interest accrual calendar where the first payment date falls at the end of a month with fewer than 31 days. As an example, if the first payment date is on April 30, should the following payment dates be made on the 30th of each month, or on the last day of the month?
If no value is specified for this attribute, then the setup file setting will be
used. If true
is specified, then conditions triggering a last day situation
will result in payments which fall at the end of the month. A value of false
indicates that when dictated, subsequent payment dates will not be moved to the
last day of the month.
🔹 MAPR_Max
Data Type | Values | Default |
---|---|---|
Decimal | [-99.999...600] | 36.0 |
If you are computing the Military APR (see UseMAPR
below) and
wish to override the default maximum APR value of 36
%, then specify the
desired maximum as the value of this attribute.
🔹 Metavante
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to a value of true
, then the
<Metavante>
element will be included in the
response. Also, some loans will also disclose
<MinInterestPmt>
and
<MaxInterestPmt>
elements.
🔹 OddFinal
Data Type | Values | Default |
---|---|---|
Enum | default , true , false , 1 , 0 | default |
This attribute allows the calling application to specify an odd final payment
calculation method which will override the default value found in the setup file
for the given account. If not specified, then the value of default
will be used.
Odd final payments are sometimes desired to produce perfect amortization (i.e. an ending balance of zero after the final payment is made).
🔹 PmtDollarRound
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Payments are normally rounded to the penny, according to the method specified by
the PmtRound attribute (see below). If the payment should be rounded to the
dollar instead of the penny, then set the value of this attribute to true
.
Note that for some loans (such as those with longer terms or relatively small proceeds), rounding the payment up or to the nearest dollar may require a shortened loan term to prevent one or more negative payments at the end of the loan.
🔹 PmtRound
Data Type | Values | Default |
---|---|---|
Enum | default , nearest , up , down , best | default |
This attribute allows the calling application to specify a payment rounding
option which will override the value found in the setup file. If not specified,
then the value of default
will be used.
default
- Use method specified in setup file.nearest
- Round computed payment to the nearest penny, using 5/4 rounding. e.g. 300.242 = 300.24, 300.245 = 300.25.up
- Round computed payment up to the next penny. e.g. 300.241 = 300.25.down
- Round computed payment down to the previous penny. e.g. 300.249 = 300.24.best
- Once the unrounded payment has been computed, amortize the loan using the rounded down and rounded up payment, and then return the payment which amortizes the loan’s ending balance closest to zero.
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | See below | monthly |
PPY is an abbreviation for payments per year, and as one might surmise,
determines the payment frequency for the loan. The default value of monthly
will
result in a loan with 12 payments per year. If you require a loan with a payment
frequency other than monthly, specify it using this attribute.
Value | Translation | Description |
---|---|---|
1 | Annual | Once Per Year |
2 | SemiAnnual | Twice Per year (every six months) |
4 | Quarterly | Four per year (every three months) |
6 | Bimonthly | Six per year (every two months) |
12 | Monthly | Twelve per year (every month) |
24 | Semimonthly | Twice Per Month* |
26 | Biweekly | Every two weeks |
52 | Weekly | Every week |
* Semimonthly loans are characterized by making two payments per month on the same days. A common semimonthly schedule is to make payments every 1st and 16th of the month. Another common schedule is the 15th and the end of every month.
🔹 UseMAPR
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to a value of true
, the SCE will compute the Military
APR in addition to the Regulation Z APR. The <MAPR>
element will be included in the XML loan response.
🔹 YieldPPY
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 , 4 , 6 , 12 | 0 |
Canadian mortgages may compute periodic interest using a fractional power of a
periodic yield. If set to a value other than 0
, this value determines the
period. Please contact us for further information if you support mortgage
calculations in Canada. Note that when using this attribute with a value other
than zero, the calling application must include an odd days prepaid fee in the
request.
🟥 <AmortTerm>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | [<Term> + 1...600] * |
This required element contains the desired amortization term (specified as the
number of payments) to be used to compute the regular payment. The amortization
term must be greater than the balloon loan <Term>
, or else the
balloon loan will not be able to be computed.
* In general, the amortization term can be no greater than 50 years, so the maximum entry would be 50 *
PPY
. Weekly loans, however, are limited to 30 years, or 1,560 payments.
Attributes: None
🟦 <Construction>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | Not a construction loan |
Include the <Construction>
element to configure a construction period on a
loan. The use of this element requires setup files configured to support
construction loans, or specification of the Method
to be used.
If the specified account is not set up to support construction loans, this
element will be ignored.
Attributes:
🔹Accrual
,🔹Active
,🔹HalfCommitment
,🔹Method
,🔹PermanentAttached
,🔹PPY
,🔸Rate
,🔸Term
,🔹UnitOddDayDivisor
🔹 Accrual
Data Type | Values | Default |
---|---|---|
Enum | default , unitperiod , actual360 , actual365 | default |
If the loan request is a construction loan with no permanent loan attached, this attribute allows the calling application to specify the accrual method used.
default
- The setup files determine the default value for interest accrual.unitperiod
- Compute periodic interest using a 1/PPY factor.actual360
- Compute periodic interest using the actual # of days between payments/360.actual365
- Compute periodic interest using the actual # of days between payments/365.
🔹 Active
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this loan request includes a construction loan, then set this attribute to
true
. If no construction loan is desired, either do not specify the
<Construction>
element or set this attribute to false
.
🔹 HalfCommitment
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
During the term of the construction loan, the estimated interest for disclosure
purposes may be either computed on the full or half commitment amounts. By
setting this attribute to true
, interest will be estimated using half of the
initial commitment amount (i.e. the principal balance). The default value of
false
will cause interest to be estimated using the entire initial commitment
amount.
🔹 Method
Data Type | Values | Default |
---|---|---|
Enum | default , simple , laserpro , intonly | default |
There are three methods used to define how construction loans are computed and
disclosed. A method of default
tells the SCE to use the method
configured in the setup file. The meaning of the three methods are as follows:
simple
- Compute an aggregate construction interest amount for the entire construction period for both pure construction loans and construction to permanent loans.laserpro
- Compute an aggregate construction interest amount for the entire construction period for pure construction loans. For construction to permanent loans, compute and disclose discrete interest-only payments during the construction period.intonly
- Compute and disclose discrete interest-only payments during the construction period for both pure construction loans and construction to permanent loans.
🔹 PermanentAttached
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Construction loans may be computed on their own, or they may be attached to a
permanent loan which begins at the conclusion of the construction loan. If a
permanent loan is attached to the construction loan, then set this attribute’s
value to true
and set up the permanent loan information in the request
elements.
The default value of false
indicates that this is solely a construction loan
with no permanent attached. In this case, you still need to set up the
<LoanDate>
, <PmtDate>
and <Proceeds>
elements.
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | 1 , 2 , 4 , 6 , 12 , 24 , 26 , 52 | 12 |
The PPY
attribute allows the calling application to specify the payment
frequency during the construction period. The default value of monthly will
result in a construction loan with 12 payments per year. If you require a
payment frequency during the construction period other than monthly, then
specify it using this attribute. Note that if a permanent loan is attached to
the construction loan, that the permanent loan's payment frequency may differ
from the construction period’s payment frequency.
🔸 Rate
Data Type | Values | Default |
---|---|---|
Decimal | [-99.999...600] | 0 |
This attribute determines the rate applied to the appropriate commitment amount during the term of the construction loan.
🔸 Term
Data Type | Values | Default |
---|---|---|
Integer | [1...60] * | 0 |
The term of the construction loan (in payments) is specified using this attribute. Please note that the term may not exceed five years.
* 60 is the maximum number of months in the Construction period. In general, the maximum entry is 5 *
PPY
, where the PPY is the payments per year attribute of the<Construction>
element.
🔹 UnitOddDayDivisor
(enum, [], Ignore)
Data Type | Values | Default |
---|---|---|
Enum | ignore , 360 , 365 , vardpy | ignore |
When specifying an Accrual
method of type unitperiod
, this
attribute allows the calling application to specify how odd days between the
loan and first payment dates are taken into account.
ignore
means that all odd days are ignored, and the calculation will assume
one full unit period. 360
and 365
will compute the actual number of days
between the loan date and first payment date, and then use either a 360 or 365
divisor to determine the amount of interest accrued during that period. vardpy
accrues interest in the same manner as accrual code 250/350.
🟦 <Fee>[]
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No fee |
Unlike most other elements, any number of fees may be defined, or none at all. All of the information used to compute a fee is contained in its attributes.
Attributes:
🔹AddToFinChg
,🔹AddToPrin
,🔹Adjust
,🔹CalcType
,🔸Entry
,🔹IsLoanCost
,🔹MAPR
,🔹MaxValue
,🔹MinValue
,🔹Name
🔹 AddToFinChg
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
If this fee should be included in the Reg. Z Finance Charge (and hence, affect
the APR), then set this attribute to true
. The default value of false
indicates that the fee does not affect the Finance Charge nor APR.
🔹 AddToPrin
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this fee should be added to the principal balance (e.g. the fee is financed
along with the amount requested), then set this attribute to true
. If set to
false
, then the fee is paid up front out of the borrower’s pocket.
🔹 Adjust
Data Type | Values | Default |
---|---|---|
Currency | any | 0 |
The optional attribute Adjust
allows the calling application to increase or
decrease the base amount on which a fee is calculated. If a negative value is
specified and this adjustment would produce a negative base amount, then a value
of zero is returned for the given fee. This attribute has no effect on fees with
a CalcType
of Dollar
.
As an example, in Tennessee you may need to define a financed, non-APR affecting fee to be computed by decreasing the amount financed by $2,000, and then multiplying this reduced amount by 0.115. The way to accomplish this in the SCEX is as follows:
<Fee CalcType="OnAmtFin" Entry="0.115" Adjust="-2000" AddToPrin="true" AddToFinChg="false" />
🔹 CalcType
Data Type | Values | Default |
---|---|---|
Enum | Dollar , OnProceeds , OnAmtFin , OnPrin , DocStamp | Dollar |
The value of this attribute determines how the fee is to be computed, as described below:
Dollar
- TheEntry
attribute is understood as a flat dollar amount.OnProceeds
- TheEntry
attribute is understood as a percentage value, to be applied to the loan’s proceeds. AnEntry
of1.0
would represent a fee of 1.0% of proceeds.OnAmtFin
- TheEntry
attribute is understood as a percentage value, to be applied to the Amount Financed. AnEntry
of0.5
would represent a fee of 0.5% of Amount Financed.OnPrin
- TheEntry
attribute is understood as a percentage value, to be applied to the loan’s principal balance. AnEntry
of0.125
would represent a fee of 0.125% of principal balance.DocStamp
- TheEntry
attribute is understood as a Florida doc stamp rate, to be applied to the loan’s principal balance. AnEntry
of0.35
would represent a fee of 0.35% of the principal balance. You must set the AddToFinChg attribute to false, otherwise the doc stamp fee will return a value of zero.
🔸 Entry
Data Type | Values |
---|---|
Decimal or Currency | >= 0 |
The Entry
is the basic starting point fee value that determines the dollar
value of the resulting fee computation. How this attribute is interpreted
depends upon the CalcType
attribute, described above. This
value is either a dollar value or a percentage (aka "points").
🔹 IsLoanCost
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
When requesting the new TILA RESPA outputs (via the
<TILARESPA2015>
element), the SCE needs to know which fees need
to be considered borrower paid loan costs, as defined in the rule. Please note
that if the fee is paid by a lender or other third party, then the fee does not
affect the loan calculation and should not be sent to the SCE. If it is sent,
then the value of this attribute should be set to false
.
🔹 MAPR
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If you wish to compute the Military APR, then certain fees may not be considered
Regulation Z APR affecting fees, but are considered Military APR affecting fees.
In this case, you will need to set the value of this attribute to true
.
Fees which are added to the finance charge (e.g.
AddToFinChg
="true"
) are always considered MAPR fees,
regardless of the stated value of this attribute.
Note that debt protection products are automatically included in the calculation of the Military APR, no matter what method is used for payment (e.g. single premium vs. monthly outstanding balance).
🔹 MaxValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If a maximum value for the fee is specified and is greater than zero, then if the computed fee exceeds this maximum value, then this maximum value will be used instead. If no maximum value is specified or is set to a value of zero, then no maximum will be enforced. Please note that this attribute is applied to all fee types documented.
🔹 MinValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If a minimum value for the fee is specified and is greater than zero, and if the
Entry
attribute holds a value greater than zero, then if the
computed fee is less than this minimum value, then this minimum value will be
used instead. If no minimum value is specified or is set to a value of zero,
then no minimum will be enforced. If a specified minimum value exceeds a
specified maximum value, then the minimum value will be ignored. Please note
that this attribute is applied to all fee types documented.
🔹 Name
Data Type | Values | Default |
---|---|---|
Text | any | n/a |
This attribute is for convenience purposes only, and does not affect the
calculation of the fee in any manner. If a Name
attribute is specified for the
<Fee>
element, then the corresponding <Fee>
element in the XML output will have a Name
attribute with the same value. This allows you to easily differentiate fees in
the response.
🟦 <Format>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | See attributes |
The <Format>
element is one of the first elements parsed from a request, as the
attributes of this empty element affect how date and numeric values are parsed
and validated.
Attributes:
🔹CurrencyDecimals
,🔹DateFormat
,🔹DateSeparator
,🔹DecimalSeparator
,🔹StrictDP
,🔹ThousandSeparator
🔹 CurrencyDecimals
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 | 2 |
When displaying and parsing Currency values, the value of this attribute
determines the maximum number of decimal places allowed after the
DecimalSeparator
.
🔹 DateFormat
Data Type | Values | Default |
---|---|---|
Enum | YMD , MDY , DMY | YMD |
When displaying and parsing Date values, this field determines the expected
format for all Date fields. The following DateFormat
options are allowed:
YMD
- All dates should be formatted as YYYY-MM-DD.MDY
- All dates should be formatted as MM-DD-YYYY.DMY
- All dates should be formatted as DD-MM-YYYY.
Note that the character which separates the individual month, day, and year
portions of the date is configurable via the
DateSeparator
attribute.
🔹 DateSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | - |
When displaying and parsing Date values, this attribute determines the character used to separate the individual month, day, and year portions of a date.
🔹 DecimalSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | . |
When displaying and parsing Currency or Decimal numeric values, this attribute determines the character used to separate the fractional part from the whole.
🔹 StrictDP
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 , | false |
If the value of this attribute is true
, then the SCE will strictly verify the
number of decimal places allowed for currency input values. Thus, if the calling
application sends in a request with a currency amount of 1000.005
, the SCE
will return an error code.
If the value of this attribute is false
, then currency values sent in with an
invalid number of decimal places will be rounded to the correct number of
decimal places by the SCE (using five/four rounding), and a warning message with
this information will be returned with the response.
🔹 ThousandSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | , |
When displaying numeric values, this attribute determines the character used to separate the thousands places from the hundreds. Note that when parsing numeric values, the value of this attribute is ignored.
🟥 <IntRate>
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | [-99.999...600] |
The element data will determine the annual interest rate used for the loan. (Split rate loans require use of the setup files.)
The interest rate should be expressed as an annual percentage. For example, a loan computed with an interest rate of 6.125% would be specified as:
<IntRate>6.125</IntRate>
Attributes: None
🟦 <IntStartDate>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= <LoanDate> and <= <PmtDate> | <LoanDate> |
This element contains the date on which interest begins to accrue on the loan’s
principal balance. If this element is not specified, then the interest start
date is defaulted to be the <LoanDate>
. Also note that the
interest start date must be equal to the loan date when computing a construction
loan. The interest start date (when specified) must be on or after the loan
date, as well as on or before the <PmtDate>
. All dates must be in
the form of YYYY-MM-DD, and be 10 characters long. Hence, an interest start date
April 27, 2024 would be specified as:
<IntStartDate>2024-04-27</IntStartDate>
Attributes: None
🟥 <LoanDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= 1900-01-01 |
This element determines when interest begins to accrue. If interest begins on a
later date, use the <IntStartDate>
element to define the date
on which interest begins to accrue.
This element contains the date on which the loan amount is disbursed and interest begins to accrue. All dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a loan date of March 4, 2024 would be specified as:
<LoanDate>2024-03-04</LoanDate>
Attributes: None
🟦 <Mortgage_Insurance>
Element Type | Data Type | Values | Default |
---|---|---|---|
Parent | - | - | No mortgage insurance |
The <Mortgage_Insurance>
element determines if this loan includes one of the
supported types of mortgage insurance (MI) - PMI or FHA. This element contains
child elements which further specify mortgage insurance options.
NOTE: Mortgage insurance is only supported on equal, balloon, and interest only loan builder requests at this time.
Attributes:
🔹CashDown
,🔹LoanAmt
,🔸PropertyValue
,🔹Type
🔹 CashDown
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
The CashDown
attribute represents a cash down payment made at closing. If
specified and greater than zero, this amount will be deducted from the principal
balance. If not specified, the cash down payment will default to zero.
🔹 LoanAmt
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | Principal balance |
The LoanAmt
attribute represents the amount by which the PMI rates are
multiplied to produce a level PMI premium. If not specified, then the principal
balance will be used to compute the annual premium.
🔹 PropertyValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
This attribute’s value represents the appraised property value, and will be used in the calculation of the loan to value ratio.
🔹 Type
Data Type | Values | Default |
---|---|---|
Enum | pmi , fha | pmi |
This attribute determines the type of mortgage insurance to include with the
loan. If the Type
attribute is set to FHA
, a different MI premium is
computed every twelve months based upon the average outstanding principal
balance during that same term. The MI calculation adheres strictly to the HUD
regulation.
🟥 <Mortgage_Insurance>
→<MI_Rate>[]
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | >= 0 |
The value of this element specifies the cost of mortgage insurance per $100 of
the loan amount. Note that there may be more than one <MI_Rate>
element
defined in an XML loan request (see the Switch
attribute
below).
As an example, a loan computed with a MI rate of $1.50 per $100 would be
specified as <MI_Rate>1.50</MI_Rate>
.
Attributes:
🔸Switch
🔹 Switch
Data Type | Values | Default |
---|---|---|
Integer | > 0 | 0 |
This optional attribute defines the payment number beyond which the associated MI rate will apply. If not specified, the value will default to zero.
Thus, if there is only a single MI rate, one may omit this attribute. Single rate example (use a rate of $1.50 for the entire term of MI coverage):
<MI_Rate>1.50</MI_Rate>
Multiple rate example (use a rate of $1.50 for the first 10 years, with a rate of $0.20 for coverage beyond 10 years):
<MI_Rate>1.50</MI_Rate>
<MI_Rate Switch="120">0.20</MI_Rate>
🟦 <Mortgage_Insurance>
→<Periodic>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Integer | >= 0 | 0 |
The value of this element represents the term beyond which MI is no longer
included. As an example, if mortgage insurance must be removed after the 180th
payment, then the calling application should specify <Periodic>180</Periodic>
in the XML loan request. 0
means no term removal is in effect.
🔹 DropLTV
Data Type | Values | Default |
---|---|---|
Decimal | >= 0 and <= 100 | 0 |
The value of this attribute determines the loan to value ratio at which MI
should be removed, and is expressed as a percentage. For example, if you wish to
automatically drop MI when the loan to value ratio first equals or falls below
78%, then you would specify DropLTV="78.0"
.
🔹 WarnLTV
Data Type | Values | Default |
---|---|---|
Decimal | >= 0 and <= 100 | 0 |
The value of this attribute determines the loan to value ratio at which a
warning should be issued, and is expressed as a percentage of LTV (loan to
value). For example,if you wish to know when the loan to value ratio first
equals or falls below 80%, then you would specify WarnLTV="80.0"
.
🟦 <Mortgage_Insurance>
→<UpFront>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Decimal | >= 0 | 0 |
This element determines the up front fee for mortgage insurance, as disclosed in
the <PMI_Fee>
element in the results. If this element is not
specified, no up front fee will be computed. Note that ZOMP (zero option monthly
premium) products do not have an up front fee, which means that this element can
be omitted or set to zero.
The following attributes define how the fee is computed and disclosed.
🔹 Paid
Data Type | Values | Default |
---|---|---|
Enum | Financed , AtClosing , ByLender | AtClosing |
If the value of this attribute is set to Financed,
then the computed up front
fee will be added to the principal balance and the finance charge. A value of
AtClosing
will cause the value of the fee to be added to the finance charge
alone. Finally, a value of ByLender
means that the up front fee is to be paid by
the lender; hence, the value of the fee is a Pocket Fee that is not added to
either the principal balance nor the finance charge.
🔹 Units
Data Type | Values | Default |
---|---|---|
Enum | Months , Points , Years | Months |
If the Units attribute is set to Months
, the value of the
<UpFront>
element represents the number of periodic MI premiums to
be paid at closing.
If the Units attribute is set to Years
, the value of the
<UpFront>
element represents the number of annual MI premiums to
be paid at closing.
Many single premium products define the up front fee as a number of years of MI to be paid up front.
Finally, if the Units attribute is set to Points
, the value of the
<UpFront>
element represents the percentage of principal to be
paid up front. As of October 3, 2011, FHA loans use points.
🟦 <OddDaysPrepaid>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No odd days prepaid interest |
If odd days interest should be treated as a prepaid finance charge or added to the first payment, then include this empty element in the request. The attributes of this element determine how odd days interest is computed and handled.
Attributes:
🔹AccrualCode
,🔹AddToPmt
,🔹AddToPrin
,🔹AnchorDate
,🔹ForceUnitPeriod
,🔹NoCap
,🔹UseDailyCost
,🔹UseNegODI
🔹 AccrualCode
Data Type | Values | Default |
---|---|---|
Enum | See below | 220 |
The accrual code defines how the odd days interest is computed.
Note that accrual code 250
("Variable Days Per Year") defines the basis divisor
days to be equal to 12 multiplied by the number of days in the month of the date
on which interest begins to accrue. Thus, if the interest start date falls in
November, then the number of basis days is 360. If the interest start date falls
in a month with 31 days, then the number of basis days is 372. For an interest
start date in February, the number of basis days will either be 336 or 348,
depending upon whether or not it is a leap year.
AccrualCode | Description |
---|---|
204 | Unit period simple w/ true 360 calendar and 360 day divisor |
205 | Unit period simple w/ true 360 calendar and 365 day divisor |
210 | Actual / 360 simple |
211 | True 365 / 360 simple |
220 | Actual / 365 simple |
221 | True 365 / 365 simple |
230 | Actual / Actual simple |
231 | Midnight 366 simple |
250 | Unit period simple w/ variable DPY divisor |
🔹 AddToPmt
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application wants the odd days interest to be added to the first
payment, then set the value of this attribute to true
. A value of false
indicates that the odd days interest will be treated as a prepaid fee.
🔹 AddToPrin
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If any odd days interest should be treated as a financed prepaid fee, then set
the value of this attribute to true
. Note that if both
AddToPmt
and AddToPrin
are set to true
, then a warning
message will be returned by the SCEX and the value of AddToPrin
will be set to
false
.
🔹 AnchorDate
Data Type | Values | Default |
---|---|---|
Enum | BackUnitPeriod , BackDaysPerPeriod | BackUnitPeriod |
The computed number of odd days is the number of days between the loan date and the anchor date. This attribute determines how to arrive at the anchor date.
BackUnitPeriod
- The anchor date is one unit period prior to the specified first payment date.BackDaysPerPeriod
- The anchor date is the number of days per period prior to the first payment date.
Please note that for both of these methods, the period used will be that associated with the payment stream in which the first payment occurs.
🔹 ForceUnitPeriod
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the loan's interest accrual is unit period, this attribute forces the period
to the first payment to be 1/12 (or 1/(PmtsPerYear) in general). Without this
attribute an accrual code of 202
(Unit Period /365) would use a factor of
Days/365 rather than the expected 1/12.
🔹 NoCap
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
When an odd days interest fee is present and financed, the value of this
attribute determines if the ODI fee is added to the principal balance for the
purposes of computing the ODI fee (e.g. if it is capitalized). If this value is
true
, the ODI is computed on the true principal balance less the ODI; false
means "compute ODI on the true principal balance.
🔹 UseDailyCost
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the total odd days prepaid fee is computed by first generating a rounded (to
the nearest penny) daily cost and then multiplying this value by the computed
number of odd days, then set the value of this property to true
.
A value of false
means that the daily cost is left unrounded, and the total
prepaid fee is rounded after the computation is complete.
🔹 UseNegODI
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If there are negative odd days in the loan, then the value of this attribute
determines if a negative odd days interest fee is computed. If the value of this
attribute is false
, then negative odd days fees are not allowed, the SCEX will
return a value of zero in this situation, and the computed payment will be
adjusted to take into account the negative odd days. A value of true
will
return a negative odd days interest fee (in effect, it then becomes an odd days
interest credit) when there are negative odd days in a loan.
🟥 <PmtDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= <LoanDate> and >= <IntStartDate> |
This element contains the date on which the first payment of the loan is made, and must be on or after the loan date.
All dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a first payment date of April 4, 2024 would be specified as:
<PmtDate>2005-04-04</PmtDate>
Attributes: None
🟥 <Proceeds>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | >= 0 |
The proceeds specifies the amount the customer has frequested to borrow, ignoring every other financed quantity. Proceeds of up to one billion dollars are accepted.
The amount should be expressed as a number. For example, a request including
<Proceeds>10000.00</Proceeds>
indicates an amount requested of 10,000.
Attributes: None
🟦 <Protection>
Element Type | Data Type | Values | Default |
---|---|---|---|
Parent | - | - | No protection included |
The <Protection>
element is used to specify debt protection coverages such as
life, disability, involuntary unemployment, personal property and debt
cancellation. Each type of coverage is specified by its own sub-element, along
with the borrower birthdays. The following attributes apply to this element:
Attributes:
🔹FinanceProt
,🔹LineOfCredit
,🔹Mandatory
,🔹ShowBorrowerInfo
,🔹ShowCaps
🔹 FinanceProt
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
If the computed premiums for single premium debt protection products should be
financed along with the proceeds, then this attribute should be set to true
(which is the default value if not specified). A value of false
indicates that
the computed premiums will not be financed with the proceeds, and hence will be
paid out of pocket by the borrower. Note that this applies to single premium
insurance products only!
🔹 LineOfCredit
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this is an account using TruStage’s MOB insurance, and if this loan is a line
of credit where product term caps should be ignored, then set this attribute to
true
. Otherwise, leave this attribute unspecified or set it to false
.
🔹 Mandatory
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the value of this attribute is set to true
, then any computed payment
protection premium or fee will be considered a mandatory fee which will be
included as a part of the Regulation Z Finance Charge, and hence affect the
Regulation Z APR. In this case, the <Protection>
element in the response will contain a
Mandatory
="true"
attribute indicating this.
If the Mandatory attribute is set to false
, the loan will treat any premiums /
fees as normal.
🔹 ShowBorrowerInfo
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application would like to have data returned for each specified
borrower instead of a single <CovTerm>
element, then
set the value of this attribute to true
. Otherwise, leave this attribute
unspecified or set it to false
. See the <Borrower>
and <CovTerm>
elements defined in the response for
more information.
🔹 ShowCaps
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application would like to have cap information (e.g., maximum
terms, coverage amounts, ages, etc.) returned for each product offered, set the
value of this attribute to true
. Otherwise, leave this attribute unspecified
or set it to false
. See the <Caps>
element for more
information.
🟦 <Protection>
→<Birthday1>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= 1900-01-01 | No birthday specified |
This element contains the date of birth for the primary borrower. All dates must
be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a birthday of
April 9, 1972 would be specified as <Birthday1>1972-04-09</Birthday1>
. Note
that this element must be set if the Covers attribute of any of the four debt
coverage elements is set to borrower1
or both
.
Attributes: None
🟦 <Protection>
→<Birthday2>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= 1900-01-01 | No birthday specified |
This element contains the date of birth of the secondary borrower. All dates
must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a birthday
of May 21, 1969 would be specified as <Birthday2>1969-05-21</Birthday2>
.
Attributes: None
🟦 <Protection>
→<Disability>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No disability coverage |
The <Disability>
element determines what type of disability coverage is
requested for the loan. It also serves double duty as the debt cancellation
coverage element, for accounts set up to compute debt cancellation using the
disability tables. The element itself is empty, with all information needed for
disability coverage request being specified in the following attributes:
Attributes:
🔹Benefit
,🔹CoverBalloon
,🔹Covers
,🔹CovTerm
,🔹Table
🔹 Benefit
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
🔹 CoverBalloon
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
This attribute is only applicable when the loan is covered with TruStage single premium insurance. If this attribute is set to true, then the SCE will cover the regular benefit amount for the amortization term of the loan. If set to false, then the regular benefit amount is covered for the actual loan term.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in the appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <Disability>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will assure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user specified coverage terms, then this attribute will be ignored.
🔹 Table
Data Type | Values | Default |
---|---|---|
Integer | [0...19] | 0 |
If the specified account has been set up with multiple disability or debt
cancellation plans, then this attribute determines which plan number will be
used. If no table number is specified, the first table (table zero) will be
used. To find out the number of available plans, use the
<AhSetCount>
element in the
<inINPUT_TOOL>
response.
🟦 <Protection>
→<Life>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No life coverage |
The <Life>
element determines what type of life coverage is requested for the
loan. The element itself is empty, with all information needed for a life
coverage request being specified in the following attributes:
Attributes:
🔹Coverage
,🔹Covers
,🔹CovTerm
,🔹Dismemberment
,🔹Method
,🔹UseLevelRates
🔹 Coverage
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
If you wish to specify a coverage amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum coverage amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified coverage amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in the appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <life>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will assure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user specified coverage terms, then this attribute will be ignored.
🔹 Dismemberment
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the specified account has been set up to offer optional dismemberment coverage to be offered with life coverage (using an increased rate in the premium calculation), then this attribute determines whether or not this additional coverage will be provided.
🔹 Method
Data Type | Values | Default |
---|---|---|
Enum | default , net , gross | default |
If the specified account has been set up to offer single premium life coverage
by default, net or gross coverage, then this attribute can be used to specify
which type of coverage to compute with the loan. For all other accounts, the
default value of default
should be used (or simply do not specify the attribute
at all).
🔹 UseLevelRates
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the account specified has been set up to offer single premium credit life
using level rates instead of the normal decreasing rates, then set this
attribute’s value to true
. Otherwise, use the default value of false
.
🟦 <Protection>
→<Property>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No property coverage |
The <Property>
element determines what type of personal property coverage is
requested for the loan. The element itself is empty, with all information needed
for coverage request being specified in the following attributes:
🔹 Coverage
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a coverage amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum coverage amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user-specified coverage amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The value borrower1
represents single coverage on the primary borrower (whose
birthday is contained in element <Birthday1>
). A request for
joint coverage on both borrowers is indicated by a value of both
. Finally, if
no coverage is desired, specify a value of none
or omit the <Property>
element entirely.
🟦 <Protection>
→<Unemployment>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No unemployment coverage |
The <Unemployment>
element determines what type of involuntary unemployment
coverage is requested for the loan. The element itself is empty, with all
information needed for a coverage request being specified in the following
attributes:
🔹 Benefit
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in the appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <Unemployment>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will ensure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user-specified coverage terms, then this attribute will be ignored.
🟦 <ServiceCharge>[]
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No service charge |
As with the <Fee>
element, any number of <ServiceCharge>
elements
may be added to a loan. Service charges are supported on single, equal, and
balloon payment loans only.
The <ServiceCharge>
element itself contains no data. Instead, all of the
information used to compute the service charge is contained in the following
attributes of the element:
🔸 Entry
(decimal, 0)
How this attribute is interpreted depends upon the Type
attribute, described below. It is the numeric amount defining either the lump
sum or periodically paid service charge.
🔹 Exact
(boolean, false)
The Exact
attribute is only considered when the service charge is of
Type
LumpSum
. When the calculated periodic amount is
rounded, it will most often times produce a total service charge amount that
differs from that entered.
If the Exact
attribute is set to true
, then the final periodic amount will be
adjusted so that the sum of all periodic amounts is exactly equal to the entered
amount (and will result in an odd final payment). A value of false
indicates
that the final periodic amount will not be adjusted.
🔹 Name
(text, "")
This attribute is for convenience purposes only, and does not affect the
calculation of the service charge in any manner. If a Name
attribute is
specified for the <ServiceCharge>
element, then the corresponding
<ServiceCharge>
element in the response will have a
Name
attribute with the same value. This allows
you to easily differentiate fees in the response.
🔹 Round
(enum, [nearest, up, down], nearest)
This attribute is only considered when the service charge is of
Type
LumpSum
. It determines how the calculated periodic
amount is rounded.
🔹 Type
(enum, [LumpSum, Periodic], LumpSum)
A service charge of Type
of LumpSum
allows the calling application to specify an
amount that will be spread out evenly over the loan’s payment stream. On the
other hand, a Periodic
service charge is the amount which will be added to each
payment.
🟥 <Term>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | [2...600] * |
The value of this element indicates the number of payments in the loan.
The term must be entered as a number of payments, not a duration of time.
Therefore, <Term>72</Term>
represents 72 payments, not 72 months (or years).
This term is intimately tied to the PPY
(# of payments per year)
attribute of the root element. If the value of the PPY
attribute
was 24
(semimonthly) for this loan, the 72 payments would mean that the
duration of the loan is three years, since years = number of payments / payments
per year = 72 / 24 = 3.
* In general, the term can be no greater than 50 years, so the maximum entry would be 50 *
PPY
. Weekly loans, however, are limited to 30 years, or 1,560 payments.
Attributes: None
🟦 <TILARESPA2015>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No TILA RESPA disclosures |
The presence or absence of this element determines whether or not the TILA RESPA data table is present in the output.
If this element is present in the loan request, then the SCEX will return data for the Integrated Mortgage Disclosures under the Real Estate Settlement Procedures Act (Regulation X) and the Truth In Lending Act (Regulation Z) rule, which is required as of August 1st, 2015. If this element is not present, then the TILA RESPA outputs will not be generated.
Attributes: None
🟦 <TotalDown>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
This optional element represents the total down payment that the borrower has applied to reduce the requested proceeds. It may consist of a cash down payment, net trade-in value, or rebate. You only need to specify a total down payment if the loan needs to disclose a total sale price. Typical examples of these loan types are auto and boat loans.
To generate a total down payment, please see the chapter detailing the SCEX’s Auto Prompts module.
Attributes: None
Balloon Specified Amort Term - Response
The specified amortization term loan response is almost identical to the specified regular balloon loan response, with the following differences:
- The root element is
<outBALLOON_SPECIFY_AMORT>
instead of<outBALLOON_SPECIFY_REGULAR>
.
Please see the Legend to understand the conventions used to document each element and attribute. Note that for responses, the XML elements are documented in the order that they appear in the response.
🟥 <outBALLOON_SPECIFY_AMORT>
Element Type | Data Type |
---|---|
Parent | - |
This element is the root element of the response, and contains all of the relevant outputs.
Attributes:
🔹CountryName
🔹 CountryName
Data Type | Values | Default |
---|---|---|
Text | See table | United States of America |
If a valid Country
code was specified as an
attribute of the input module element, the full name of the country associated
with the specified Country code will be reported in this attribute.
🟥 <Results>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which describe the success or failure of the calculation, any warning or error messages, and the most important numerical results for the query.
<Results>
<Description>Successful Calculation</Description>
<Payment>132.97</Payment>
<Final>9526.28</Final>
</Results>
Attributes: None
🟥 <Results>
→<Description>
Element Type | Data Type |
---|---|
Data | Text |
If the calculation was completed successfully, then this element will contain
the value Successful Calculation
. Otherwise, this element will contain a
description of the problem encountered during the attempted computation.
Attributes: None
🟦 <Results>
→<XMLDetail>[]
Element Type | Data Type | Default |
---|---|---|
Data | Text | NULL |
The <XMLDetail>
elements are messages passed back to the calling application
which detail the status of the XML request. If the SCEX issues any warnings
regarding unrecognized elements or attributes, then each warning message will be
displayed in an <XMLDetail>
element.
Attributes: None
🟥 <Results>
→<Payment>
Element Type | Data Type |
---|---|
Data | Currency |
The specified regular payment (<RegPmt>
) amount
which amortizes the loan, along with the computed final payment
(<Final>
).
Attributes: None
🟥 <Results>
→<Final>
Element Type | Data Type |
---|---|
Data | Currency |
The computed final (or balloon) payment amount which amortizes the loan given the requested regular payment.
Attributes: None
🟥 <FedBox>
Element Type | Data Type |
---|---|
Parent | - |
Some of the most important compliance related outputs are organized into the
<FedBox>
disclosures.
<FedBox>
<AmtFin>10000.00</AmtFin>
<FinChg>988.95</FinChg>
<TotPmts>10988.95</TotPmts>
<RegZAPR Type="Actuarial">10.167</RegZAPR>
</FedBox>
Attributes: None
🟥 <FedBox>
→<AmtFin>
Element Type | Data Type |
---|---|
Data | Currency |
The Regulation Z Amount Financed, which is defined as the amount of credit provided to you or on your behalf.
Attributes: None
🟥 <FedBox>
→<FinChg>
Element Type | Data Type |
---|---|
Data | Currency |
This element contains the Regulation Z Finance Charge, described as the dollar amount the credit extension will cost you.
Attributes: None
🟥 <FedBox>
→<TotPmts>
Element Type | Data Type |
---|---|
Data | Currency |
The amount which the borrower will have paid when the borrower has made all scheduled payments.
Attributes: None
🟦 <FedBox>
→<TotalSalePrice>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | <TotPmts> |
The sum of the total of payments plus the total down payment. Please note that
if no <TotalDown>
element was specified in the
request, then this element will not be present.
Attributes: None
🟥 <FedBox>
→<RegZAPR>
Element Type | Data Type |
---|---|
Data | Decimal |
The Regulation Z APR, which is the cost of the extension of credit expressed as a yearly rate. The Reg. Z APR element has a few attributes, described below:
Attributes:
🔹Max
,🔹MaxExceeded
,🔸Type
🔹 Max
Data Type | Default |
---|---|
Decimal | n/a |
This attribute specifies the maximum APR as configured in the account's setup files. If no maximum APR has been specified, then this attribute will not be present. The value of this attribute should be displayed as a percentage. As an example, for Max="36.000", you would disclose a maximum APR of 36.000%.
🔹 MaxExceeded
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
If a maximum APR is configured in the account's setup files, then the value of
this attribute indicates whether or not the current loan exceeds the maximum
allowed APR. As an example, if the maximum APR has been set to 36% and the APR
for the returned loan was 37.125%, the <RegZAPR>
element would be:
<RegZAPR Type="Actuarial" Max="36.000" MaxExceeded="true">37.125</RegZAPR>
🔸 Type
Values | |
---|---|
Enum | Actuarial , USRule , EU_APR , Canadian_APR , XIRR , XIRR360 , IRR , YieldIRR , Open_End |
This attribute specifies the method used to compute the reported APR: Actuarial or US Rule The method used is dictated by the setup files for the given account, but may be overridden in the XML input query.
Actuarial
- Governed by Appendix J to Regulation Z. Default US APR.USRule
- Used by large banks to mirror loan amortization.EU_APR
- Default European Union APR.Canadian_APR
- Default APR for Canada.XIRR
- Extended Internal Rate of Return (same as excel function).XIRR360
-XIRR
using a 360 divisor rather than a 365 divisor.YieldIRR
- Canadian mortgages may compute periodic interest using a fractional power of a periodic yield.Open_End
- Simply returns the interest rate.
🟦 <FedBox>
—><MAPR>
Element Type | Data Type |
---|---|
Data | Decimal |
If the military APR has been requested, then this element will be included in the output. The value of the element is the military APR, and the element has a few attributes, described below:
Attributes:
🔸Advance
,🔹Max
,🔹MaxExceeded
🔸 Advance
Data Type |
---|
Currency |
This attribute is the equivalent of the Amount Financed for the Military APR. Specifically, it is the principal balance less any MAPR fees, debt protection, etc.
🔹 Max
Data Type | Default |
---|---|
Decimal | 36.0 |
This attribute specifies the maximum Military APR as specified in the input XML
(see MAPR_Max
). If not specified, a default value
of 36% is assumed. The value of this attribute should be displayed as a
percentage. As an example, for Max="36.0"
, you would disclose a maximum
Military APR of 36.0%.
🔹 MaxExceeded
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
The value of this attribute 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>
element would be:
<MAPR Advance="1350.00" Max="36.000" MaxExceeded="true">37.125</MAPR>
🟦 <TILARESPA2015>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which are of interest to fulfilling the
2015 TILA RESPA rule. It will only be present if the
<TILARESPA2015>
element is present in the
request.
Sample TILARESPA2015 output:
<TILARESPA2015>
<TotalLoanCosts>0</TotalLoanCosts>
<CD_TotPmts>27311.07</CD_TotPmts>
<In5Years PaidTotal="27311" PaidPrincipal="25000"/>
<TIP>9.244</TIP>
<MaxPnIPmt Date="2012-11-01">1636.65</MaxPnIPmt>
<MinRate Idx="1">5.651</MinRate>
<MaxRate Idx="1">5.651</MaxRate>
<ProjectedPayments NumCols="3">
<PPCol Num="1" Title="Year 1">
<Years Start="1" End="1"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
<PPCol Num="2" Title="Year 2">
<Years Start="2" End="2"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
<PPCol Num="3" Title="Year 3">
<Years Start="3" End="3"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
</ProjectedPayments>
</TILARESPA2015>
Attributes: None
🟦 <TILARESPA2015>
→<LoanCost>[]
Element Type | Data Type |
---|---|
Data | Currency |
For every <Fee>
element present in the input which has
its IsLoanCost
attribute 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>
input element), there will be a
corresponding <LoanCost>
element. The value of this element will be the
numerical value of the fee, rounded to the nearest dollar.
🔹 In5Years
Data Type | Default |
---|---|
Currency | <LoanCost> |
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 attribute will be present and disclose the portion of this loan cost that is accrued during the first five years.
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
This attribute will hold the same value as the attribute of the same name for
the <Fee>
element. It is recommended that each fee
have a unique Name
for identification purposes.
🟥 <TILARESPA2015>
→<TotalLoanCosts>
Element Type | Data Type |
---|---|
Data | Currency |
This element holds the sum of all borrower paid loan costs. Since all
<LoanCost>
element values are rounded dollar amounts, the value of this
element will also be a rounded dollar amount.
Attributes: None
🟥 <TILARESPA2015>
→<CD_TotPmts>
Element Type | Data Type |
---|---|
Data | Currency |
This element holds 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 will be the numerical value of the sum.
Attributes: None
🟥 <TILARESPA2015>
→<In5Years>
Element Type | Data Type |
---|---|
Empty | - |
This element is empty, with all important values required for the new "In 5 Years" section returned in the following two attributes of this element.
Attributes:
🔸PaidPrincipal
,🔸PaidTotal
🔸 PaidPrincipal
Data Type |
---|
Currency |
This attribute 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.
🔸 PaidTotal
Data Type |
---|
Currency |
This attribute 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.
🟥 <TILARESPA2015>
→<TIP>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the total interest percentage, rounded to three or fewer decimal places, as required.
Attributes: None
🟥 <TILARESPA2015>
→<MaxPnIPmt>
Element Type | Data Type |
---|---|
Data | Currency |
The value of this element holds the maximum scheduled principal and interest payment during the term of the loan.
Attributes: 🔸
Date
🔸 Date
Data Type |
---|
Date |
This attribute contains 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. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🟥 <TILARESPA2015>
→<MinRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the minimum possible interest rate applied during the term of the loan.
Attributes: 🔸
Idx
🔸 Idx
Data Type |
---|
Integer |
This attribute contains the payment number for which the minimum rate is first applicable.
🟥 <TILARESPA2015>
→<MaxRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the maximum possible interest rate applied during the term of the loan.
Attributes: 🔸
Idx
🔸 Idx
Data Type |
---|
Integer |
This attribute contains the payment number for which the maximum rate is first applicable.
🟥 <TILARESPA2015>
→<ProjectedPayments>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which are of interest to filling the
Projected Payments table. It will only be present if the <TILARESPA2015>
element is present in the XML request for a supported loan type.
Attributes: 🔸
NumCols
🔸 NumCols
Data Type | Values |
---|---|
Integer | [1...4] |
This attribute will hold the number of columns which must be present in the Projected Payments table. It will be a numeric value from 1 to 4.
🟥 <ProjectedPayments>
→<PPCol>[]
Element Type | Data Type |
---|---|
Parent | - |
For every column required in the Projected Payments table, there will be an
associated <PPCol>
element. This element is a parent to child elements which
contain data associated with a single column of the table.
🔸 Num
Data Type | Values |
---|---|
Integer | [1...4] |
This attribute will hold the number of the column to which the following data applies.
🔸 Title
Data Type |
---|
Text |
The value of this attribute 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.
🟥 <ProjectedPayments>
→<PPCol>
→<Years>
Element Type | Data Type |
---|---|
Empty | - |
The attributes of this element hold the beginning and ending year numbers for which this column data applies. The element itself is empty.
🔸 End
Data Type |
---|
Integer |
The ending year associated with this column's data.
🔸 Start
Data Type |
---|
Integer |
The beginning year associated with this column's data.
🟥 <ProjectedPayments>
→<PPCol>
→<PnIPmt>
Element Type | Data Type |
---|---|
Empty | - |
This empty element has several attributes which describe the principal and interest payments associated with this column.
🔸 Balloon
Data Type | Values |
---|---|
Boolean | true , false |
If any of the payments associated with this column are balloon payments (e.g.
isolated payments that are more than twice the value of a regular periodic
payment), then the value of this attribute will be true
.
🔸 IntOnly
Data Type | Values |
---|---|
Enum | all , some , none |
none
- No payments associated with the column are Interest Onlysome
- Some, but not all, of the payments associated with the column are Interest Only.all
- All of the payments associated with the column are Interest Only.
Note that for the purposes of this attribute, 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.
🔸 Max
Data Type |
---|
Currency |
This attribute holds the maximum principal and interest payment for this column.
If this value is not the same as the value of the Min
attribute, then a range of rounded payments must be displayed. If the values are
the same, then only a single value needs to be disclosed.
🔸 Min
Data Type |
---|
Currency |
This attribute holds the minimum principal and interest payment for this column.
🟥 <ProjectedPayments>
→<PPCol>
→<MIPmt>
Element Type | Data Type |
---|---|
Data | Currency |
The value of this element 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.
Attributes: None
🟥 <ProjectedPayments>
→<PPCol>
→<TotalPmt>
Element Type | Data Type |
---|---|
Empty | - |
This empty element has two attributes which describe the estimated total payment or range of payments associated with this column. Note that this value does not include any estimated escrow, as the SCEX does not support escrow calculations. The calling application will need to increase these values by the estimated escrow amounts if any are present.
🔸 Max
Data Type |
---|
Currency |
This attribute holds the maximum estimated total payment for this column. If
this value is not the same as the value of the Min
attribute,
then a range of rounded payments must be displayed. If the values are the same,
then only a single value needs to be disclosed.
🔸 Min
Data Type |
---|
Currency |
This attribute holds the minimum estimated total payment for this column.
🟥 <Moneys>
Element Type | Data Type |
---|---|
Parent | - |
This element groups together those other major cash amounts not disclosed under
the <FedBox>
element, such as the principal balance, interest
change, fee amounts and protection premiums.
<Moneys>
<Principal>10120.00</Principal>
<Interest>1635.80</Interest>
<OddDaysPrepaid OddDayCount="15" DailyCost="2.77">41.55</OddDaysPrepaid>
<FinFees>120.00</FinFees>
<FinChgFees>91.55</FinChgFees>
<PocketFees>65.00</PocketFees>
<MAPRFees>201.55</MAPRFees>
<Protection Category="None" PerPmt="0.00" PerDay="0.00">0.00</Protection>
<Fee Name="FinFee">60.00</Fee>
<Fee Name="Prepaid Fee">50.00</Fee>
</Moneys>
Attributes: None
🟥 <Moneys>
→<Principal>
Element Type | Data Type |
---|---|
Data | Currency |
The principal balance is the amount on which interest is accrued. The principal balance consists of the amount requested by the borrower, any fees which are financed, as well as financed protection premiums.
Attributes: None
🟥 <Moneys>
→<Interest>
Element Type | Data Type |
---|---|
Data | Currency |
This element contains the total interest accrued during the term of the loan, assuming the borrower will make all scheduled payments.
Attributes: None
🟦 <Moneys>
→<ConstructInterest>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If the requested loan is a construction loan with a permanent loan attached and the account specified is set up to compute construction loans via the "Simple" method, then this element 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 <Interest>
element, and
both loans reflected in a single, combined amortization schedule.
If the requested loan was not a construction loan, or if construction loans have not been set up for the given account, then this element will not appear in the results.
Attributes: None
🟦 <Moneys>
→<OddDaysPrepaid>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element, if present, holds the total odd days prepaid finance charge. If no odd days prepaid fee was requested, then this element will not be present in the output.
Attributes:
🔹AddToPmt
,🔹DailyCost
,🔸OddDayCount
,🔹OddMonths
🔹 AddToPmt
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
If the odd days interest has been added to the first payment, this attribute
will be present in the output with a value of true
. If the odd days interest has
been treated as a prepaid finance charge, then this attribute will not be
present and a default value of false
should be assumed.
🔹 DailyCost
Data Type | Default |
---|---|
Currency | n/a |
If the odd days prepaid fee is computed using a rounded daily cost, then the value of this attribute will hold that value. If the odd days prepaid is not computed using a rounded daily cost, then this attribute will not be present.
🔸 OddDayCount
Data Type |
---|
Integer |
This attribute holds the number of odd days computed by the SCE for the requested loan.
🔹 OddMonths
Data Type | Default |
---|---|
Integer | n/a |
This attribute holds the number of odd months computed by the SCE for the
requested loan when using odd days accrual method 250
.
🟦 <Moneys>
→<MinInterestPmt>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | n/a |
The <MinInterestPmt>
element will only appear if the
Metavante
attribute has been set to true
,
and even then only under certain loan conditions. The element itself contains no
data, as all required data is found in the following two attributes:
🔸 Index
Data Type |
---|
Integer |
The Index
attribute specifies the payment number in the payment stream at which
the minimum interest payment is achieved.
🔸 Pmt
Data Type |
---|
Currency |
The interest payment amount for the given Index
.
🟦 <Moneys>
→<MaxInterestPmt>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | n/a |
The <MaxInterestPmt>
element will only appear if the
Metavante
attribute has been set to true
,
and even then only under certain loan conditions. The element itself contains no
data, as all required data is found in the following two attributes:
🔸 Index
Data Type |
---|
Integer |
The Index
attribute specifies the payment number in the payment stream at which
the maximum interest payment is achieved.
🔸 Pmt
Data Type |
---|
Currency |
The interest payment amount for the given Index
.
🟦 <Moneys>
→<FinFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element contains the sum of all financed fees requested for the loan. If no financed fees were requested, then this element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<FinChgFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element contains the sum of all APR affecting fees (those fees which are
added to the <FinChg>
) requested for the loan. If no APR affecting
fees were requested, then this element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<PocketFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element 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 element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<MAPRFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element 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.
Attributes: None
🟦 <Moneys>
→<Protection>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
Contains the total cost of all protection plans included with the computed loan.
For the individual plan costs, see the <ProtectionInfo>
elements described
below. The attributes of this element are as follows:
Attributes:
🔸Category
,🔹IsDp
,🔹Mandatory
,🔸PerDay
,🔸PerPmt
🔸 Category
Data Type | Values |
---|---|
Enum | See below |
This attribute specifies the category under which the computed loan protection falls. The possible values for this attribute are:
None
- No protection catetory has been identified.SP
- Single Premium protection financed at loan closing.MOB
- Monthly outstanding balance (paid on Payments).TrueMOB
- Premiums paid monthly on a date specified in the setup files.PaidSP
- Single premium protection paid at closing.ConstantMOB
- CMOB is a product paid with payments and a constant amount.AddToPmtMOB
- MOB insurance added to a constant P&I payment, resulting in variable payments.
🔹 IsDp
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
This attribute indicates if the specified account’s protection is set up as debt
protection. If this attribute 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).
🔹 Mandatory
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
This attribute should only appear in the response if the value of the attribute
is true
. If this attribute does not appear in the output, then the value of
this attribute should default to false
. If the value of the Mandatory
attribute is true
, then the total premium/fee amount for all insurance/debt
protection products has been treated as a part of the Regulation Z Finance
Charge, and hence will affect the Reg. Z APR.
🔸 PerDay
Data Type |
---|
Currency |
Contains the cost of all loan protection products expressed as dollars per day.
🔸 PerPmt
Data Type |
---|
Currency |
Contains the cost of all loan protection products expressed as dollars per payment.
🟦 <Moneys>
→<MinIntChgAdj>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a minimum interest charge is configured in the account’s setup files and the final payment was adjusted to meet this minimum interest charge, then this element will be returned in the response and will contain the value of the minimum finance charge adjustment.
Attributes: None
🟦 <Moneys>
→<MinFinChgAdj>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a minimum finance charge is configured in the account’s setup files and the final payment was adjusted to meet this minimum finance charge, then this element will be returned in the response and will contain the value of the minimum finance charge adjustment.
Attributes: None
🟦 <Moneys>
→<Fee>[]
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
For each non-zero fee requested in the loan calculation, there will be a <Fee>
element containing the computed fee amount.
Attributes:
🔹Name
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
Contains the value of the Name attribute of the corresponding
<Fee>
element from the request. If no such attribute is
present in the <Fee>
element, then none will be present
in the response element.
🟦 <Moneys>
→<ServiceCharge>[]
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
For each non-zero service charge requested in the loan calculation, there will
be a <ServiceCharge>
element containing the total service charge amount.
Attributes:
🔹Name
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
Contains the value of the Name attribute of the corresponding
<ServiceCharge>
element from the request. If no such
attribute is present in the request element, then none will be present in the
response element.
🟦 <Moneys>
→<PMI_Fee>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If PMI has been requested on the loan, and if a number of up front payments have been specified, then this element will hold the total PMI fee for all upfront payments.
Attributes: None
🟥 <Accrual>
Element Type | Data Type |
---|---|
Parent | - |
This element groups together interest accrual information, such as the accrual method used, days to the first payment, and the loan’s maturity date.
<Accrual>
<Method>Actual/365 US Rule</Method>
<Days1Pmt DayCount="Actual">74</Days1Pmt>
<Maturity>2015-07-01</Maturity>
</Accrual>
Attributes: None
🟥 <Accrual>
→<Method>
Element Type | Data Type |
---|---|
Data | Text |
The <Method>
element contains a textual description of the interest accrual
method used to compute the loan (e.g. "Unit Period 365 Simple").
Attributes: None
🟥 <Accrual>
→<Days1Pmt>
Element Type | Data Type |
---|---|
Data | Integer |
This element contains the number of days to the first payment, computed by one of two methods as specified in this element’s sole attribute.
Attributes:
🔸DayCount
🔸 DayCount
Data Type | Values |
---|---|
Enum | Actual , True360 |
Actual
- The actual number of days between these two dates are used.31
would be the day count for the 2024-01-01 to 2024-02-01.True360
- All months have 30 days.30
would be the day count for 2024-01-01 to 2024-02-01.
🟥 <Accrual>
→<Maturity>
(YYYY-MM-DD)
Element Type | Data Type |
---|---|
Data | Date |
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. Hence, a maturity date of February 15, 2020 would be specified as
<Maturity>2020-02-15</Maturity>
.
Attributes: None
🟦 <PMI>
Element Type | Data Type |
---|---|
Empty | - |
The PMI element 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
<Payment>
element, the <PmtStream>
element(s), the
<TotPmts>
element, nor the Pmt
attribute of the
<AmLine>
element.
<PMI Rate="1.00" LTV="100.00" PremiumPerYear="964.08" PremiumPerPeriod="80.34"/>
The element itself contains no data, as all associated PMI data is found in the following attributes:
Attributes:
🔹IndexToRemove
,🔹IndexToWarn
,🔸LTV
,🔸PremiumPerPeriod
,🔸PremiumPerYear
,🔸Rate
🔹 IndexToRemove
Data Type | Default |
---|---|
Integer | 0 |
This attribute only appears if the PercentToRemove PMI input attribute 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.
In the sample above, after four payments are made, the ending principal balance to home value ratio drops below 70%, and hence the calculation engine returns IndexToRemove="4". Note that no PMI is included in the amortization schedule for payment numbers four or greater.
🔹 IndexToWarn
Data Type | Default |
---|---|
Integer | 0 |
This attribute only appears if the PercentToWarn PMI input attribute is specified, and indicates that the payment index on which the remaining principal balance to home value ratio drops below the specified percentage. In the sample above, after three payments are made, the ending principal balance to home value ratio drops below 80%, and hence the calculation engine returns IndexToWarn="3".
🔸 LTV
Data Type |
---|
Decimal |
The loan to value ratio of the computed loan, expressed as a percentage.
🔸 PremiumPerPeriod
Data Type |
---|
Currency |
The periodic PMI premium amount.
🔸 PremiumPerYear
Data Type |
---|
Currency |
The annual PMI premium amount
🔸 Rate
Data Type |
---|
Decimal |
The percentage rate used in the PMI calculation.
🟥 <PmtStream>[]
Element Type | Data Type |
---|---|
Empty | - |
The <PmtStream>
element(s) describe the scheduled stream of payments for the
computed loan in the order paid. Instead of disclosing each and every payment
individually (which can be done with the <AmTable>
element), the
payment streams group together consecutive equal payments to produce a
compressed output view.
The following code translates to "Twelve consecutive payments of $879.31 computed at 10.000% begin on January 22nd, 2024".
<PmtStream Term="12" Pmt="879.31" Rate="10.000" Begin="2024-01-22"/>
Each element describes a single stream of equal payments, using the following attributes to define the important properties of each resulting payment stream:
🔸 Begin
Data Type |
---|
Date |
This attribute contains 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. In the example above, the first payment stream
is scheduled to begin on September 18, 2005. Hence, the Begin attribute for the
first payment stream element would be specified as Begin="2005-09-18"
.
🔸 Pmt
Data Type |
---|
Currency |
The Pmt
attribute contains the computed payment amount for this payment stream.
For the sample payment stream above, the payment amount is 879.31.
🔸 Rate
Data Type |
---|
Decimal |
Contains the interest rate used for the duration of this payment stream. Usually, the interest rate will remain fixed for the duration of the loan unless you are computing an adjustable rate loan or you are computing a LaserPro construction loan with permanent loan attached.
🔸 Term
Data Type |
---|
Integer |
The Term
attribute holds the number of contiguous payments that make up the
given payment stream. In the example payment stream above, the term for the
stream is 12.
🟦 <ProtectionInfo>[]
Element Type | Data Type |
---|---|
Parent | - |
These elements (there may be more than one if more than one type of protection was requested) contain information related to the various protection products requested on the given loan. Each element group provides complete results for each requested product (decreasing life, level life, disability/debt cancellation, involuntary unemployment, or personal property).
🔸 Formula
Data Type | Values |
---|---|
Enum | see Protection Formulas |
The Formula
attribute contains an abbreviated description of the formula used
to compute the desired protection product. The formula codes are described
here.
🔸 Product
Data Type | Values |
---|---|
Enum | Life , Level , Disability , Unemployment , Property |
This attribute informs the calling application to which type of protection product this element refers: decreasing life, level life, disability/debt cancellation, involuntary unemployment or personal property.
🔹 RateType
Data Type | Values |
---|---|
Enum | Fixed , Variable |
Fixed
- Protection rate stays constant during the calculations.Variable
- Protection rate changed from Joint to Single as the loan evolves.
🟥 <ProtectionInfo>
→<CalcResult>
Element Type | Data Type |
---|---|
Data | Text |
This element 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 child elements
of <ProtectionInfo>
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 child elements of
<ProtectionInfo>
, as the product was not computed.
<CalcResult>Valid Calculation</CalcResult>
Attributes: None
🟥 <ProtectionInfo>
→<Cost>
Element Type | Data Type |
---|---|
Empty | - |
Attributes of this empty element 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.
The only time there will be two <Cost>
elements to parse is when the account
has been set up to use Plateau’s Uniguard product, and the user has requested
joint coverage. If this is the case, then two <Cost>
elements are provided to
disclose two premiums instead of a single aggregate joint premium.
<Cost Premium="827.26" PerPmt="19.28" PerDay="0.63" Factor="1.0154"/>
🔸 Factor
Data Type |
---|
Decimal |
The rate factor used to compute the premium for the requested protection product.
🔸 PerDay
Data Type |
---|
Currency |
The daily cost of coverage, expressed in dollars.
🔸 PerPmt
Data Type |
---|
Currency |
The cost of coverage expressed as dollars per payment.
🔸 Premium
Data Type |
---|
Currency |
The total cost for this protection over the term of the loan.
🟥 <ProtectionInfo>
→<Coverage>
Element Type | Data Type |
---|---|
Empty | - |
The aggregate coverage amount and note are provided in the following attributes of this empty element:
<Coverage Amount="75000.00" Note="Partial Coverage of $75,000"/>
🔸 Amount
Data Type |
---|
Currency |
This attribute contains the aggregate coverage amount for this protection product.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🟥 <ProtectionInfo>
→<Benefit>
Element Type | Data Type |
---|---|
Empty | - |
This empty element will only show up for the disability and involuntary unemployment products.
<Benefit Amount="1000.00" Note="Partial Benefit of $1,000"/>
🔸 Amount
Data Type |
---|
Currency |
Attribute which contains the monthly benefit amount for this protection product.
🔸 Note
Data Type |
---|
Text |
This Note
will describe 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.
🔹 Periodic
Data Type | Default |
---|---|
Currency | n/a |
If the account has been configured to disclose periodic benefits (as opposed to
monthly benefit amounts, which are returned in the Amount
attribute described above), and if the specified payment frequency is other than
monthly, then this attribute will be present and will hold the periodic benefit
amount.
🟦 <ProtectionInfo>
→<CovTerm>
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the term of coverage for the requested product. If the request has specified the coverage term, then this element will be populated with that term.
<CovTerm InMonths="75" InPmts="75" Maturity="2018-09-22" Note="Truncated: Keep Benefit"/>
🔹 InDays
Data Type | Default |
---|---|
Integer | n/a |
Attribute which expresses the term of coverage in days. This attribute will only be present for the level life product, and even then only if needed (for example, when covering single payment notes).
🔸 InMonths
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of months.
🔸 InPmts
Data Type |
---|
Integer |
Contains the number of payments covered.
🔸 Maturity
(YYYY-MM-DD)
Data Type |
---|
Date |
This attribute contains the maturity date for the requested coverage. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🟦 <ProtectionInfo>
→<Borrower>[]
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the term of
coverage of a specified borrower, for the requested product. Note that this
element will only be present if the input XML request has specified
ShowBorrowerInfo
= "true"
, and a valid
birthdate was provided. The following attributes are defined for this purpose:
Attributes:
🔸AgeAtIssue
,🔸AgeAtMaturity
,🔸Birthday
,🔸Maturity
,🔸Months
,🔸Note
,🔸Pmts
🔸 AgeAtIssue
Data Type |
---|
Special - see below |
If coverage is written on this borrower, then the value of this attribute 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.
🔸 AgeAtMaturity
Data Type |
---|
Special - see below |
If coverage is written on this borrower, then the value of this attribute 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.
🔸 Birthday
Data Type |
---|
Date |
This attribute contains the birthday associated with the borrower, as specified in the request. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🔸 Maturity
Data Type |
---|
Date |
The value of this attribute contains the coverage maturity date for this particular borrower.
🔸 Months
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of months.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🔸 Pmts
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of payments.
🟦 <ProtectionInfo>
→<Caps>
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the maximum
terms, amounts, and ages associated with the requested product. This element
will only be present if the ShowCaps
attribute
of the <Protection>
element is set to true
.
<Caps Cov="75000" Ben="1000" Term="84" InceptAge="65" AttainAge="66"/>
Attributes:
🔸AttainAge
,🔸Ben
,🔸Cov
,🔸InceptAge
,🔸Term
🔸 AttainAge
Data Type |
---|
Integer |
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.
🔸 Ben
Data Type |
---|
Currency |
Contains the maximum monthly benefit amount, expressed in dollars. If no cap is present or applicable, then a value of zero is returned.
🔸 Cov
Data Type |
---|
Currency |
Contains the maximum aggregate coverage amount, expressed in dollars. If no cap is present or applicable, then a value of zero is returned.
🔸 InceptAge
Data Type |
---|
Integer |
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.
🔸 Term
Data Type |
---|
Integer |
Contains the maximum coverage term, expressed in months. If no cap is present or applicable, then a value of zero is returned.
🟦 <AmTable>
Element Type | Data Type |
---|---|
Parent | - |
This element (if present) contains child elements which describe the loan's
amortization information. This element (and all of its child elements) will only
be present if the HideAmort
property of the
root element of the input query is set to false
.
<AmTable>
Attributes will only occur as feedback data for Canadian APR's.
🔹 AvgBal
Data Type | Default |
---|---|
Currency | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute is the average balance of the loan used in the Canadian APR calculation.
🔹 Months
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🔹 OddDays
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🔹 Weeks
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🟦 <AmTable>
→<GrandTotals>[]
Element Type | Data Type |
---|---|
Empty | - |
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 the following attributes:
<GrandTotals PmtTot="10551.72" IntTot="551.68" PrinTot="10000.04"/>
Attributes:
🔹AHTot
,🔹CLTot
,🔸IntTot
,🔹IUTot
,🔹PMITot
,🔸PmtTot
,🔸PrinTot
,🔹SCTot
🔹 AHTot
Data Type | Default |
---|---|
Currency | 0 |
The AHTot
attribute 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 over the duration
of the loan.
🔹 CLTot
Data Type | Default |
---|---|
Currency | 0 |
The CLTot
attribute 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.
🔸 IntTot
Data Type |
---|
Currency |
Contains the sum of all interest attributes in the AmLine
elements.
This amount will be different from the <Interest>
element if
there is a nonzero EndBal
for the final line of
amortization. The two will differ by this non-zero EndBal
.
🔹 IUTot
Data Type | Default |
---|---|
Currency | 0 |
The IUTot
attribute 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 over the
duration of the loan.
🔹 PMITot
Data Type | Default |
---|---|
Currency | 0 |
The PMITot
attribute 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.
🔸 PmtTot
Data Type |
---|
Currency |
Contains the total of payments scheduled for the computed loan.
🔸 PrinTot
Data Type |
---|
Currency |
Like IntTot
above, this attribute contains the total
amount paid to principal during the loan term, assuming all payments are made as
scheduled.
🔹 SCTot
Data Type | Default |
---|---|
Currency | 0 |
The SCTot
attribute will only appear on loans with service charges. It
contains the total service charge amount paid over the duration of the loan.
🟦 <AmTable>
→<SubTotals>[]
Element Type | Data Type |
---|---|
Empty | - |
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 <SubTotals>
element present. The element itself is empty, as all the
interesting categories are found in the following attributes:
<SubTotals Year="2024" Start="1" Events="12" PmtSub="10551.72" IntSub="551.68" PrinSub="10000.04"/>
Attributes:
🔹AHSub
,🔹CLSub
,🔸Events
,🔸IntSub
,🔹IUSub
,🔹PMISub
,🔸PmtSub
,🔸PrinSub
,🔹SCSub
,🔸Start
,🔸Year
🔹 AHSub
Data Type | Default |
---|---|
Currency | 0 |
The AHSub
attribute 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
.
🔹 CLSub
Data Type | Default |
---|---|
Currency | 0 |
The CLSub
attribute 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
.
🔸 Events
Data Type |
---|
Integer |
This attribute defines the number of amortization events (contained in
<AmLine>
elements which are defined below) which belong to this
calendar Year
.
🔸 IntSub
Data Type |
---|
Currency |
Holds the total amount paid to interest over the Year
in
question, assuming all payments are made as scheduled.
🔹 IUSub
Data Type | Default |
---|---|
Currency | 0 |
The IUSub
attribute 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
.
🔹 PMISub
Data Type | Default |
---|---|
Currency | 0 |
The PMISub
attribute 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 upfront periodic PMI premiums) for PMI during
the Year
.
🔸 PmtSub
Data Type |
---|
Currency |
Contains the total of payments scheduled for the Year
in
question.
🔸 PrinSub
Data Type |
---|
Currency |
Like IntSub
above, this attribute contains the total
amount paid to principal during the Year
in question,
assuming all payments are made as scheduled.
🔹 SCSub
Data Type | Default |
---|---|
Currency | 0 |
The SCSub
attribute will only appear on loans with service charges. It
contains the total of service charges paid during the Year
.
🔸 Start
Data Type |
---|
Integer |
This attribute defines the first amortization event which falls in the specified
calendar Year
. To find the <AmLine>
element
which corresponds to this value, match the Idx attribute of the
<AmLine>
element with the integer value reported by this attribute.
🔸 Year
Data Type |
---|
Integer |
The given calendar year for which the subtotal data is applicable.
🟥 <AmTable>
→<AmLine>[]
Element Type | Data Type |
---|---|
Empty | - |
There is one <AmLine>
element 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.) However, some loan protection methods (TruStage's monthly
renewable product, to be exact) have amortization events which correspond to
loan protection premiums being added to the loan balance on specific dates.
<AmLine Idx="1" Date="2024-01-01" BegBal="10000.00" Pmt="879.31" Int="84.93" Prin="794.38" EndBal="9205.62"/>
As with the <GrandTotals>
and <SubTotals>
elements, this element is empty and contains all of the useful information for a
given point in the amortization of a loan in the following attributes.
Attributes:
🔹AH
,🔸BegBal
,🔹CL
,🔸Date
,🔸EndBal
,🔸Idx
,🔸Int
,🔹IU
,🔹PMI
,🔸Pmt
,🔸Prin
,🔹SC
,🔹UnpaidInt
🔹 AH
Data Type | Default |
---|---|
Currency | 0 |
The AH
attribute 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.
🔸 BegBal
Data Type |
---|
Currency |
The principal balance before the amortization event occurs.
🔹 CL
Data Type | Default |
---|---|
Currency | 0 |
The CL
attribute 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.
🔸 Date
Data Type |
---|
Currency |
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.
🔸 EndBal
Data Type |
---|
Currency |
The principal balance amount, after the amortization event has taken place.
🔸 Idx
Data Type |
---|
Integer |
The index of the amortization event, which is either the payment number, or zero. A value of zero designates a protection premium that was charged on a date other than a payment date. (Occurs with protection category "TrueMOB").
🔸 Int
Data Type |
---|
Currency |
The amount of the payment which goes to pay interest.
🔹 IU
Data Type | Default |
---|---|
Currency | 0 |
The IU
attribute 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.
🔹 PMI
Data Type | Default |
---|---|
Currency | 0 |
This attribute contains the PMI premium for this payment.
🔸 Pmt
Data Type |
---|
Currency |
The amount of the payment (or zero if the event is a "TrueMOB" protection premium).
🔸 Prin
The amount of the payment which goes to reduce the principal balance.
🔹 SC
Data Type | Default |
---|---|
Currency | 0 |
This attribute contains the total service charge for this payment, and will only be present if one or more service charges were requested with the loan.
🔹 UnpaidInt
Data Type | Default |
---|---|
Currency or Decimal | 0 |
This attribute 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 places. If rounded, then the unpaid interest is displayed to two (2) decimal places.
🟦 <Metavante>
Element Type | Data Type |
---|---|
Empty | - |
This element will only be present if the
Metavante
attribute of the root element is
set to true
. The element itself is empty, as all of the useful information is
in the following attributes:
Attributes:
🔸FormsTerm
,🔸HostTerm
🔸 FormsTerm
Data Type |
---|
Integer |
The number of months in the loan, as computed using the Metavante FORMS method.
🔸 HostTerm
Data Type |
---|
Integer |
The number of months in the loan, as computed using the Metavante HOST method.
Single Payment Notes
Some loans (such as bridge loans or "Term Loans") will have a single payment due at maturity, and require special consideration. This module computes these types of loans, which the industry calls single payment notes.
Sample Request
The following sample illustrates the core structure of a single payment note request. It is a request for a loan with a single advance of $10,000, accruing interest at 5.0%, with a single payment due in 12 months.
<inSINGLE_PAYMENT>
<LoanDate>2024-11-04</LoanDate>
<PmtDate>2025-12-04</PmtDate>
<IntRate>5.0</IntRate>
<Proceeds>10000.00</Proceeds>
</inSINGLE_PAYMENT>
Sample Response
The following response is returned from the SCEX when provided with the sample request above.
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE outSINGLE_PAYMENT SYSTEM "outSINGLE_PAYMENT.dtd">
<outSINGLE_PAYMENT>
<Results>
<Description>Successful Calculation</Description>
<Payment>10541.10</Payment>
</Results>
<FedBox>
<AmtFin>10000.00</AmtFin>
<FinChg>541.10</FinChg>
<TotPmts>10541.10</TotPmts>
<RegZAPR Type="Actuarial">4.976</RegZAPR>
</FedBox>
<Moneys>
<Principal>10000.00</Principal>
<Interest>541.10</Interest>
<Protection Category="None" PerPmt="0.00" PerDay="0.00">0.00</Protection>
</Moneys>
<Accrual>
<Method>Actual/365 Simple</Method>
<Days1Pmt DayCount="Actual">395</Days1Pmt>
<Maturity>2025-12-04</Maturity>
</Accrual>
<PmtStream Term="1" Pmt="10541.10" Rate="5.000" Begin="2025-12-04"/>
<AmTable>
<GrandTotals PmtTot="10541.10" IntTot="541.10" PrinTot="10000.00"/>
<SubTotals Year="2025" Start="1" Events="1" PmtSub="10541.10" IntSub="541.10" PrinSub="10000.00"/>
<AmLine Idx="1" Date="2025-12-04" BegBal="10000.00" Pmt="10541.10" Int="541.10" Prin="10000.00" EndBal="0.00"/>
</AmTable>
</outSINGLE_PAYMENT>
Single Payment Note - Request
Please see the Legend to understand the conventions used to document each element and attribute. Note that for requests, the XML elements are documented in alphabetical order by parent element.
🟥 <inSINGLE_PAYMENT>
Element Type | Data Type |
---|---|
Parent | - |
This element is the root element for the request. It is a parent element that has no data, but does have several attributes that offer a wide variety of adjustments.
Attributes:
🔹Account
,🔹AccrualCode
,🔹AprType
,🔹Country
,🔹DataDirPath
,🔹ForceReload
,🔹HideAmort
,🔹MAPR_Max
,🔹Metavante
,🔹PmtDollarRound
,🔹PmtRound
,🔹UseMAPR
,🔹YieldPPY
🔹 Account
Data Type | Values | Default |
---|---|---|
Integer | [1...9999] | 1 |
This attribute specifies which account should be used to compute the requested
loan. Each account is numbered from 1 to 9,999, and each account corresponds to
a set of setup files which define numerous settings which may affect the loan
calculation, such as the accrual method, insurance methods and rates, etc. If
this attribute is not specified, a default value of 1
will be used.
🔹 AccrualCode
Data Type | Values | Default |
---|---|---|
Enum | see below | see below |
This property allows the calling application to specify an accrual method to use other than the accrual method dictated by the setup file for the given account. If no accrual code attribute is specified, then the method in the setup file will be used.
Accrual Code | Description |
---|---|
0 | Use method specified in setup file |
210, 310 | Actual / 360 |
220, 320 | Actual / 365 |
230, 330 | Actual / Actual |
231, 331 | Midnight 366 |
🔹 AprType
Data Type | Values | Default |
---|---|---|
Enum | See below | default |
This attribute allows the calling application to specify an APR calculation method which will override the default value found in the setup file for the given account. If this attribute is set to a valid value, then the specified method will be used to compute the APR for this loan calculation.
If the Country
attribute has been set by the calling
application and this attribute is not set, then the APR method used will be
determined by the specified country. For the United States of America, the
default APR method is actuarial
. For a country in the European Union, the
default value is eu
(European Union APR). For Canada, the default APR method
is ca
(Canadian APR).
default
- Use setup file value.actuarial
- Appendix J Actuarial APRusrule
- US Rule APReu
- European Union APRca
- Canadian APRxirr
- Extended Internal Rate of Return (same as excel function)xirr360
- XIRR using a 360 divisor rather than a 365 divisorirr
- Simple Internal Rate of Return (same as excel function)
If this attribute is not specified and the Country
attribute
is not specified, then the value of default
will be used which informs the SCE
to use the APR method defined in the setup file for the specified
Account
.
🔹 Country
Data Type | Values | Default |
---|---|---|
Alpha-2 or Numeric-3 code | See table | US |
This attribute allows the calling application to specify a two (2) character or
three (3) digit country code. If none is provided, then a default value of US
will be used. Please see the Country Codes Table for the
list of supported countries and their associated codes.
Currently, the country code is used to determine the default value of the
AprType
attribute (see above).
🔹 DataDirPath
Data Type | Values | Default |
---|---|---|
Text | See below | See below |
If this attribute is set, the SCE will look for a data folder containing the
setup files in the path specified. Thus, if the DataDirPath
is set to
C:\SCEX\
, the SCE will look for the setup files in C:\SCEX\data
.
If the calling application wishes to specify the data directory path in its
entirety (e.g. the calling app does not want the SCE to append \data
to the
provided path), then simply terminate the specified DataDirPath
with an
asterisk (*
). Thus, if the DataDirPath
is set to C:\SCEX\bank1\*
, the SCE
will look for the setup files in C:\SCEX\bank1\
.
If this attribute is not set, the SCE will attempt to locate the data folder in
the default data directory path location, which can be retrieved using the
<inVERSION>
module query, and set via the SCE API.
This attribute is useful if you wish to use only a single installation of the
SCE, but have many different setup file groupings. By specifying a different
DataDirPath
for each grouping, you can easily separate the groups from one
another instead of grouping them all together in a single directory.
🔹 ForceReload
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
The SCE caches setup files previously used. This improves performance for
subsequent loan requests using one of the cached accounts. However, if you need
the SCE to reload the setup files for a given request (e.g. you just copied
over new setup files), then you can set this attribute to true
and the setup
files will be forced to reload. If left at the default value of false
, then
setup files are only reloaded when the SCE notices that one of the setup files
has been modified.
🔹 HideAmort
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
This attribute determines whether or not an amortization schedule will be
included in the response, given a successful loan calculation. If you do not
require the use of the amortization schedule, then setting this attribute to
true
will suppress its output. The default value of false
will return the
amortization schedule as part of the response.
🔹 MAPR_Max
Data Type | Values | Default |
---|---|---|
Decimal | [-99.999...600] | 36.0 |
If you are computing the Military APR (see UseMAPR
below) and
wish to override the default maximum APR value of 36
%, then specify the
desired maximum as the value of this attribute.
🔹 Metavante
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to a value of true
, then the
<Metavante>
element will be included in the
response. Also, some loans will also disclose
<MinInterestPmt>
and
<MaxInterestPmt>
elements.
🔹 PmtDollarRound
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Payments are normally rounded to the penny, according to the method specified by
the PmtRound attribute (see below). If the payment should be rounded to the
dollar instead of the penny, then set the value of this attribute to true
.
Note that for some loans (such as those with longer terms or relatively small proceeds), rounding the payment up or to the nearest dollar may require a shortened loan term to prevent one or more negative payments at the end of the loan.
🔹 PmtRound
Data Type | Values | Default |
---|---|---|
Enum | default , nearest , up , down , best | default |
This attribute allows the calling application to specify a payment rounding
option which will override the value found in the setup file. If not specified,
then the value of default
will be used.
default
- Use method specified in setup file.nearest
- Round computed payment to the nearest penny, using 5/4 rounding. e.g. 300.242 = 300.24, 300.245 = 300.25.up
- Round computed payment up to the next penny. e.g. 300.241 = 300.25.down
- Round computed payment down to the previous penny. e.g. 300.249 = 300.24.best
- Once the unrounded payment has been computed, amortize the loan using the rounded down and rounded up payment, and then return the payment which amortizes the loan’s ending balance closest to zero.
🔹 UseMAPR
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to a value of true
, the SCE will compute the Military
APR in addition to the Regulation Z APR. The <MAPR>
element will be included in the XML loan response.
🔹 YieldPPY
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 , 4 , 6 , 12 | 0 |
Canadian mortgages may compute periodic interest using a fractional power of a
periodic yield. If set to a value other than 0
, this value determines the
period. Please contact us for further information if you support mortgage
calculations in Canada. Note that when using this attribute with a value other
than zero, the calling application must include an odd days prepaid fee in the
request.
🟦 <Construction>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | Not a construction loan |
Include the <Construction>
element to configure a construction period on a
loan. The use of this element requires setup files configured to support
construction loans, or specification of the Method
to be used.
If the specified account is not set up to support construction loans, this
element will be ignored.
Attributes:
🔹Accrual
,🔹Active
,🔹HalfCommitment
,🔹Method
,🔹PermanentAttached
,🔹PPY
,🔸Rate
,🔸Term
,🔹UnitOddDayDivisor
🔹 Accrual
Data Type | Values | Default |
---|---|---|
Enum | default , unitperiod , actual360 , actual365 | default |
If the loan request is a construction loan with no permanent loan attached, this attribute allows the calling application to specify the accrual method used.
default
- The setup files determine the default value for interest accrual.unitperiod
- Compute periodic interest using a 1/PPY factor.actual360
- Compute periodic interest using the actual # of days between payments/360.actual365
- Compute periodic interest using the actual # of days between payments/365.
🔹 Active
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this loan request includes a construction loan, then set this attribute to
true
. If no construction loan is desired, either do not specify the
<Construction>
element or set this attribute to false
.
🔹 HalfCommitment
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
During the term of the construction loan, the estimated interest for disclosure
purposes may be either computed on the full or half commitment amounts. By
setting this attribute to true
, interest will be estimated using half of the
initial commitment amount (i.e. the principal balance). The default value of
false
will cause interest to be estimated using the entire initial commitment
amount.
🔹 Method
Data Type | Values | Default |
---|---|---|
Enum | default , simple , laserpro , intonly | default |
There are three methods used to define how construction loans are computed and
disclosed. A method of default
tells the SCE to use the method
configured in the setup file. The meaning of the three methods are as follows:
simple
- Compute an aggregate construction interest amount for the entire construction period for both pure construction loans and construction to permanent loans.laserpro
- Compute an aggregate construction interest amount for the entire construction period for pure construction loans. For construction to permanent loans, compute and disclose discrete interest-only payments during the construction period.intonly
- Compute and disclose discrete interest-only payments during the construction period for both pure construction loans and construction to permanent loans.
🔹 PermanentAttached
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Construction loans may be computed on their own, or they may be attached to a
permanent loan which begins at the conclusion of the construction loan. If a
permanent loan is attached to the construction loan, then set this attribute’s
value to true
and set up the permanent loan information in the request
elements.
The default value of false
indicates that this is solely a construction loan
with no permanent attached. In this case, you still need to set up the
<LoanDate>
, <PmtDate>
and <Proceeds>
elements.
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | 1 , 2 , 4 , 6 , 12 , 24 , 26 , 52 | 12 |
The PPY
attribute allows the calling application to specify the payment
frequency during the construction period. The default value of monthly will
result in a construction loan with 12 payments per year. If you require a
payment frequency during the construction period other than monthly, then
specify it using this attribute. Note that if a permanent loan is attached to
the construction loan, that the permanent loan's payment frequency may differ
from the construction period’s payment frequency.
🔸 Rate
Data Type | Values | Default |
---|---|---|
Decimal | [-99.999...600] | 0 |
This attribute determines the rate applied to the appropriate commitment amount during the term of the construction loan.
🔸 Term
Data Type | Values | Default |
---|---|---|
Integer | [1...60] * | 0 |
The term of the construction loan (in payments) is specified using this attribute. Please note that the term may not exceed five years.
* 60 is the maximum number of months in the Construction period. In general, the maximum entry is 5 *
PPY
, where the PPY is the payments per year attribute of the<Construction>
element.
🔹 UnitOddDayDivisor
(enum, [], Ignore)
Data Type | Values | Default |
---|---|---|
Enum | ignore , 360 , 365 , vardpy | ignore |
When specifying an Accrual
method of type unitperiod
, this
attribute allows the calling application to specify how odd days between the
loan and first payment dates are taken into account.
ignore
means that all odd days are ignored, and the calculation will assume
one full unit period. 360
and 365
will compute the actual number of days
between the loan date and first payment date, and then use either a 360 or 365
divisor to determine the amount of interest accrued during that period. vardpy
accrues interest in the same manner as accrual code 250/350.
🟦 <Fee>[]
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No fee |
Unlike most other elements, any number of fees may be defined, or none at all. All of the information used to compute a fee is contained in its attributes.
Attributes:
🔹AddToFinChg
,🔹AddToPrin
,🔹Adjust
,🔹CalcType
,🔸Entry
,🔹IsLoanCost
,🔹MAPR
,🔹MaxValue
,🔹MinValue
,🔹Name
🔹 AddToFinChg
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
If this fee should be included in the Reg. Z Finance Charge (and hence, affect
the APR), then set this attribute to true
. The default value of false
indicates that the fee does not affect the Finance Charge nor APR.
🔹 AddToPrin
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this fee should be added to the principal balance (e.g. the fee is financed
along with the amount requested), then set this attribute to true
. If set to
false
, then the fee is paid up front out of the borrower’s pocket.
🔹 Adjust
Data Type | Values | Default |
---|---|---|
Currency | any | 0 |
The optional attribute Adjust
allows the calling application to increase or
decrease the base amount on which a fee is calculated. If a negative value is
specified and this adjustment would produce a negative base amount, then a value
of zero is returned for the given fee. This attribute has no effect on fees with
a CalcType
of Dollar
.
As an example, in Tennessee you may need to define a financed, non-APR affecting fee to be computed by decreasing the amount financed by $2,000, and then multiplying this reduced amount by 0.115. The way to accomplish this in the SCEX is as follows:
<Fee CalcType="OnAmtFin" Entry="0.115" Adjust="-2000" AddToPrin="true" AddToFinChg="false" />
🔹 CalcType
Data Type | Values | Default |
---|---|---|
Enum | Dollar , OnProceeds , OnAmtFin , OnPrin , DocStamp | Dollar |
The value of this attribute determines how the fee is to be computed, as described below:
Dollar
- TheEntry
attribute is understood as a flat dollar amount.OnProceeds
- TheEntry
attribute is understood as a percentage value, to be applied to the loan’s proceeds. AnEntry
of1.0
would represent a fee of 1.0% of proceeds.OnAmtFin
- TheEntry
attribute is understood as a percentage value, to be applied to the Amount Financed. AnEntry
of0.5
would represent a fee of 0.5% of Amount Financed.OnPrin
- TheEntry
attribute is understood as a percentage value, to be applied to the loan’s principal balance. AnEntry
of0.125
would represent a fee of 0.125% of principal balance.DocStamp
- TheEntry
attribute is understood as a Florida doc stamp rate, to be applied to the loan’s principal balance. AnEntry
of0.35
would represent a fee of 0.35% of the principal balance. You must set the AddToFinChg attribute to false, otherwise the doc stamp fee will return a value of zero.
🔸 Entry
Data Type | Values |
---|---|
Decimal or Currency | >= 0 |
The Entry
is the basic starting point fee value that determines the dollar
value of the resulting fee computation. How this attribute is interpreted
depends upon the CalcType
attribute, described above. This
value is either a dollar value or a percentage (aka "points").
🔹 IsLoanCost
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
When requesting the new TILA RESPA outputs (via the
<TILARESPA2015>
element), the SCE needs to know which fees need
to be considered borrower paid loan costs, as defined in the rule. Please note
that if the fee is paid by a lender or other third party, then the fee does not
affect the loan calculation and should not be sent to the SCE. If it is sent,
then the value of this attribute should be set to false
.
🔹 MAPR
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If you wish to compute the Military APR, then certain fees may not be considered
Regulation Z APR affecting fees, but are considered Military APR affecting fees.
In this case, you will need to set the value of this attribute to true
.
Fees which are added to the finance charge (e.g.
AddToFinChg
="true"
) are always considered MAPR fees,
regardless of the stated value of this attribute.
Note that debt protection products are automatically included in the calculation of the Military APR, no matter what method is used for payment (e.g. single premium vs. monthly outstanding balance).
🔹 MaxValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If a maximum value for the fee is specified and is greater than zero, then if the computed fee exceeds this maximum value, then this maximum value will be used instead. If no maximum value is specified or is set to a value of zero, then no maximum will be enforced. Please note that this attribute is applied to all fee types documented.
🔹 MinValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If a minimum value for the fee is specified and is greater than zero, and if the
Entry
attribute holds a value greater than zero, then if the
computed fee is less than this minimum value, then this minimum value will be
used instead. If no minimum value is specified or is set to a value of zero,
then no minimum will be enforced. If a specified minimum value exceeds a
specified maximum value, then the minimum value will be ignored. Please note
that this attribute is applied to all fee types documented.
🔹 Name
Data Type | Values | Default |
---|---|---|
Text | any | n/a |
This attribute is for convenience purposes only, and does not affect the
calculation of the fee in any manner. If a Name
attribute is specified for the
<Fee>
element, then the corresponding <Fee>
element in the XML output will have a Name
attribute with the same value. This allows you to easily differentiate fees in
the response.
🟦 <Format>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | See attributes |
The <Format>
element is one of the first elements parsed from a request, as the
attributes of this empty element affect how date and numeric values are parsed
and validated.
Attributes:
🔹CurrencyDecimals
,🔹DateFormat
,🔹DateSeparator
,🔹DecimalSeparator
,🔹StrictDP
,🔹ThousandSeparator
🔹 CurrencyDecimals
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 | 2 |
When displaying and parsing Currency values, the value of this attribute
determines the maximum number of decimal places allowed after the
DecimalSeparator
.
🔹 DateFormat
Data Type | Values | Default |
---|---|---|
Enum | YMD , MDY , DMY | YMD |
When displaying and parsing Date values, this field determines the expected
format for all Date fields. The following DateFormat
options are allowed:
YMD
- All dates should be formatted as YYYY-MM-DD.MDY
- All dates should be formatted as MM-DD-YYYY.DMY
- All dates should be formatted as DD-MM-YYYY.
Note that the character which separates the individual month, day, and year
portions of the date is configurable via the
DateSeparator
attribute.
🔹 DateSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | - |
When displaying and parsing Date values, this attribute determines the character used to separate the individual month, day, and year portions of a date.
🔹 DecimalSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | . |
When displaying and parsing Currency or Decimal numeric values, this attribute determines the character used to separate the fractional part from the whole.
🔹 StrictDP
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 , | false |
If the value of this attribute is true
, then the SCE will strictly verify the
number of decimal places allowed for currency input values. Thus, if the calling
application sends in a request with a currency amount of 1000.005
, the SCE
will return an error code.
If the value of this attribute is false
, then currency values sent in with an
invalid number of decimal places will be rounded to the correct number of
decimal places by the SCE (using five/four rounding), and a warning message with
this information will be returned with the response.
🔹 ThousandSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | , |
When displaying numeric values, this attribute determines the character used to separate the thousands places from the hundreds. Note that when parsing numeric values, the value of this attribute is ignored.
🟥 <IntRate>
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | [-99.999...600] |
The element data will determine the annual interest rate used for the loan. (Split rate loans require use of the setup files.)
The interest rate should be expressed as an annual percentage. For example, a loan computed with an interest rate of 6.125% would be specified as:
<IntRate>6.125</IntRate>
Attributes: None
🟦 <IntStartDate>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= <LoanDate> and <= <PmtDate> | <LoanDate> |
This element contains the date on which interest begins to accrue on the loan’s
principal balance. If this element is not specified, then the interest start
date is defaulted to be the <LoanDate>
. Also note that the
interest start date must be equal to the loan date when computing a construction
loan. The interest start date (when specified) must be on or after the loan
date, as well as on or before the <PmtDate>
. All dates must be in
the form of YYYY-MM-DD, and be 10 characters long. Hence, an interest start date
April 27, 2024 would be specified as:
<IntStartDate>2024-04-27</IntStartDate>
Attributes: None
🟥 <LoanDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= 1900-01-01 |
This element determines when interest begins to accrue. If interest begins on a
later date, use the <IntStartDate>
element to define the date
on which interest begins to accrue.
This element contains the date on which the loan amount is disbursed and interest begins to accrue. All dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a loan date of March 4, 2024 would be specified as:
<LoanDate>2024-03-04</LoanDate>
Attributes: None
🟥 <PmtDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= <LoanDate> and >= <IntStartDate> |
This element contains the date on which the first and only payment of the loan is made, and must be on or after the loan date.
All dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a first payment date of April 4, 2024 would be specified as:
<PmtDate>2005-04-04</PmtDate>
Attributes: None
🟥 <Proceeds>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | >= 0 |
The proceeds specifies the amount the customer has frequested to borrow, ignoring every other financed quantity. Proceeds of up to one billion dollars are accepted.
The amount should be expressed as a number. For example, a request including
<Proceeds>10000.00</Proceeds>
indicates an amount requested of 10,000.
Attributes: None
🟦 <Protection>
Element Type | Data Type | Values | Default |
---|---|---|---|
Parent | - | - | No protection included |
The <Protection>
element is used to specify debt protection coverages such as
life, disability, involuntary unemployment, personal property and debt
cancellation. Each type of coverage is specified by its own sub-element, along
with the borrower birthdays. The following attributes apply to this element:
Attributes:
🔹FinanceProt
,🔹LineOfCredit
,🔹Mandatory
,🔹ShowBorrowerInfo
,🔹ShowCaps
🔹 FinanceProt
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
If the computed premiums for single premium debt protection products should be
financed along with the proceeds, then this attribute should be set to true
(which is the default value if not specified). A value of false
indicates that
the computed premiums will not be financed with the proceeds, and hence will be
paid out of pocket by the borrower. Note that this applies to single premium
insurance products only!
🔹 LineOfCredit
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this is an account using TruStage’s MOB insurance, and if this loan is a line
of credit where product term caps should be ignored, then set this attribute to
true
. Otherwise, leave this attribute unspecified or set it to false
.
🔹 Mandatory
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the value of this attribute is set to true
, then any computed payment
protection premium or fee will be considered a mandatory fee which will be
included as a part of the Regulation Z Finance Charge, and hence affect the
Regulation Z APR. In this case, the <Protection>
element in the response will contain a
Mandatory
="true"
attribute indicating this.
If the Mandatory attribute is set to false
, the loan will treat any premiums /
fees as normal.
🔹 ShowBorrowerInfo
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application would like to have data returned for each specified
borrower instead of a single <CovTerm>
element, then
set the value of this attribute to true
. Otherwise, leave this attribute
unspecified or set it to false
. See the <Borrower>
and <CovTerm>
elements defined in the response for
more information.
🔹 ShowCaps
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application would like to have cap information (e.g., maximum
terms, coverage amounts, ages, etc.) returned for each product offered, set the
value of this attribute to true
. Otherwise, leave this attribute unspecified
or set it to false
. See the <Caps>
element for more
information.
🟦 <Protection>
→<Birthday1>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= 1900-01-01 | No birthday specified |
This element contains the date of birth for the primary borrower. All dates must
be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a birthday of
April 9, 1972 would be specified as <Birthday1>1972-04-09</Birthday1>
. Note
that this element must be set if the Covers attribute of any of the four debt
coverage elements is set to borrower1
or both
.
Attributes: None
🟦 <Protection>
→<Birthday2>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= 1900-01-01 | No birthday specified |
This element contains the date of birth of the secondary borrower. All dates
must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a birthday
of May 21, 1969 would be specified as <Birthday2>1969-05-21</Birthday2>
.
Attributes: None
🟦 <Protection>
→<Disability>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No disability coverage |
The <Disability>
element determines what type of disability coverage is
requested for the loan. It also serves double duty as the debt cancellation
coverage element, for accounts set up to compute debt cancellation using the
disability tables. The element itself is empty, with all information needed for
disability coverage request being specified in the following attributes:
🔹 Benefit
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in the appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <Disability>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will assure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user specified coverage terms, then this attribute will be ignored.
🔹 Table
Data Type | Values | Default |
---|---|---|
Integer | [0...19] | 0 |
If the specified account has been set up with multiple disability or debt
cancellation plans, then this attribute determines which plan number will be
used. If no table number is specified, the first table (table zero) will be
used. To find out the number of available plans, use the
<AhSetCount>
element in the
<inINPUT_TOOL>
response.
🟦 <Protection>
→<Life>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No life coverage |
The <Life>
element determines what type of life coverage is requested for the
loan. The element itself is empty, with all information needed for a life
coverage request being specified in the following attributes:
Attributes:
🔹Coverage
,🔹Covers
,🔹CovTerm
,🔹Dismemberment
,🔹Method
,🔹UseLevelRates
🔹 Coverage
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
If you wish to specify a coverage amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum coverage amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified coverage amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in the appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <life>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will assure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user specified coverage terms, then this attribute will be ignored.
🔹 Dismemberment
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the specified account has been set up to offer optional dismemberment coverage to be offered with life coverage (using an increased rate in the premium calculation), then this attribute determines whether or not this additional coverage will be provided.
🔹 Method
Data Type | Values | Default |
---|---|---|
Enum | default , net , gross | default |
If the specified account has been set up to offer single premium life coverage
by default, net or gross coverage, then this attribute can be used to specify
which type of coverage to compute with the loan. For all other accounts, the
default value of default
should be used (or simply do not specify the attribute
at all).
🔹 UseLevelRates
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the account specified has been set up to offer single premium credit life
using level rates instead of the normal decreasing rates, then set this
attribute’s value to true
. Otherwise, use the default value of false
.
🟦 <ServiceCharge>[]
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No service charge |
As with the <Fee>
element, any number of <ServiceCharge>
elements
may be added to a loan. Service charges are supported on single, equal, and
balloon payment loans only.
The <ServiceCharge>
element itself contains no data. Instead, all of the
information used to compute the service charge is contained in the following
attributes of the element:
🔸 Entry
(decimal, 0)
How this attribute is interpreted depends upon the Type
attribute, described below. It is the numeric amount defining either the lump
sum or periodically paid service charge.
🔹 Exact
(boolean, false)
The Exact
attribute is only considered when the service charge is of
Type
LumpSum
. When the calculated periodic amount is
rounded, it will most often times produce a total service charge amount that
differs from that entered.
If the Exact
attribute is set to true
, then the final periodic amount will be
adjusted so that the sum of all periodic amounts is exactly equal to the entered
amount (and will result in an odd final payment). A value of false
indicates
that the final periodic amount will not be adjusted.
🔹 Name
(text, "")
This attribute is for convenience purposes only, and does not affect the
calculation of the service charge in any manner. If a Name
attribute is
specified for the <ServiceCharge>
element, then the corresponding
<ServiceCharge>
element in the response will have a
Name
attribute with the same value. This allows
you to easily differentiate fees in the response.
🔹 Round
(enum, [nearest, up, down], nearest)
This attribute is only considered when the service charge is of
Type
LumpSum
. It determines how the calculated periodic
amount is rounded.
🔹 Type
(enum, [LumpSum, Periodic], LumpSum)
A service charge of Type
of LumpSum
allows the calling application to specify an
amount that will be spread out evenly over the loan’s payment stream. On the
other hand, a Periodic
service charge is the amount which will be added to each
payment.
🟦 <TILARESPA2015>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No TILA RESPA disclosures |
The presence or absence of this element determines whether or not the TILA RESPA data table is present in the output.
If this element is present in the loan request, then the SCEX will return data for the Integrated Mortgage Disclosures under the Real Estate Settlement Procedures Act (Regulation X) and the Truth In Lending Act (Regulation Z) rule, which is required as of August 1st, 2015. If this element is not present, then the TILA RESPA outputs will not be generated.
Attributes: None
🟦 <TotalDown>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
This optional element represents the total down payment that the borrower has applied to reduce the requested proceeds. It may consist of a cash down payment, net trade-in value, or rebate. You only need to specify a total down payment if the loan needs to disclose a total sale price. Typical examples of these loan types are auto and boat loans.
To generate a total down payment, please see the chapter detailing the SCEX’s Auto Prompts module.
Attributes: None
Single Payment Note - Response
Please see the Legend to understand the conventions used to document each element and attribute. Note that for responses, the XML elements are documented in the order that they appear in the response.
🟥 <outSINGLE_PAYMENT>
Element Type | Data Type |
---|---|
Parent | - |
This element is the root element of the response, and contains all of the relevant outputs.
Attributes:
🔹CountryName
🔹 CountryName
Data Type | Values | Default |
---|---|---|
Text | See table | United States of America |
If a valid Country
code was specified as an
attribute of the input module element, the full name of the country associated
with the specified Country code will be reported in this attribute.
🟥 <Results>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which describe the success or failure of the calculation, any warning or error messages, and the most important numerical results for the query.
<Results>
<Description>Successful Calculation</Description>
<Payment>10541.10</Payment>
</Results>
Attributes: None
🟥 <Results>
→<Description>
Element Type | Data Type |
---|---|
Data | Text |
If the calculation was completed successfully, then this element will contain
the value Successful Calculation
. Otherwise, this element will contain a
description of the problem encountered during the attempted computation.
Attributes: None
🟦 <Results>
→<XMLDetail>[]
Element Type | Data Type | Default |
---|---|---|
Data | Text | NULL |
The <XMLDetail>
elements are messages passed back to the calling application
which detail the status of the XML request. If the SCEX issues any warnings
regarding unrecognized elements or attributes, then each warning message will be
displayed in an <XMLDetail>
element.
Attributes: None
🟥 <Results>
→<Payment>
Element Type | Data Type |
---|---|
Data | Currency |
The computed single payment amount which amortizes the loan. Note that unlike
the equal payment loan output, there is no optional
<Final>
element since we only have a single payment in
the payment stream.
Attributes: None
🟥 <FedBox>
Element Type | Data Type |
---|---|
Parent | - |
Some of the most important compliance related outputs are organized into the
<FedBox>
disclosures.
<FedBox>
<AmtFin>10000.00</AmtFin>
<FinChg>541.10</FinChg>
<TotPmts>10541.10</TotPmts>
<RegZAPR Type="Actuarial">4.976</RegZAPR>
</FedBox>
Attributes: None
🟥 <FedBox>
→<AmtFin>
Element Type | Data Type |
---|---|
Data | Currency |
The Regulation Z Amount Financed, which is defined as the amount of credit provided to you or on your behalf.
Attributes: None
🟥 <FedBox>
→<FinChg>
Element Type | Data Type |
---|---|
Data | Currency |
This element contains the Regulation Z Finance Charge, described as the dollar amount the credit extension will cost you.
Attributes: None
🟥 <FedBox>
→<TotPmts>
Element Type | Data Type |
---|---|
Data | Currency |
The amount which the borrower will have paid when the borrower has made all scheduled payments.
Attributes: None
🟦 <FedBox>
→<TotalSalePrice>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | <TotPmts> |
The sum of the total of payments plus the total down payment. Please note that
if no <TotalDown>
element was specified in the
request, then this element will not be present.
Attributes: None
🟥 <FedBox>
→<RegZAPR>
Element Type | Data Type |
---|---|
Data | Decimal |
The Regulation Z APR, which is the cost of the extension of credit expressed as a yearly rate. The Reg. Z APR element has a few attributes, described below:
Attributes:
🔹Max
,🔹MaxExceeded
,🔸Type
🔹 Max
Data Type | Default |
---|---|
Decimal | n/a |
This attribute specifies the maximum APR as configured in the account's setup files. If no maximum APR has been specified, then this attribute will not be present. The value of this attribute should be displayed as a percentage. As an example, for Max="36.000", you would disclose a maximum APR of 36.000%.
🔹 MaxExceeded
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
If a maximum APR is configured in the account's setup files, then the value of
this attribute indicates whether or not the current loan exceeds the maximum
allowed APR. As an example, if the maximum APR has been set to 36% and the APR
for the returned loan was 37.125%, the <RegZAPR>
element would be:
<RegZAPR Type="Actuarial" Max="36.000" MaxExceeded="true">37.125</RegZAPR>
🔸 Type
Values | |
---|---|
Enum | Actuarial , USRule , EU_APR , Canadian_APR , XIRR , XIRR360 , IRR , YieldIRR , Open_End |
This attribute specifies the method used to compute the reported APR: Actuarial or US Rule The method used is dictated by the setup files for the given account, but may be overridden in the XML input query.
Actuarial
- Governed by Appendix J to Regulation Z. Default US APR.USRule
- Used by large banks to mirror loan amortization.EU_APR
- Default European Union APR.Canadian_APR
- Default APR for Canada.XIRR
- Extended Internal Rate of Return (same as excel function).XIRR360
-XIRR
using a 360 divisor rather than a 365 divisor.YieldIRR
- Canadian mortgages may compute periodic interest using a fractional power of a periodic yield.Open_End
- Simply returns the interest rate.
🟦 <FedBox>
—><MAPR>
Element Type | Data Type |
---|---|
Data | Decimal |
If the military APR has been requested, then this element will be included in the output. The value of the element is the military APR, and the element has a few attributes, described below:
Attributes:
🔸Advance
,🔹Max
,🔹MaxExceeded
🔸 Advance
Data Type |
---|
Currency |
This attribute is the equivalent of the Amount Financed for the Military APR. Specifically, it is the principal balance less any MAPR fees, debt protection, etc.
🔹 Max
Data Type | Default |
---|---|
Decimal | 36.0 |
This attribute specifies the maximum Military APR as specified in the input XML
(see MAPR_Max
). If not specified, a default value
of 36% is assumed. The value of this attribute should be displayed as a
percentage. As an example, for Max="36.0"
, you would disclose a maximum
Military APR of 36.0%.
🔹 MaxExceeded
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
The value of this attribute 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>
element would be:
<MAPR Advance="1350.00" Max="36.000" MaxExceeded="true">37.125</MAPR>
🟦 <TILARESPA2015>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which are of interest to fulfilling the
2015 TILA RESPA rule. It will only be present if the
<TILARESPA2015>
element is present in the
request.
Sample TILARESPA2015 output:
<TILARESPA2015>
<TotalLoanCosts>0</TotalLoanCosts>
<CD_TotPmts>27311.07</CD_TotPmts>
<In5Years PaidTotal="27311" PaidPrincipal="25000"/>
<TIP>9.244</TIP>
<MaxPnIPmt Date="2012-11-01">1636.65</MaxPnIPmt>
<MinRate Idx="1">5.651</MinRate>
<MaxRate Idx="1">5.651</MaxRate>
<ProjectedPayments NumCols="3">
<PPCol Num="1" Title="Year 1">
<Years Start="1" End="1"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
<PPCol Num="2" Title="Year 2">
<Years Start="2" End="2"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
<PPCol Num="3" Title="Year 3">
<Years Start="3" End="3"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
</ProjectedPayments>
</TILARESPA2015>
Attributes: None
🟦 <TILARESPA2015>
→<LoanCost>[]
Element Type | Data Type |
---|---|
Data | Currency |
For every <Fee>
element present in the input which has
its IsLoanCost
attribute 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>
input element), there will be a
corresponding <LoanCost>
element. The value of this element will be the
numerical value of the fee, rounded to the nearest dollar.
🔹 In5Years
Data Type | Default |
---|---|
Currency | <LoanCost> |
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 attribute will be present and disclose the portion of this loan cost that is accrued during the first five years.
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
This attribute will hold the same value as the attribute of the same name for
the <Fee>
element. It is recommended that each fee
have a unique Name
for identification purposes.
🟥 <TILARESPA2015>
→<TotalLoanCosts>
Element Type | Data Type |
---|---|
Data | Currency |
This element holds the sum of all borrower paid loan costs. Since all
<LoanCost>
element values are rounded dollar amounts, the value of this
element will also be a rounded dollar amount.
Attributes: None
🟥 <TILARESPA2015>
→<CD_TotPmts>
Element Type | Data Type |
---|---|
Data | Currency |
This element holds 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 will be the numerical value of the sum.
Attributes: None
🟥 <TILARESPA2015>
→<In5Years>
Element Type | Data Type |
---|---|
Empty | - |
This element is empty, with all important values required for the new "In 5 Years" section returned in the following two attributes of this element.
Attributes:
🔸PaidPrincipal
,🔸PaidTotal
🔸 PaidPrincipal
Data Type |
---|
Currency |
This attribute 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.
🔸 PaidTotal
Data Type |
---|
Currency |
This attribute 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.
🟥 <TILARESPA2015>
→<TIP>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the total interest percentage, rounded to three or fewer decimal places, as required.
Attributes: None
🟥 <TILARESPA2015>
→<MaxPnIPmt>
Element Type | Data Type |
---|---|
Data | Currency |
The value of this element holds the maximum scheduled principal and interest payment during the term of the loan.
Attributes: 🔸
Date
🔸 Date
Data Type |
---|
Date |
This attribute contains 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. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🟥 <TILARESPA2015>
→<MinRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the minimum possible interest rate applied during the term of the loan.
Attributes: 🔸
Idx
🔸 Idx
Data Type |
---|
Integer |
This attribute contains the payment number for which the minimum rate is first applicable.
🟥 <TILARESPA2015>
→<MaxRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the maximum possible interest rate applied during the term of the loan.
Attributes: 🔸
Idx
🔸 Idx
Data Type |
---|
Integer |
This attribute contains the payment number for which the maximum rate is first applicable.
🟥 <TILARESPA2015>
→<ProjectedPayments>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which are of interest to filling the
Projected Payments table. It will only be present if the <TILARESPA2015>
element is present in the XML request for a supported loan type.
Attributes: 🔸
NumCols
🔸 NumCols
Data Type | Values |
---|---|
Integer | [1...4] |
This attribute will hold the number of columns which must be present in the Projected Payments table. It will be a numeric value from 1 to 4.
🟥 <ProjectedPayments>
→<PPCol>[]
Element Type | Data Type |
---|---|
Parent | - |
For every column required in the Projected Payments table, there will be an
associated <PPCol>
element. This element is a parent to child elements which
contain data associated with a single column of the table.
🔸 Num
Data Type | Values |
---|---|
Integer | [1...4] |
This attribute will hold the number of the column to which the following data applies.
🔸 Title
Data Type |
---|
Text |
The value of this attribute 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.
🟥 <ProjectedPayments>
→<PPCol>
→<Years>
Element Type | Data Type |
---|---|
Empty | - |
The attributes of this element hold the beginning and ending year numbers for which this column data applies. The element itself is empty.
🔸 End
Data Type |
---|
Integer |
The ending year associated with this column's data.
🔸 Start
Data Type |
---|
Integer |
The beginning year associated with this column's data.
🟥 <ProjectedPayments>
→<PPCol>
→<PnIPmt>
Element Type | Data Type |
---|---|
Empty | - |
This empty element has several attributes which describe the principal and interest payments associated with this column.
🔸 Balloon
Data Type | Values |
---|---|
Boolean | true , false |
If any of the payments associated with this column are balloon payments (e.g.
isolated payments that are more than twice the value of a regular periodic
payment), then the value of this attribute will be true
.
🔸 IntOnly
Data Type | Values |
---|---|
Enum | all , some , none |
none
- No payments associated with the column are Interest Onlysome
- Some, but not all, of the payments associated with the column are Interest Only.all
- All of the payments associated with the column are Interest Only.
Note that for the purposes of this attribute, 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.
🔸 Max
Data Type |
---|
Currency |
This attribute holds the maximum principal and interest payment for this column.
If this value is not the same as the value of the Min
attribute, then a range of rounded payments must be displayed. If the values are
the same, then only a single value needs to be disclosed.
🔸 Min
Data Type |
---|
Currency |
This attribute holds the minimum principal and interest payment for this column.
🟥 <ProjectedPayments>
→<PPCol>
→<MIPmt>
Element Type | Data Type |
---|---|
Data | Currency |
The value of this element 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.
Attributes: None
🟥 <ProjectedPayments>
→<PPCol>
→<TotalPmt>
Element Type | Data Type |
---|---|
Empty | - |
This empty element has two attributes which describe the estimated total payment or range of payments associated with this column. Note that this value does not include any estimated escrow, as the SCEX does not support escrow calculations. The calling application will need to increase these values by the estimated escrow amounts if any are present.
🔸 Max
Data Type |
---|
Currency |
This attribute holds the maximum estimated total payment for this column. If
this value is not the same as the value of the Min
attribute,
then a range of rounded payments must be displayed. If the values are the same,
then only a single value needs to be disclosed.
🔸 Min
Data Type |
---|
Currency |
This attribute holds the minimum estimated total payment for this column.
🟥 <Moneys>
Element Type | Data Type |
---|---|
Parent | - |
This element groups together those other major cash amounts not disclosed under
the <FedBox>
element, such as the principal balance, interest
change, fee amounts and protection premiums.
<Moneys>
<Principal>10120.00</Principal>
<Interest>1635.80</Interest>
<OddDaysPrepaid OddDayCount="15" DailyCost="2.77">41.55</OddDaysPrepaid>
<FinFees>120.00</FinFees>
<FinChgFees>91.55</FinChgFees>
<PocketFees>65.00</PocketFees>
<MAPRFees>201.55</MAPRFees>
<Protection Category="None" PerPmt="0.00" PerDay="0.00">0.00</Protection>
<Fee Name="FinFee">60.00</Fee>
<Fee Name="Prepaid Fee">50.00</Fee>
</Moneys>
Attributes: None
🟥 <Moneys>
→<Principal>
Element Type | Data Type |
---|---|
Data | Currency |
The principal balance is the amount on which interest is accrued. The principal balance consists of the amount requested by the borrower, any fees which are financed, as well as financed protection premiums.
Attributes: None
🟥 <Moneys>
→<Interest>
Element Type | Data Type |
---|---|
Data | Currency |
This element contains the total interest accrued during the term of the loan, assuming the borrower will make all scheduled payments.
Attributes: None
🟦 <Moneys>
→<ConstructInterest>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If the requested loan is a construction loan with a permanent loan attached and the account specified is set up to compute construction loans via the "Simple" method, then this element 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 <Interest>
element, and
both loans reflected in a single, combined amortization schedule.
If the requested loan was not a construction loan, or if construction loans have not been set up for the given account, then this element will not appear in the results.
Attributes: None
🟦 <Moneys>
→<MinInterestPmt>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | n/a |
The <MinInterestPmt>
element will only appear if the
Metavante
attribute has been set to true
,
and even then only under certain loan conditions. The element itself contains no
data, as all required data is found in the following two attributes:
🔸 Index
Data Type |
---|
Integer |
The Index
attribute specifies the payment number in the payment stream at which
the minimum interest payment is achieved.
🔸 Pmt
Data Type |
---|
Currency |
The interest payment amount for the given Index
.
🟦 <Moneys>
→<MaxInterestPmt>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | n/a |
The <MaxInterestPmt>
element will only appear if the
Metavante
attribute has been set to true
,
and even then only under certain loan conditions. The element itself contains no
data, as all required data is found in the following two attributes:
🔸 Index
Data Type |
---|
Integer |
The Index
attribute specifies the payment number in the payment stream at which
the maximum interest payment is achieved.
🔸 Pmt
Data Type |
---|
Currency |
The interest payment amount for the given Index
.
🟦 <Moneys>
→<FinFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element contains the sum of all financed fees requested for the loan. If no financed fees were requested, then this element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<FinChgFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element contains the sum of all APR affecting fees (those fees which are
added to the <FinChg>
) requested for the loan. If no APR affecting
fees were requested, then this element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<PocketFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element 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 element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<MAPRFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element 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.
Attributes: None
🟦 <Moneys>
→<Protection>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
Contains the total cost of all protection plans included with the computed loan.
For the individual plan costs, see the <ProtectionInfo>
elements described
below. The attributes of this element are as follows:
Attributes:
🔸Category
,🔹IsDp
,🔹Mandatory
,🔸PerDay
,🔸PerPmt
🔸 Category
Data Type | Values |
---|---|
Enum | See below |
This attribute specifies the category under which the computed loan protection falls. The possible values for this attribute are:
None
- No protection catetory has been identified.SP
- Single Premium protection financed at loan closing.MOB
- Monthly outstanding balance (paid on Payments).TrueMOB
- Premiums paid monthly on a date specified in the setup files.PaidSP
- Single premium protection paid at closing.ConstantMOB
- CMOB is a product paid with payments and a constant amount.AddToPmtMOB
- MOB insurance added to a constant P&I payment, resulting in variable payments.
🔹 IsDp
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
This attribute indicates if the specified account’s protection is set up as debt
protection. If this attribute 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).
🔹 Mandatory
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
This attribute should only appear in the response if the value of the attribute
is true
. If this attribute does not appear in the output, then the value of
this attribute should default to false
. If the value of the Mandatory
attribute is true
, then the total premium/fee amount for all insurance/debt
protection products has been treated as a part of the Regulation Z Finance
Charge, and hence will affect the Reg. Z APR.
🔸 PerDay
Data Type |
---|
Currency |
Contains the cost of all loan protection products expressed as dollars per day.
🔸 PerPmt
Data Type |
---|
Currency |
Contains the cost of all loan protection products expressed as dollars per payment.
🟦 <Moneys>
→<MinIntChgAdj>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a minimum interest charge is configured in the account’s setup files and the final payment was adjusted to meet this minimum interest charge, then this element will be returned in the response and will contain the value of the minimum finance charge adjustment.
Attributes: None
🟦 <Moneys>
→<MinFinChgAdj>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a minimum finance charge is configured in the account’s setup files and the final payment was adjusted to meet this minimum finance charge, then this element will be returned in the response and will contain the value of the minimum finance charge adjustment.
Attributes: None
🟦 <Moneys>
→<Fee>[]
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
For each non-zero fee requested in the loan calculation, there will be a <Fee>
element containing the computed fee amount.
Attributes:
🔹Name
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
Contains the value of the Name attribute of the corresponding
<Fee>
element from the request. If no such attribute is
present in the <Fee>
element, then none will be present
in the response element.
🟦 <Moneys>
→<ServiceCharge>[]
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
For each non-zero service charge requested in the loan calculation, there will
be a <ServiceCharge>
element containing the total service charge amount.
Attributes:
🔹Name
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
Contains the value of the Name attribute of the corresponding
<ServiceCharge>
element from the request. If no such
attribute is present in the request element, then none will be present in the
response element.
🟥 <Accrual>
Element Type | Data Type |
---|---|
Parent | - |
This element groups together interest accrual information, such as the accrual method used, days to the first payment, and the loan’s maturity date.
<Accrual>
<Method>Actual/365 US Rule</Method>
<Days1Pmt DayCount="Actual">74</Days1Pmt>
<Maturity>2015-07-01</Maturity>
</Accrual>
Attributes: None
🟥 <Accrual>
→<Method>
Element Type | Data Type |
---|---|
Data | Text |
The <Method>
element contains a textual description of the interest accrual
method used to compute the loan (e.g. "Unit Period 365 Simple").
Attributes: None
🟥 <Accrual>
→<Days1Pmt>
Element Type | Data Type |
---|---|
Data | Integer |
This element contains the number of days to the first payment, computed by one of two methods as specified in this element’s sole attribute.
Attributes:
🔸DayCount
🔸 DayCount
Data Type | Values |
---|---|
Enum | Actual , True360 |
Actual
- The actual number of days between these two dates are used.31
would be the day count for the 2024-01-01 to 2024-02-01.True360
- All months have 30 days.30
would be the day count for 2024-01-01 to 2024-02-01.
🟥 <Accrual>
→<Maturity>
(YYYY-MM-DD)
Element Type | Data Type |
---|---|
Data | Date |
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. Hence, a maturity date of February 15, 2020 would be specified as
<Maturity>2020-02-15</Maturity>
.
Attributes: None
🟥 <PmtStream>[]
Element Type | Data Type |
---|---|
Empty | - |
The <PmtStream>
element(s) describe the scheduled stream of payments for the
computed loan in the order paid. Instead of disclosing each and every payment
individually (which can be done with the <AmTable>
element), the
payment streams group together consecutive equal payments to produce a
compressed output view.
The following code translates to "Twelve consecutive payments of $879.31 computed at 10.000% begin on January 22nd, 2024".
<PmtStream Term="12" Pmt="879.31" Rate="10.000" Begin="2024-01-22"/>
Each element describes a single stream of equal payments, using the following attributes to define the important properties of each resulting payment stream:
🔸 Begin
Data Type |
---|
Date |
This attribute contains 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. In the example above, the first payment stream
is scheduled to begin on September 18, 2005. Hence, the Begin attribute for the
first payment stream element would be specified as Begin="2005-09-18"
.
🔸 Pmt
Data Type |
---|
Currency |
The Pmt
attribute contains the computed payment amount for this payment stream.
For the sample payment stream above, the payment amount is 879.31.
🔸 Rate
Data Type |
---|
Decimal |
Contains the interest rate used for the duration of this payment stream. Usually, the interest rate will remain fixed for the duration of the loan unless you are computing an adjustable rate loan or you are computing a LaserPro construction loan with permanent loan attached.
🔸 Term
Data Type |
---|
Integer |
The Term
attribute holds the number of contiguous payments that make up the
given payment stream. In the example payment stream above, the term for the
stream is 12.
🟦 <ProtectionInfo>[]
Element Type | Data Type |
---|---|
Parent | - |
These elements (there may be more than one if more than one type of protection was requested) contain information related to the various protection products requested on the given loan. Each element group provides complete results for each requested product (decreasing life, level life, disability/debt cancellation, involuntary unemployment, or personal property).
🔸 Formula
Data Type | Values |
---|---|
Enum | see Protection Formulas |
The Formula
attribute contains an abbreviated description of the formula used
to compute the desired protection product. The formula codes are described
here.
🔸 Product
Data Type | Values |
---|---|
Enum | Life , Level , Disability , Unemployment , Property |
This attribute informs the calling application to which type of protection product this element refers: decreasing life, level life, disability/debt cancellation, involuntary unemployment or personal property.
🔹 RateType
Data Type | Values |
---|---|
Enum | Fixed , Variable |
Fixed
- Protection rate stays constant during the calculations.Variable
- Protection rate changed from Joint to Single as the loan evolves.
🟥 <ProtectionInfo>
→<CalcResult>
Element Type | Data Type |
---|---|
Data | Text |
This element 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 child elements
of <ProtectionInfo>
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 child elements of
<ProtectionInfo>
, as the product was not computed.
<CalcResult>Valid Calculation</CalcResult>
Attributes: None
🟥 <ProtectionInfo>
→<Cost>
Element Type | Data Type |
---|---|
Empty | - |
Attributes of this empty element 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.
The only time there will be two <Cost>
elements to parse is when the account
has been set up to use Plateau’s Uniguard product, and the user has requested
joint coverage. If this is the case, then two <Cost>
elements are provided to
disclose two premiums instead of a single aggregate joint premium.
<Cost Premium="827.26" PerPmt="19.28" PerDay="0.63" Factor="1.0154"/>
🔸 Factor
Data Type |
---|
Decimal |
The rate factor used to compute the premium for the requested protection product.
🔸 PerDay
Data Type |
---|
Currency |
The daily cost of coverage, expressed in dollars.
🔸 PerPmt
Data Type |
---|
Currency |
The cost of coverage expressed as dollars per payment.
🔸 Premium
Data Type |
---|
Currency |
The total cost for this protection over the term of the loan.
🟥 <ProtectionInfo>
→<Coverage>
Element Type | Data Type |
---|---|
Empty | - |
The aggregate coverage amount and note are provided in the following attributes of this empty element:
<Coverage Amount="75000.00" Note="Partial Coverage of $75,000"/>
🔸 Amount
Data Type |
---|
Currency |
This attribute contains the aggregate coverage amount for this protection product.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🟥 <ProtectionInfo>
→<Benefit>
Element Type | Data Type |
---|---|
Empty | - |
This empty element will only show up for the disability and involuntary unemployment products.
<Benefit Amount="1000.00" Note="Partial Benefit of $1,000"/>
🔸 Amount
Data Type |
---|
Currency |
Attribute which contains the monthly benefit amount for this protection product.
🔸 Note
Data Type |
---|
Text |
This Note
will describe 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.
🔹 Periodic
Data Type | Default |
---|---|
Currency | n/a |
If the account has been configured to disclose periodic benefits (as opposed to
monthly benefit amounts, which are returned in the Amount
attribute described above), and if the specified payment frequency is other than
monthly, then this attribute will be present and will hold the periodic benefit
amount.
🟦 <ProtectionInfo>
→<CovTerm>
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the term of coverage for the requested product. If the request has specified the coverage term, then this element will be populated with that term.
<CovTerm InMonths="75" InPmts="75" Maturity="2018-09-22" Note="Truncated: Keep Benefit"/>
🔹 InDays
Data Type | Default |
---|---|
Integer | n/a |
Attribute which expresses the term of coverage in days. This attribute will only be present for the level life product, and even then only if needed (for example, when covering single payment notes).
🔸 InMonths
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of months.
🔸 InPmts
Data Type |
---|
Integer |
Contains the number of payments covered.
🔸 Maturity
(YYYY-MM-DD)
Data Type |
---|
Date |
This attribute contains the maturity date for the requested coverage. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🟦 <ProtectionInfo>
→<Borrower>[]
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the term of
coverage of a specified borrower, for the requested product. Note that this
element will only be present if the input XML request has specified
ShowBorrowerInfo
= "true"
, and a valid
birthdate was provided. The following attributes are defined for this purpose:
Attributes:
🔸AgeAtIssue
,🔸AgeAtMaturity
,🔸Birthday
,🔸Maturity
,🔸Months
,🔸Note
,🔸Pmts
🔸 AgeAtIssue
Data Type |
---|
Special - see below |
If coverage is written on this borrower, then the value of this attribute 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.
🔸 AgeAtMaturity
Data Type |
---|
Special - see below |
If coverage is written on this borrower, then the value of this attribute 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.
🔸 Birthday
Data Type |
---|
Date |
This attribute contains the birthday associated with the borrower, as specified in the request. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🔸 Maturity
Data Type |
---|
Date |
The value of this attribute contains the coverage maturity date for this particular borrower.
🔸 Months
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of months.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🔸 Pmts
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of payments.
🟦 <ProtectionInfo>
→<Caps>
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the maximum
terms, amounts, and ages associated with the requested product. This element
will only be present if the ShowCaps
attribute
of the <Protection>
element is set to true
.
<Caps Cov="75000" Ben="1000" Term="84" InceptAge="65" AttainAge="66"/>
Attributes:
🔸AttainAge
,🔸Ben
,🔸Cov
,🔸InceptAge
,🔸Term
🔸 AttainAge
Data Type |
---|
Integer |
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.
🔸 Ben
Data Type |
---|
Currency |
Contains the maximum monthly benefit amount, expressed in dollars. If no cap is present or applicable, then a value of zero is returned.
🔸 Cov
Data Type |
---|
Currency |
Contains the maximum aggregate coverage amount, expressed in dollars. If no cap is present or applicable, then a value of zero is returned.
🔸 InceptAge
Data Type |
---|
Integer |
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.
🔸 Term
Data Type |
---|
Integer |
Contains the maximum coverage term, expressed in months. If no cap is present or applicable, then a value of zero is returned.
🟦 <AmTable>
Element Type | Data Type |
---|---|
Parent | - |
This element (if present) contains child elements which describe the loan's
amortization information. This element (and all of its child elements) will only
be present if the HideAmort
property of the
root element of the input query is set to false
.
<AmTable>
Attributes will only occur as feedback data for Canadian APR's.
🔹 AvgBal
Data Type | Default |
---|---|
Currency | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute is the average balance of the loan used in the Canadian APR calculation.
🔹 Months
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🔹 OddDays
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🔹 Weeks
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🟦 <AmTable>
→<GrandTotals>[]
Element Type | Data Type |
---|---|
Empty | - |
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 the following attributes:
<GrandTotals PmtTot="10551.72" IntTot="551.68" PrinTot="10000.04"/>
Attributes:
🔹AHTot
,🔹CLTot
,🔸IntTot
,🔹IUTot
,🔸PmtTot
,🔸PrinTot
,🔹SCTot
🔹 AHTot
Data Type | Default |
---|---|
Currency | 0 |
The AHTot
attribute 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 over the duration
of the loan.
🔹 CLTot
Data Type | Default |
---|---|
Currency | 0 |
The CLTot
attribute 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.
🔸 IntTot
Data Type |
---|
Currency |
Contains the sum of all interest attributes in the AmLine
elements.
This amount will be different from the <Interest>
element if
there is a nonzero EndBal
for the final line of
amortization. The two will differ by this non-zero EndBal
.
🔹 IUTot
Data Type | Default |
---|---|
Currency | 0 |
The IUTot
attribute 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 over the
duration of the loan.
🔸 PmtTot
Data Type |
---|
Currency |
Contains the total of payments scheduled for the computed loan.
🔸 PrinTot
Data Type |
---|
Currency |
Like IntTot
above, this attribute contains the total
amount paid to principal during the loan term, assuming all payments are made as
scheduled.
🔹 SCTot
Data Type | Default |
---|---|
Currency | 0 |
The SCTot
attribute will only appear on loans with service charges. It
contains the total service charge amount paid over the duration of the loan.
🟦 <AmTable>
→<SubTotals>[]
Element Type | Data Type |
---|---|
Empty | - |
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 <SubTotals>
element present. The element itself is empty, as all the
interesting categories are found in the following attributes:
<SubTotals Year="2024" Start="1" Events="12" PmtSub="10551.72" IntSub="551.68" PrinSub="10000.04"/>
Attributes:
🔹AHSub
,🔹CLSub
,🔸Events
,🔸IntSub
,🔹IUSub
,🔸PmtSub
,🔸PrinSub
,🔹SCSub
,🔸Start
,🔸Year
🔹 AHSub
Data Type | Default |
---|---|
Currency | 0 |
The AHSub
attribute 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
.
🔹 CLSub
Data Type | Default |
---|---|
Currency | 0 |
The CLSub
attribute 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
.
🔸 Events
Data Type |
---|
Integer |
This attribute defines the number of amortization events (contained in
<AmLine>
elements which are defined below) which belong to this
calendar Year
.
🔸 IntSub
Data Type |
---|
Currency |
Holds the total amount paid to interest over the Year
in
question, assuming all payments are made as scheduled.
🔹 IUSub
Data Type | Default |
---|---|
Currency | 0 |
The IUSub
attribute 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
.
🔸 PmtSub
Data Type |
---|
Currency |
Contains the total of payments scheduled for the Year
in
question.
🔸 PrinSub
Data Type |
---|
Currency |
Like IntSub
above, this attribute contains the total
amount paid to principal during the Year
in question,
assuming all payments are made as scheduled.
🔹 SCSub
Data Type | Default |
---|---|
Currency | 0 |
The SCSub
attribute will only appear on loans with service charges. It
contains the total of service charges paid during the Year
.
🔸 Start
Data Type |
---|
Integer |
This attribute defines the first amortization event which falls in the specified
calendar Year
. To find the <AmLine>
element
which corresponds to this value, match the Idx attribute of the
<AmLine>
element with the integer value reported by this attribute.
🔸 Year
Data Type |
---|
Integer |
The given calendar year for which the subtotal data is applicable.
🟥 <AmTable>
→<AmLine>[]
Element Type | Data Type |
---|---|
Empty | - |
There is one <AmLine>
element 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.) However, some loan protection methods (TruStage's monthly
renewable product, to be exact) have amortization events which correspond to
loan protection premiums being added to the loan balance on specific dates.
<AmLine Idx="1" Date="2024-01-01" BegBal="10000.00" Pmt="879.31" Int="84.93" Prin="794.38" EndBal="9205.62"/>
As with the <GrandTotals>
and <SubTotals>
elements, this element is empty and contains all of the useful information for a
given point in the amortization of a loan in the following attributes.
Attributes:
🔹AH
,🔸BegBal
,🔹CL
,🔸Date
,🔸EndBal
,🔸Idx
,🔸Int
,🔹IU
,🔸Pmt
,🔸Prin
,🔹SC
,🔹UnpaidInt
🔹 AH
Data Type | Default |
---|---|
Currency | 0 |
The AH
attribute 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.
🔸 BegBal
Data Type |
---|
Currency |
The principal balance before the amortization event occurs.
🔹 CL
Data Type | Default |
---|---|
Currency | 0 |
The CL
attribute 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.
🔸 Date
Data Type |
---|
Currency |
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.
🔸 EndBal
Data Type |
---|
Currency |
The principal balance amount, after the amortization event has taken place.
🔸 Idx
Data Type |
---|
Integer |
The index of the amortization event, which is either the payment number, or zero. A value of zero designates a protection premium that was charged on a date other than a payment date. (Occurs with protection category "TrueMOB").
🔸 Int
Data Type |
---|
Currency |
The amount of the payment which goes to pay interest.
🔹 IU
Data Type | Default |
---|---|
Currency | 0 |
The IU
attribute 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.
🔸 Pmt
Data Type |
---|
Currency |
The amount of the payment (or zero if the event is a "TrueMOB" protection premium).
🔸 Prin
The amount of the payment which goes to reduce the principal balance.
🔹 SC
Data Type | Default |
---|---|
Currency | 0 |
This attribute contains the total service charge for this payment, and will only be present if one or more service charges were requested with the loan.
🔹 UnpaidInt
Data Type | Default |
---|---|
Currency or Decimal | 0 |
This attribute 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 places. If rounded, then the unpaid interest is displayed to two (2) decimal places.
🟦 <Metavante>
Element Type | Data Type |
---|---|
Empty | - |
This element will only be present if the
Metavante
attribute of the root element is
set to true
. The element itself is empty, as all of the useful information is
in the following attributes:
Attributes:
🔸FormsTerm
,🔸HostTerm
🔸 FormsTerm
Data Type |
---|
Integer |
The number of months in the loan, as computed using the Metavante FORMS method.
🔸 HostTerm
Data Type |
---|
Integer |
The number of months in the loan, as computed using the Metavante HOST method.
Interest Only Loans
This type of loan minimizes payment amounts such that the all payments (except for the final) only cover accrued interest. Since interest may vary by the number of days in a period (depending upon the interest accrual calendar used), interest payments may vary.
Sample Request
The following sample illustrates the core structure of an interest only loan request. It is a request for a loan with a single advance of $10,000, accruing interest at 6.5%, with a 5 monthly interest only payments followed by a final payment which pays off all principal and interest.
<inINTEREST_ONLY AccrualCode="320">
<LoanDate>2024-12-01</LoanDate>
<PmtDate>2025-01-01</PmtDate>
<IntRate>6.5</IntRate>
<Proceeds>10000.00</Proceeds>
<Term>6</Term>
</inINTEREST_ONLY>
Sample Response
The following response is returned from the SCEX when provided with the sample request above.
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE outINTEREST_ONLY SYSTEM "outINTEREST_ONLY.dtd">
<outINTEREST_ONLY>
<Results>
<Description>Successful Calculation</Description>
<First>55.21</First>
<Final>10055.21</Final>
</Results>
<FedBox>
<AmtFin>10000.00</AmtFin>
<FinChg>324.12</FinChg>
<TotPmts>10324.12</TotPmts>
<RegZAPR Type="Actuarial">6.482</RegZAPR>
</FedBox>
<Moneys>
<Principal>10000.00</Principal>
<Interest>324.12</Interest>
<Protection Category="None" PerPmt="0.00" PerDay="0.00">0.00</Protection>
</Moneys>
<Accrual>
<Method>Actual/365 US Rule</Method>
<Days1Pmt DayCount="Actual">31</Days1Pmt>
<Maturity>2025-06-01</Maturity>
</Accrual>
<PmtStream Term="2" Pmt="55.21" Rate="6.500" Begin="2025-01-01"/>
<PmtStream Term="1" Pmt="49.86" Rate="6.500" Begin="2025-03-01"/>
<PmtStream Term="1" Pmt="55.21" Rate="6.500" Begin="2025-04-01"/>
<PmtStream Term="1" Pmt="53.42" Rate="6.500" Begin="2025-05-01"/>
<PmtStream Term="1" Pmt="10055.21" Rate="6.500" Begin="2025-06-01"/>
<AmTable>
<GrandTotals PmtTot="10324.12" IntTot="324.12" PrinTot="10000.00"/>
<SubTotals Year="2025" Start="1" Events="6" PmtSub="10324.12" IntSub="324.12" PrinSub="10000.00"/>
<AmLine Idx="1" Date="2025-01-01" BegBal="10000.00" Pmt="55.21" Int="55.21" Prin="0.00" EndBal="10000.00"/>
<AmLine Idx="2" Date="2025-02-01" BegBal="10000.00" Pmt="55.21" Int="55.21" Prin="0.00" EndBal="10000.00"/>
<AmLine Idx="3" Date="2025-03-01" BegBal="10000.00" Pmt="49.86" Int="49.86" Prin="0.00" EndBal="10000.00"/>
<AmLine Idx="4" Date="2025-04-01" BegBal="10000.00" Pmt="55.21" Int="55.21" Prin="0.00" EndBal="10000.00"/>
<AmLine Idx="5" Date="2025-05-01" BegBal="10000.00" Pmt="53.42" Int="53.42" Prin="0.00" EndBal="10000.00"/>
<AmLine Idx="6" Date="2025-06-01" BegBal="10000.00" Pmt="10055.21" Int="55.21" Prin="10000.00" EndBal="0.00"/>
</AmTable>
</outINTEREST_ONLY>
Interest Only Loan - Request
Please see the Legend to understand the conventions used to document each element and attribute. Note that for requests, the XML elements are documented in alphabetical order by parent element.
🟥 <inINTEREST_ONLY>
Element Type | Data Type |
---|---|
Parent | - |
This element is the root element for the request. It is a parent element that has no data, but does have several attributes that offer a wide variety of adjustments.
Attributes:
🔹Account
,🔹AccrualCode
,🔹AprType
,🔹Country
,🔹DataDirPath
,🔹ForceReload
,🔹HideAmort
,🔹Lastday
,🔹MAPR_Max
,🔹Metavante
,🔹PmtRound
,🔹PPY
,🔹UseMAPR
,🔹YieldPPY
🔹 Account
Data Type | Values | Default |
---|---|---|
Integer | [1...9999] | 1 |
This attribute specifies which account should be used to compute the requested
loan. Each account is numbered from 1 to 9,999, and each account corresponds to
a set of setup files which define numerous settings which may affect the loan
calculation, such as the accrual method, insurance methods and rates, etc. If
this attribute is not specified, a default value of 1
will be used.
🔹 AccrualCode
Data Type | Values | Default |
---|---|---|
Enum | See table | default |
This property allows an accrual method to be used other than the accrual method dictated by the setup file for the given account. If no accrual code attribute is specified, the method defined in the setup file will be used. The Accrual Code Table lists all valid accrual codes available. Note that for the split rate accrual codes (i.e. those above 500), the split rate tiers must be defined in the setup file.
🔹 AprType
Data Type | Values | Default |
---|---|---|
Enum | See below | default |
This attribute allows the calling application to specify an APR calculation method which will override the default value found in the setup file for the given account. If this attribute is set to a valid value, then the specified method will be used to compute the APR for this loan calculation.
If the Country
attribute has been set by the calling
application and this attribute is not set, then the APR method used will be
determined by the specified country. For the United States of America, the
default APR method is actuarial
. For a country in the European Union, the
default value is eu
(European Union APR). For Canada, the default APR method
is ca
(Canadian APR).
default
- Use setup file value.actuarial
- Appendix J Actuarial APRusrule
- US Rule APReu
- European Union APRca
- Canadian APRxirr
- Extended Internal Rate of Return (same as excel function)xirr360
- XIRR using a 360 divisor rather than a 365 divisorirr
- Simple Internal Rate of Return (same as excel function)
If this attribute is not specified and the Country
attribute
is not specified, then the value of default
will be used which informs the SCE
to use the APR method defined in the setup file for the specified
Account
.
🔹 Country
Data Type | Values | Default |
---|---|---|
Alpha-2 or Numeric-3 code | See table | US |
This attribute allows the calling application to specify a two (2) character or
three (3) digit country code. If none is provided, then a default value of US
will be used. Please see the Country Codes Table for the
list of supported countries and their associated codes.
Currently, the country code is used to determine the default value of the
AprType
attribute (see above).
🔹 DataDirPath
Data Type | Values | Default |
---|---|---|
Text | See below | See below |
If this attribute is set, the SCE will look for a data folder containing the
setup files in the path specified. Thus, if the DataDirPath
is set to
C:\SCEX\
, the SCE will look for the setup files in C:\SCEX\data
.
If the calling application wishes to specify the data directory path in its
entirety (e.g. the calling app does not want the SCE to append \data
to the
provided path), then simply terminate the specified DataDirPath
with an
asterisk (*
). Thus, if the DataDirPath
is set to C:\SCEX\bank1\*
, the SCE
will look for the setup files in C:\SCEX\bank1\
.
If this attribute is not set, the SCE will attempt to locate the data folder in
the default data directory path location, which can be retrieved using the
<inVERSION>
module query, and set via the SCE API.
This attribute is useful if you wish to use only a single installation of the
SCE, but have many different setup file groupings. By specifying a different
DataDirPath
for each grouping, you can easily separate the groups from one
another instead of grouping them all together in a single directory.
🔹 ForceReload
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
The SCE caches setup files previously used. This improves performance for
subsequent loan requests using one of the cached accounts. However, if you need
the SCE to reload the setup files for a given request (e.g. you just copied
over new setup files), then you can set this attribute to true
and the setup
files will be forced to reload. If left at the default value of false
, then
setup files are only reloaded when the SCE notices that one of the setup files
has been modified.
🔹 HideAmort
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
This attribute determines whether or not an amortization schedule will be
included in the response, given a successful loan calculation. If you do not
require the use of the amortization schedule, then setting this attribute to
true
will suppress its output. The default value of false
will return the
amortization schedule as part of the response.
🔹 Lastday
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If present, this attribute overrides the Last Day setting in the setup files, which only applies to loans computed with an actual day interest accrual calendar where the first payment date falls at the end of a month with fewer than 31 days. As an example, if the first payment date is on April 30, should the following payment dates be made on the 30th of each month, or on the last day of the month?
If no value is specified for this attribute, then the setup file setting will be
used. If true
is specified, then conditions triggering a last day situation
will result in payments which fall at the end of the month. A value of false
indicates that when dictated, subsequent payment dates will not be moved to the
last day of the month.
🔹 MAPR_Max
Data Type | Values | Default |
---|---|---|
Decimal | [-99.999...600] | 36.0 |
If you are computing the Military APR (see UseMAPR
below) and
wish to override the default maximum APR value of 36
%, then specify the
desired maximum as the value of this attribute.
🔹 Metavante
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to a value of true
, then the
<Metavante>
element will be included in the
response. Also, some loans will also disclose
<MinInterestPmt>
and
<MaxInterestPmt>
elements.
🔹 PmtRound
Data Type | Values | Default |
---|---|---|
Enum | default , nearest , up , down , best | default |
This attribute allows the calling application to specify a payment rounding
option which will override the value found in the setup file. If not specified,
then the value of default
will be used.
default
- Use method specified in setup file.nearest
- Round computed payment to the nearest penny, using 5/4 rounding. e.g. 300.242 = 300.24, 300.245 = 300.25.up
- Round computed payment up to the next penny. e.g. 300.241 = 300.25.down
- Round computed payment down to the previous penny. e.g. 300.249 = 300.24.best
- Once the unrounded payment has been computed, amortize the loan using the rounded down and rounded up payment, and then return the payment which amortizes the loan’s ending balance closest to zero.
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | See below | monthly |
PPY is an abbreviation for payments per year, and as one might surmise,
determines the payment frequency for the loan. The default value of monthly
will
result in a loan with 12 payments per year. If you require a loan with a payment
frequency other than monthly, specify it using this attribute.
Value | Translation | Description |
---|---|---|
1 | Annual | Once Per Year |
2 | SemiAnnual | Twice Per year (every six months) |
4 | Quarterly | Four per year (every three months) |
6 | Bimonthly | Six per year (every two months) |
12 | Monthly | Twelve per year (every month) |
24 | Semimonthly | Twice Per Month* |
26 | Biweekly | Every two weeks |
52 | Weekly | Every week |
* Semimonthly loans are characterized by making two payments per month on the same days. A common semimonthly schedule is to make payments every 1st and 16th of the month. Another common schedule is the 15th and the end of every month.
🔹 UseMAPR
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to a value of true
, the SCE will compute the Military
APR in addition to the Regulation Z APR. The <MAPR>
element will be included in the XML loan response.
🔹 YieldPPY
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 , 4 , 6 , 12 | 0 |
Canadian mortgages may compute periodic interest using a fractional power of a
periodic yield. If set to a value other than 0
, this value determines the
period. Please contact us for further information if you support mortgage
calculations in Canada. Note that when using this attribute with a value other
than zero, the calling application must include an odd days prepaid fee in the
request.
🟦 <Construction>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | Not a construction loan |
Include the <Construction>
element to configure a construction period on a
loan. The use of this element requires setup files configured to support
construction loans, or specification of the Method
to be used.
If the specified account is not set up to support construction loans, this
element will be ignored.
Attributes:
🔹Accrual
,🔹Active
,🔹HalfCommitment
,🔹Method
,🔹PermanentAttached
,🔹PPY
,🔸Rate
,🔸Term
,🔹UnitOddDayDivisor
🔹 Accrual
Data Type | Values | Default |
---|---|---|
Enum | default , unitperiod , actual360 , actual365 | default |
If the loan request is a construction loan with no permanent loan attached, this attribute allows the calling application to specify the accrual method used.
default
- The setup files determine the default value for interest accrual.unitperiod
- Compute periodic interest using a 1/PPY factor.actual360
- Compute periodic interest using the actual # of days between payments/360.actual365
- Compute periodic interest using the actual # of days between payments/365.
🔹 Active
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this loan request includes a construction loan, then set this attribute to
true
. If no construction loan is desired, either do not specify the
<Construction>
element or set this attribute to false
.
🔹 HalfCommitment
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
During the term of the construction loan, the estimated interest for disclosure
purposes may be either computed on the full or half commitment amounts. By
setting this attribute to true
, interest will be estimated using half of the
initial commitment amount (i.e. the principal balance). The default value of
false
will cause interest to be estimated using the entire initial commitment
amount.
🔹 Method
Data Type | Values | Default |
---|---|---|
Enum | default , simple , laserpro , intonly | default |
There are three methods used to define how construction loans are computed and
disclosed. A method of default
tells the SCE to use the method
configured in the setup file. The meaning of the three methods are as follows:
simple
- Compute an aggregate construction interest amount for the entire construction period for both pure construction loans and construction to permanent loans.laserpro
- Compute an aggregate construction interest amount for the entire construction period for pure construction loans. For construction to permanent loans, compute and disclose discrete interest-only payments during the construction period.intonly
- Compute and disclose discrete interest-only payments during the construction period for both pure construction loans and construction to permanent loans.
🔹 PermanentAttached
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Construction loans may be computed on their own, or they may be attached to a
permanent loan which begins at the conclusion of the construction loan. If a
permanent loan is attached to the construction loan, then set this attribute’s
value to true
and set up the permanent loan information in the request
elements.
The default value of false
indicates that this is solely a construction loan
with no permanent attached. In this case, you still need to set up the
<LoanDate>
, <PmtDate>
and <Proceeds>
elements.
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | 1 , 2 , 4 , 6 , 12 , 24 , 26 , 52 | 12 |
The PPY
attribute allows the calling application to specify the payment
frequency during the construction period. The default value of monthly will
result in a construction loan with 12 payments per year. If you require a
payment frequency during the construction period other than monthly, then
specify it using this attribute. Note that if a permanent loan is attached to
the construction loan, that the permanent loan's payment frequency may differ
from the construction period’s payment frequency.
🔸 Rate
Data Type | Values | Default |
---|---|---|
Decimal | [-99.999...600] | 0 |
This attribute determines the rate applied to the appropriate commitment amount during the term of the construction loan.
🔸 Term
Data Type | Values | Default |
---|---|---|
Integer | [1...60] * | 0 |
The term of the construction loan (in payments) is specified using this attribute. Please note that the term may not exceed five years.
* 60 is the maximum number of months in the Construction period. In general, the maximum entry is 5 *
PPY
, where the PPY is the payments per year attribute of the<Construction>
element.
🔹 UnitOddDayDivisor
(enum, [], Ignore)
Data Type | Values | Default |
---|---|---|
Enum | ignore , 360 , 365 , vardpy | ignore |
When specifying an Accrual
method of type unitperiod
, this
attribute allows the calling application to specify how odd days between the
loan and first payment dates are taken into account.
ignore
means that all odd days are ignored, and the calculation will assume
one full unit period. 360
and 365
will compute the actual number of days
between the loan date and first payment date, and then use either a 360 or 365
divisor to determine the amount of interest accrued during that period. vardpy
accrues interest in the same manner as accrual code 250/350.
🟦 <Fee>[]
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No fee |
Unlike most other elements, any number of fees may be defined, or none at all. All of the information used to compute a fee is contained in its attributes.
Attributes:
🔹AddToFinChg
,🔹AddToPrin
,🔹Adjust
,🔹CalcType
,🔸Entry
,🔹IsLoanCost
,🔹MAPR
,🔹MaxValue
,🔹MinValue
,🔹Name
🔹 AddToFinChg
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
If this fee should be included in the Reg. Z Finance Charge (and hence, affect
the APR), then set this attribute to true
. The default value of false
indicates that the fee does not affect the Finance Charge nor APR.
🔹 AddToPrin
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this fee should be added to the principal balance (e.g. the fee is financed
along with the amount requested), then set this attribute to true
. If set to
false
, then the fee is paid up front out of the borrower’s pocket.
🔹 Adjust
Data Type | Values | Default |
---|---|---|
Currency | any | 0 |
The optional attribute Adjust
allows the calling application to increase or
decrease the base amount on which a fee is calculated. If a negative value is
specified and this adjustment would produce a negative base amount, then a value
of zero is returned for the given fee. This attribute has no effect on fees with
a CalcType
of Dollar
.
As an example, in Tennessee you may need to define a financed, non-APR affecting fee to be computed by decreasing the amount financed by $2,000, and then multiplying this reduced amount by 0.115. The way to accomplish this in the SCEX is as follows:
<Fee CalcType="OnAmtFin" Entry="0.115" Adjust="-2000" AddToPrin="true" AddToFinChg="false" />
🔹 CalcType
Data Type | Values | Default |
---|---|---|
Enum | Dollar , OnProceeds , OnAmtFin , OnPrin , DocStamp | Dollar |
The value of this attribute determines how the fee is to be computed, as described below:
Dollar
- TheEntry
attribute is understood as a flat dollar amount.OnProceeds
- TheEntry
attribute is understood as a percentage value, to be applied to the loan’s proceeds. AnEntry
of1.0
would represent a fee of 1.0% of proceeds.OnAmtFin
- TheEntry
attribute is understood as a percentage value, to be applied to the Amount Financed. AnEntry
of0.5
would represent a fee of 0.5% of Amount Financed.OnPrin
- TheEntry
attribute is understood as a percentage value, to be applied to the loan’s principal balance. AnEntry
of0.125
would represent a fee of 0.125% of principal balance.DocStamp
- TheEntry
attribute is understood as a Florida doc stamp rate, to be applied to the loan’s principal balance. AnEntry
of0.35
would represent a fee of 0.35% of the principal balance. You must set the AddToFinChg attribute to false, otherwise the doc stamp fee will return a value of zero.
🔸 Entry
Data Type | Values |
---|---|
Decimal or Currency | >= 0 |
The Entry
is the basic starting point fee value that determines the dollar
value of the resulting fee computation. How this attribute is interpreted
depends upon the CalcType
attribute, described above. This
value is either a dollar value or a percentage (aka "points").
🔹 IsLoanCost
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
When requesting the new TILA RESPA outputs (via the
<TILARESPA2015>
element), the SCE needs to know which fees need
to be considered borrower paid loan costs, as defined in the rule. Please note
that if the fee is paid by a lender or other third party, then the fee does not
affect the loan calculation and should not be sent to the SCE. If it is sent,
then the value of this attribute should be set to false
.
🔹 MAPR
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If you wish to compute the Military APR, then certain fees may not be considered
Regulation Z APR affecting fees, but are considered Military APR affecting fees.
In this case, you will need to set the value of this attribute to true
.
Fees which are added to the finance charge (e.g.
AddToFinChg
="true"
) are always considered MAPR fees,
regardless of the stated value of this attribute.
Note that debt protection products are automatically included in the calculation of the Military APR, no matter what method is used for payment (e.g. single premium vs. monthly outstanding balance).
🔹 MaxValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If a maximum value for the fee is specified and is greater than zero, then if the computed fee exceeds this maximum value, then this maximum value will be used instead. If no maximum value is specified or is set to a value of zero, then no maximum will be enforced. Please note that this attribute is applied to all fee types documented.
🔹 MinValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If a minimum value for the fee is specified and is greater than zero, and if the
Entry
attribute holds a value greater than zero, then if the
computed fee is less than this minimum value, then this minimum value will be
used instead. If no minimum value is specified or is set to a value of zero,
then no minimum will be enforced. If a specified minimum value exceeds a
specified maximum value, then the minimum value will be ignored. Please note
that this attribute is applied to all fee types documented.
🔹 Name
Data Type | Values | Default |
---|---|---|
Text | any | n/a |
This attribute is for convenience purposes only, and does not affect the
calculation of the fee in any manner. If a Name
attribute is specified for the
<Fee>
element, then the corresponding <Fee>
element in the XML output will have a Name
attribute with the same value. This allows you to easily differentiate fees in
the response.
🟦 <Format>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | See attributes |
The <Format>
element is one of the first elements parsed from a request, as the
attributes of this empty element affect how date and numeric values are parsed
and validated.
Attributes:
🔹CurrencyDecimals
,🔹DateFormat
,🔹DateSeparator
,🔹DecimalSeparator
,🔹StrictDP
,🔹ThousandSeparator
🔹 CurrencyDecimals
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 | 2 |
When displaying and parsing Currency values, the value of this attribute
determines the maximum number of decimal places allowed after the
DecimalSeparator
.
🔹 DateFormat
Data Type | Values | Default |
---|---|---|
Enum | YMD , MDY , DMY | YMD |
When displaying and parsing Date values, this field determines the expected
format for all Date fields. The following DateFormat
options are allowed:
YMD
- All dates should be formatted as YYYY-MM-DD.MDY
- All dates should be formatted as MM-DD-YYYY.DMY
- All dates should be formatted as DD-MM-YYYY.
Note that the character which separates the individual month, day, and year
portions of the date is configurable via the
DateSeparator
attribute.
🔹 DateSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | - |
When displaying and parsing Date values, this attribute determines the character used to separate the individual month, day, and year portions of a date.
🔹 DecimalSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | . |
When displaying and parsing Currency or Decimal numeric values, this attribute determines the character used to separate the fractional part from the whole.
🔹 StrictDP
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 , | false |
If the value of this attribute is true
, then the SCE will strictly verify the
number of decimal places allowed for currency input values. Thus, if the calling
application sends in a request with a currency amount of 1000.005
, the SCE
will return an error code.
If the value of this attribute is false
, then currency values sent in with an
invalid number of decimal places will be rounded to the correct number of
decimal places by the SCE (using five/four rounding), and a warning message with
this information will be returned with the response.
🔹 ThousandSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | , |
When displaying numeric values, this attribute determines the character used to separate the thousands places from the hundreds. Note that when parsing numeric values, the value of this attribute is ignored.
🟥 <IntRate>
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | [-99.999...600] |
The element data will determine the annual interest rate used for the loan. (Split rate loans require use of the setup files.)
The interest rate should be expressed as an annual percentage. For example, a loan computed with an interest rate of 6.125% would be specified as:
<IntRate>6.125</IntRate>
Attributes: None
🟦 <IntStartDate>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= <LoanDate> and <= <PmtDate> | <LoanDate> |
This element contains the date on which interest begins to accrue on the loan’s
principal balance. If this element is not specified, then the interest start
date is defaulted to be the <LoanDate>
. Also note that the
interest start date must be equal to the loan date when computing a construction
loan. The interest start date (when specified) must be on or after the loan
date, as well as on or before the <PmtDate>
. All dates must be in
the form of YYYY-MM-DD, and be 10 characters long. Hence, an interest start date
April 27, 2024 would be specified as:
<IntStartDate>2024-04-27</IntStartDate>
Attributes: None
🟥 <LoanDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= 1900-01-01 |
This element determines when interest begins to accrue. If interest begins on a
later date, use the <IntStartDate>
element to define the date
on which interest begins to accrue.
This element contains the date on which the loan amount is disbursed and interest begins to accrue. All dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a loan date of March 4, 2024 would be specified as:
<LoanDate>2024-03-04</LoanDate>
Attributes: None
🟦 <Mortgage_Insurance>
Element Type | Data Type | Values | Default |
---|---|---|---|
Parent | - | - | No mortgage insurance |
The <Mortgage_Insurance>
element determines if this loan includes one of the
supported types of mortgage insurance (MI) - PMI or FHA. This element contains
child elements which further specify mortgage insurance options.
NOTE: Mortgage insurance is only supported on equal, balloon, and interest only loan builder requests at this time.
Attributes:
🔹CashDown
,🔹LoanAmt
,🔸PropertyValue
,🔹Type
🔹 CashDown
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
The CashDown
attribute represents a cash down payment made at closing. If
specified and greater than zero, this amount will be deducted from the principal
balance. If not specified, the cash down payment will default to zero.
🔹 LoanAmt
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | Principal balance |
The LoanAmt
attribute represents the amount by which the PMI rates are
multiplied to produce a level PMI premium. If not specified, then the principal
balance will be used to compute the annual premium.
🔹 PropertyValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
This attribute’s value represents the appraised property value, and will be used in the calculation of the loan to value ratio.
🔹 Type
Data Type | Values | Default |
---|---|---|
Enum | pmi , fha | pmi |
This attribute determines the type of mortgage insurance to include with the
loan. If the Type
attribute is set to FHA
, a different MI premium is
computed every twelve months based upon the average outstanding principal
balance during that same term. The MI calculation adheres strictly to the HUD
regulation.
🟥 <Mortgage_Insurance>
→<MI_Rate>[]
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | >= 0 |
The value of this element specifies the cost of mortgage insurance per $100 of
the loan amount. Note that there may be more than one <MI_Rate>
element
defined in an XML loan request (see the Switch
attribute
below).
As an example, a loan computed with a MI rate of $1.50 per $100 would be
specified as <MI_Rate>1.50</MI_Rate>
.
Attributes:
🔸Switch
🔹 Switch
Data Type | Values | Default |
---|---|---|
Integer | > 0 | 0 |
This optional attribute defines the payment number beyond which the associated MI rate will apply. If not specified, the value will default to zero.
Thus, if there is only a single MI rate, one may omit this attribute. Single rate example (use a rate of $1.50 for the entire term of MI coverage):
<MI_Rate>1.50</MI_Rate>
Multiple rate example (use a rate of $1.50 for the first 10 years, with a rate of $0.20 for coverage beyond 10 years):
<MI_Rate>1.50</MI_Rate>
<MI_Rate Switch="120">0.20</MI_Rate>
🟦 <Mortgage_Insurance>
→<Periodic>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Integer | >= 0 | 0 |
The value of this element represents the term beyond which MI is no longer
included. As an example, if mortgage insurance must be removed after the 180th
payment, then the calling application should specify <Periodic>180</Periodic>
in the XML loan request. 0
means no term removal is in effect.
🔹 DropLTV
Data Type | Values | Default |
---|---|---|
Decimal | >= 0 and <= 100 | 0 |
The value of this attribute determines the loan to value ratio at which MI
should be removed, and is expressed as a percentage. For example, if you wish to
automatically drop MI when the loan to value ratio first equals or falls below
78%, then you would specify DropLTV="78.0"
.
🔹 WarnLTV
Data Type | Values | Default |
---|---|---|
Decimal | >= 0 and <= 100 | 0 |
The value of this attribute determines the loan to value ratio at which a
warning should be issued, and is expressed as a percentage of LTV (loan to
value). For example,if you wish to know when the loan to value ratio first
equals or falls below 80%, then you would specify WarnLTV="80.0"
.
🟦 <Mortgage_Insurance>
→<UpFront>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Decimal | >= 0 | 0 |
This element determines the up front fee for mortgage insurance, as disclosed in
the <PMI_Fee>
element in the results. If this element is not
specified, no up front fee will be computed. Note that ZOMP (zero option monthly
premium) products do not have an up front fee, which means that this element can
be omitted or set to zero.
The following attributes define how the fee is computed and disclosed.
🔹 Paid
Data Type | Values | Default |
---|---|---|
Enum | Financed , AtClosing , ByLender | AtClosing |
If the value of this attribute is set to Financed,
then the computed up front
fee will be added to the principal balance and the finance charge. A value of
AtClosing
will cause the value of the fee to be added to the finance charge
alone. Finally, a value of ByLender
means that the up front fee is to be paid by
the lender; hence, the value of the fee is a Pocket Fee that is not added to
either the principal balance nor the finance charge.
🔹 Units
Data Type | Values | Default |
---|---|---|
Enum | Months , Points , Years | Months |
If the Units attribute is set to Months
, the value of the
<UpFront>
element represents the number of periodic MI premiums to
be paid at closing.
If the Units attribute is set to Years
, the value of the
<UpFront>
element represents the number of annual MI premiums to
be paid at closing.
Many single premium products define the up front fee as a number of years of MI to be paid up front.
Finally, if the Units attribute is set to Points
, the value of the
<UpFront>
element represents the percentage of principal to be
paid up front. As of October 3, 2011, FHA loans use points.
🟦 <OddDaysPrepaid>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No odd days prepaid interest |
If odd days interest should be treated as a prepaid finance charge or added to the first payment, then include this empty element in the request. The attributes of this element determine how odd days interest is computed and handled.
Attributes:
🔹AccrualCode
,🔹AddToPmt
,🔹AddToPrin
,🔹AnchorDate
,🔹ForceUnitPeriod
,🔹NoCap
,🔹UseDailyCost
,🔹UseNegODI
🔹 AccrualCode
Data Type | Values | Default |
---|---|---|
Enum | See below | 220 |
The accrual code defines how the odd days interest is computed.
Note that accrual code 250
("Variable Days Per Year") defines the basis divisor
days to be equal to 12 multiplied by the number of days in the month of the date
on which interest begins to accrue. Thus, if the interest start date falls in
November, then the number of basis days is 360. If the interest start date falls
in a month with 31 days, then the number of basis days is 372. For an interest
start date in February, the number of basis days will either be 336 or 348,
depending upon whether or not it is a leap year.
AccrualCode | Description |
---|---|
204 | Unit period simple w/ true 360 calendar and 360 day divisor |
205 | Unit period simple w/ true 360 calendar and 365 day divisor |
210 | Actual / 360 simple |
211 | True 365 / 360 simple |
220 | Actual / 365 simple |
221 | True 365 / 365 simple |
230 | Actual / Actual simple |
231 | Midnight 366 simple |
250 | Unit period simple w/ variable DPY divisor |
🔹 AddToPmt
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application wants the odd days interest to be added to the first
payment, then set the value of this attribute to true
. A value of false
indicates that the odd days interest will be treated as a prepaid fee.
🔹 AddToPrin
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If any odd days interest should be treated as a financed prepaid fee, then set
the value of this attribute to true
. Note that if both
AddToPmt
and AddToPrin
are set to true
, then a warning
message will be returned by the SCEX and the value of AddToPrin
will be set to
false
.
🔹 AnchorDate
Data Type | Values | Default |
---|---|---|
Enum | BackUnitPeriod , BackDaysPerPeriod | BackUnitPeriod |
The computed number of odd days is the number of days between the loan date and the anchor date. This attribute determines how to arrive at the anchor date.
BackUnitPeriod
- The anchor date is one unit period prior to the specified first payment date.BackDaysPerPeriod
- The anchor date is the number of days per period prior to the first payment date.
Please note that for both of these methods, the period used will be that associated with the payment stream in which the first payment occurs.
🔹 ForceUnitPeriod
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the loan's interest accrual is unit period, this attribute forces the period
to the first payment to be 1/12 (or 1/(PmtsPerYear) in general). Without this
attribute an accrual code of 202
(Unit Period /365) would use a factor of
Days/365 rather than the expected 1/12.
🔹 NoCap
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
When an odd days interest fee is present and financed, the value of this
attribute determines if the ODI fee is added to the principal balance for the
purposes of computing the ODI fee (e.g. if it is capitalized). If this value is
true
, the ODI is computed on the true principal balance less the ODI; false
means "compute ODI on the true principal balance.
🔹 UseDailyCost
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the total odd days prepaid fee is computed by first generating a rounded (to
the nearest penny) daily cost and then multiplying this value by the computed
number of odd days, then set the value of this property to true
.
A value of false
means that the daily cost is left unrounded, and the total
prepaid fee is rounded after the computation is complete.
🔹 UseNegODI
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If there are negative odd days in the loan, then the value of this attribute
determines if a negative odd days interest fee is computed. If the value of this
attribute is false
, then negative odd days fees are not allowed, the SCEX will
return a value of zero in this situation, and the computed payment will be
adjusted to take into account the negative odd days. A value of true
will
return a negative odd days interest fee (in effect, it then becomes an odd days
interest credit) when there are negative odd days in a loan.
🟥 <PmtDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= <LoanDate> and >= <IntStartDate> |
This element contains the date on which the first payment of the loan is made, and must be on or after the loan date.
All dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a first payment date of April 4, 2024 would be specified as:
<PmtDate>2005-04-04</PmtDate>
Attributes: None
🟥 <Proceeds>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | >= 0 |
The proceeds specifies the amount the customer has frequested to borrow, ignoring every other financed quantity. Proceeds of up to one billion dollars are accepted.
The amount should be expressed as a number. For example, a request including
<Proceeds>10000.00</Proceeds>
indicates an amount requested of 10,000.
Attributes: None
🟦 <Protection>
Element Type | Data Type | Values | Default |
---|---|---|---|
Parent | - | - | No protection included |
The <Protection>
element is used to specify debt protection coverages such as
life, disability, involuntary unemployment, personal property and debt
cancellation. Each type of coverage is specified by its own sub-element, along
with the borrower birthdays. The following attributes apply to this element:
Attributes:
🔹FinanceProt
,🔹LineOfCredit
,🔹Mandatory
,🔹ShowBorrowerInfo
,🔹ShowCaps
🔹 FinanceProt
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
If the computed premiums for single premium debt protection products should be
financed along with the proceeds, then this attribute should be set to true
(which is the default value if not specified). A value of false
indicates that
the computed premiums will not be financed with the proceeds, and hence will be
paid out of pocket by the borrower. Note that this applies to single premium
insurance products only!
🔹 LineOfCredit
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this is an account using TruStage’s MOB insurance, and if this loan is a line
of credit where product term caps should be ignored, then set this attribute to
true
. Otherwise, leave this attribute unspecified or set it to false
.
🔹 Mandatory
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the value of this attribute is set to true
, then any computed payment
protection premium or fee will be considered a mandatory fee which will be
included as a part of the Regulation Z Finance Charge, and hence affect the
Regulation Z APR. In this case, the <Protection>
element in the response will contain a
Mandatory
="true"
attribute indicating this.
If the Mandatory attribute is set to false
, the loan will treat any premiums /
fees as normal.
🔹 ShowBorrowerInfo
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application would like to have data returned for each specified
borrower instead of a single <CovTerm>
element, then
set the value of this attribute to true
. Otherwise, leave this attribute
unspecified or set it to false
. See the <Borrower>
and <CovTerm>
elements defined in the response for
more information.
🔹 ShowCaps
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application would like to have cap information (e.g., maximum
terms, coverage amounts, ages, etc.) returned for each product offered, set the
value of this attribute to true
. Otherwise, leave this attribute unspecified
or set it to false
. See the <Caps>
element for more
information.
🟦 <Protection>
→<Birthday1>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= 1900-01-01 | No birthday specified |
This element contains the date of birth for the primary borrower. All dates must
be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a birthday of
April 9, 1972 would be specified as <Birthday1>1972-04-09</Birthday1>
. Note
that this element must be set if the Covers attribute of any of the four debt
coverage elements is set to borrower1
or both
.
Attributes: None
🟦 <Protection>
→<Birthday2>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= 1900-01-01 | No birthday specified |
This element contains the date of birth of the secondary borrower. All dates
must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a birthday
of May 21, 1969 would be specified as <Birthday2>1969-05-21</Birthday2>
.
Attributes: None
🟦 <Protection>
→<Disability>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No disability coverage |
The <Disability>
element determines what type of disability coverage is
requested for the loan. It also serves double duty as the debt cancellation
coverage element, for accounts set up to compute debt cancellation using the
disability tables. The element itself is empty, with all information needed for
disability coverage request being specified in the following attributes:
🔹 Benefit
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in the appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <Disability>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will assure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user specified coverage terms, then this attribute will be ignored.
🔹 Table
Data Type | Values | Default |
---|---|---|
Integer | [0...19] | 0 |
If the specified account has been set up with multiple disability or debt
cancellation plans, then this attribute determines which plan number will be
used. If no table number is specified, the first table (table zero) will be
used. To find out the number of available plans, use the
<AhSetCount>
element in the
<inINPUT_TOOL>
response.
🟦 <Protection>
→<Life>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No life coverage |
The <Life>
element determines what type of life coverage is requested for the
loan. The element itself is empty, with all information needed for a life
coverage request being specified in the following attributes:
Attributes:
🔹Coverage
,🔹Covers
,🔹CovTerm
,🔹Dismemberment
,🔹Method
,🔹UseLevelRates
🔹 Coverage
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
If you wish to specify a coverage amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum coverage amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified coverage amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in the appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <life>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will assure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user specified coverage terms, then this attribute will be ignored.
🔹 Dismemberment
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the specified account has been set up to offer optional dismemberment coverage to be offered with life coverage (using an increased rate in the premium calculation), then this attribute determines whether or not this additional coverage will be provided.
🔹 Method
Data Type | Values | Default |
---|---|---|
Enum | default , net , gross | default |
If the specified account has been set up to offer single premium life coverage
by default, net or gross coverage, then this attribute can be used to specify
which type of coverage to compute with the loan. For all other accounts, the
default value of default
should be used (or simply do not specify the attribute
at all).
🔹 UseLevelRates
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the account specified has been set up to offer single premium credit life
using level rates instead of the normal decreasing rates, then set this
attribute’s value to true
. Otherwise, use the default value of false
.
🟦 <Protection>
→<Unemployment>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No unemployment coverage |
The <Unemployment>
element determines what type of involuntary unemployment
coverage is requested for the loan. The element itself is empty, with all
information needed for a coverage request being specified in the following
attributes:
🔹 Benefit
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in the appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <Unemployment>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will ensure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user-specified coverage terms, then this attribute will be ignored.
🟥 <Term>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | [2...600] * |
The value of this element indicates the number of payments in the loan.
The term must be entered as a number of payments, not a duration of time.
Therefore, <Term>72</Term>
represents 72 payments, not 72 months (or years).
This term is intimately tied to the PPY
(# of payments per year)
attribute of the root element. If the value of the PPY
attribute
was 24
(semimonthly) for this loan, the 72 payments would mean that the
duration of the loan is three years, since years = number of payments / payments
per year = 72 / 24 = 3.
* In general, the term can be no greater than 50 years, so the maximum entry would be 50 *
PPY
. Weekly loans, however, are limited to 30 years, or 1,560 payments.
Attributes: None
🟦 <TILARESPA2015>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No TILA RESPA disclosures |
The presence or absence of this element determines whether or not the TILA RESPA data table is present in the output.
If this element is present in the loan request, then the SCEX will return data for the Integrated Mortgage Disclosures under the Real Estate Settlement Procedures Act (Regulation X) and the Truth In Lending Act (Regulation Z) rule, which is required as of August 1st, 2015. If this element is not present, then the TILA RESPA outputs will not be generated.
Attributes: None
🟦 <TotalDown>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
This optional element represents the total down payment that the borrower has applied to reduce the requested proceeds. It may consist of a cash down payment, net trade-in value, or rebate. You only need to specify a total down payment if the loan needs to disclose a total sale price. Typical examples of these loan types are auto and boat loans.
To generate a total down payment, please see the chapter detailing the SCEX’s Auto Prompts module.
Attributes: None
Interest Only Loan - Response
Please see the Legend to understand the conventions used to document each element and attribute. Note that for responses, the XML elements are documented in the order that they appear in the response.
🟥 <outINTEREST_ONLY>
Element Type | Data Type |
---|---|
Parent | - |
This element is the root element of the response, and contains all of the relevant outputs.
Attributes:
🔹CountryName
🔹 CountryName
Data Type | Values | Default |
---|---|---|
Text | See table | United States of America |
If a valid Country
code was specified as an
attribute of the input module element, the full name of the country associated
with the specified Country code will be reported in this attribute.
🟥 <Results>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which describe the success or failure of the calculation, any warning or error messages, and the most important numerical results for the query.
<Results>
<Description>Successful Calculation</Description>
<First>55.21</First>
<Final>10055.21</Final>
</Results>
Attributes: None
🟥 <Results>
→<Description>
Element Type | Data Type |
---|---|
Data | Text |
If the calculation was completed successfully, then this element will contain
the value Successful Calculation
. Otherwise, this element will contain a
description of the problem encountered during the attempted computation.
Attributes: None
🟦 <Results>
→<XMLDetail>[]
Element Type | Data Type | Default |
---|---|---|
Data | Text | NULL |
The <XMLDetail>
elements are messages passed back to the calling application
which detail the status of the XML request. If the SCEX issues any warnings
regarding unrecognized elements or attributes, then each warning message will be
displayed in an <XMLDetail>
element.
Attributes: None
🟥 <Results>
→<First>
Element Type | Data Type |
---|---|
Data | Currency |
The computed amount for the first interest only payment for the requested loan.
To access the other payments in the payment stream, see the <Final>
element or consult the <AmTable>
element.
Attributes: None
🟥 <Results>
→<Final>
Element Type | Data Type |
---|---|
Data | Currency |
The final interest and principal payment in the loan's payment stream. To access
the other payments in the payment stream, see the <First>
element or
consult the <AmTable>
element.
Attributes: None
🟥 <FedBox>
Element Type | Data Type |
---|---|
Parent | - |
Some of the most important compliance related outputs are organized into the
<FedBox>
disclosures.
<FedBox>
<AmtFin>10000.00</AmtFin>
<FinChg>324.12</FinChg>
<TotPmts>10324.12</TotPmts>
<RegZAPR Type="Actuarial">6.482</RegZAPR>
</FedBox>
Attributes: None
🟥 <FedBox>
→<AmtFin>
Element Type | Data Type |
---|---|
Data | Currency |
The Regulation Z Amount Financed, which is defined as the amount of credit provided to you or on your behalf.
Attributes: None
🟥 <FedBox>
→<FinChg>
Element Type | Data Type |
---|---|
Data | Currency |
This element contains the Regulation Z Finance Charge, described as the dollar amount the credit extension will cost you.
Attributes: None
🟥 <FedBox>
→<TotPmts>
Element Type | Data Type |
---|---|
Data | Currency |
The amount which the borrower will have paid when the borrower has made all scheduled payments.
Attributes: None
🟦 <FedBox>
→<TotalSalePrice>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | <TotPmts> |
The sum of the total of payments plus the total down payment. Please note that
if no <TotalDown>
element was specified in the
request, then this element will not be present.
Attributes: None
🟥 <FedBox>
→<RegZAPR>
Element Type | Data Type |
---|---|
Data | Decimal |
The Regulation Z APR, which is the cost of the extension of credit expressed as a yearly rate. The Reg. Z APR element has a few attributes, described below:
Attributes:
🔹Max
,🔹MaxExceeded
,🔸Type
🔹 Max
Data Type | Default |
---|---|
Decimal | n/a |
This attribute specifies the maximum APR as configured in the account's setup files. If no maximum APR has been specified, then this attribute will not be present. The value of this attribute should be displayed as a percentage. As an example, for Max="36.000", you would disclose a maximum APR of 36.000%.
🔹 MaxExceeded
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
If a maximum APR is configured in the account's setup files, then the value of
this attribute indicates whether or not the current loan exceeds the maximum
allowed APR. As an example, if the maximum APR has been set to 36% and the APR
for the returned loan was 37.125%, the <RegZAPR>
element would be:
<RegZAPR Type="Actuarial" Max="36.000" MaxExceeded="true">37.125</RegZAPR>
🔸 Type
Values | |
---|---|
Enum | Actuarial , USRule , EU_APR , Canadian_APR , XIRR , XIRR360 , IRR , YieldIRR , Open_End |
This attribute specifies the method used to compute the reported APR: Actuarial or US Rule The method used is dictated by the setup files for the given account, but may be overridden in the XML input query.
Actuarial
- Governed by Appendix J to Regulation Z. Default US APR.USRule
- Used by large banks to mirror loan amortization.EU_APR
- Default European Union APR.Canadian_APR
- Default APR for Canada.XIRR
- Extended Internal Rate of Return (same as excel function).XIRR360
-XIRR
using a 360 divisor rather than a 365 divisor.YieldIRR
- Canadian mortgages may compute periodic interest using a fractional power of a periodic yield.Open_End
- Simply returns the interest rate.
🟦 <FedBox>
—><MAPR>
Element Type | Data Type |
---|---|
Data | Decimal |
If the military APR has been requested, then this element will be included in the output. The value of the element is the military APR, and the element has a few attributes, described below:
Attributes:
🔸Advance
,🔹Max
,🔹MaxExceeded
🔸 Advance
Data Type |
---|
Currency |
This attribute is the equivalent of the Amount Financed for the Military APR. Specifically, it is the principal balance less any MAPR fees, debt protection, etc.
🔹 Max
Data Type | Default |
---|---|
Decimal | 36.0 |
This attribute specifies the maximum Military APR as specified in the input XML
(see MAPR_Max
). If not specified, a default value
of 36% is assumed. The value of this attribute should be displayed as a
percentage. As an example, for Max="36.0"
, you would disclose a maximum
Military APR of 36.0%.
🔹 MaxExceeded
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
The value of this attribute 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>
element would be:
<MAPR Advance="1350.00" Max="36.000" MaxExceeded="true">37.125</MAPR>
🟦 <TILARESPA2015>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which are of interest to fulfilling the
2015 TILA RESPA rule. It will only be present if the
<TILARESPA2015>
element is present in the
request.
Sample TILARESPA2015 output:
<TILARESPA2015>
<TotalLoanCosts>0</TotalLoanCosts>
<CD_TotPmts>27311.07</CD_TotPmts>
<In5Years PaidTotal="27311" PaidPrincipal="25000"/>
<TIP>9.244</TIP>
<MaxPnIPmt Date="2012-11-01">1636.65</MaxPnIPmt>
<MinRate Idx="1">5.651</MinRate>
<MaxRate Idx="1">5.651</MaxRate>
<ProjectedPayments NumCols="3">
<PPCol Num="1" Title="Year 1">
<Years Start="1" End="1"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
<PPCol Num="2" Title="Year 2">
<Years Start="2" End="2"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
<PPCol Num="3" Title="Year 3">
<Years Start="3" End="3"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
</ProjectedPayments>
</TILARESPA2015>
Attributes: None
🟦 <TILARESPA2015>
→<LoanCost>[]
Element Type | Data Type |
---|---|
Data | Currency |
For every <Fee>
element present in the input which has
its IsLoanCost
attribute 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>
input element), there will be a
corresponding <LoanCost>
element. The value of this element will be the
numerical value of the fee, rounded to the nearest dollar.
🔹 In5Years
Data Type | Default |
---|---|
Currency | <LoanCost> |
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 attribute will be present and disclose the portion of this loan cost that is accrued during the first five years.
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
This attribute will hold the same value as the attribute of the same name for
the <Fee>
element. It is recommended that each fee
have a unique Name
for identification purposes.
🟥 <TILARESPA2015>
→<TotalLoanCosts>
Element Type | Data Type |
---|---|
Data | Currency |
This element holds the sum of all borrower paid loan costs. Since all
<LoanCost>
element values are rounded dollar amounts, the value of this
element will also be a rounded dollar amount.
Attributes: None
🟥 <TILARESPA2015>
→<CD_TotPmts>
Element Type | Data Type |
---|---|
Data | Currency |
This element holds 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 will be the numerical value of the sum.
Attributes: None
🟥 <TILARESPA2015>
→<In5Years>
Element Type | Data Type |
---|---|
Empty | - |
This element is empty, with all important values required for the new "In 5 Years" section returned in the following two attributes of this element.
Attributes:
🔸PaidPrincipal
,🔸PaidTotal
🔸 PaidPrincipal
Data Type |
---|
Currency |
This attribute 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.
🔸 PaidTotal
Data Type |
---|
Currency |
This attribute 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.
🟥 <TILARESPA2015>
→<TIP>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the total interest percentage, rounded to three or fewer decimal places, as required.
Attributes: None
🟥 <TILARESPA2015>
→<MaxPnIPmt>
Element Type | Data Type |
---|---|
Data | Currency |
The value of this element holds the maximum scheduled principal and interest payment during the term of the loan.
Attributes: 🔸
Date
🔸 Date
Data Type |
---|
Date |
This attribute contains 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. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🟥 <TILARESPA2015>
→<MinRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the minimum possible interest rate applied during the term of the loan.
Attributes: 🔸
Idx
🔸 Idx
Data Type |
---|
Integer |
This attribute contains the payment number for which the minimum rate is first applicable.
🟥 <TILARESPA2015>
→<MaxRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the maximum possible interest rate applied during the term of the loan.
Attributes: 🔸
Idx
🔸 Idx
Data Type |
---|
Integer |
This attribute contains the payment number for which the maximum rate is first applicable.
🟥 <TILARESPA2015>
→<ProjectedPayments>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which are of interest to filling the
Projected Payments table. It will only be present if the <TILARESPA2015>
element is present in the XML request for a supported loan type.
Attributes: 🔸
NumCols
🔸 NumCols
Data Type | Values |
---|---|
Integer | [1...4] |
This attribute will hold the number of columns which must be present in the Projected Payments table. It will be a numeric value from 1 to 4.
🟥 <ProjectedPayments>
→<PPCol>[]
Element Type | Data Type |
---|---|
Parent | - |
For every column required in the Projected Payments table, there will be an
associated <PPCol>
element. This element is a parent to child elements which
contain data associated with a single column of the table.
🔸 Num
Data Type | Values |
---|---|
Integer | [1...4] |
This attribute will hold the number of the column to which the following data applies.
🔸 Title
Data Type |
---|
Text |
The value of this attribute 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.
🟥 <ProjectedPayments>
→<PPCol>
→<Years>
Element Type | Data Type |
---|---|
Empty | - |
The attributes of this element hold the beginning and ending year numbers for which this column data applies. The element itself is empty.
🔸 End
Data Type |
---|
Integer |
The ending year associated with this column's data.
🔸 Start
Data Type |
---|
Integer |
The beginning year associated with this column's data.
🟥 <ProjectedPayments>
→<PPCol>
→<PnIPmt>
Element Type | Data Type |
---|---|
Empty | - |
This empty element has several attributes which describe the principal and interest payments associated with this column.
🔸 Balloon
Data Type | Values |
---|---|
Boolean | true , false |
If any of the payments associated with this column are balloon payments (e.g.
isolated payments that are more than twice the value of a regular periodic
payment), then the value of this attribute will be true
.
🔸 IntOnly
Data Type | Values |
---|---|
Enum | all , some , none |
none
- No payments associated with the column are Interest Onlysome
- Some, but not all, of the payments associated with the column are Interest Only.all
- All of the payments associated with the column are Interest Only.
Note that for the purposes of this attribute, 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.
🔸 Max
Data Type |
---|
Currency |
This attribute holds the maximum principal and interest payment for this column.
If this value is not the same as the value of the Min
attribute, then a range of rounded payments must be displayed. If the values are
the same, then only a single value needs to be disclosed.
🔸 Min
Data Type |
---|
Currency |
This attribute holds the minimum principal and interest payment for this column.
🟥 <ProjectedPayments>
→<PPCol>
→<MIPmt>
Element Type | Data Type |
---|---|
Data | Currency |
The value of this element 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.
Attributes: None
🟥 <ProjectedPayments>
→<PPCol>
→<TotalPmt>
Element Type | Data Type |
---|---|
Empty | - |
This empty element has two attributes which describe the estimated total payment or range of payments associated with this column. Note that this value does not include any estimated escrow, as the SCEX does not support escrow calculations. The calling application will need to increase these values by the estimated escrow amounts if any are present.
🔸 Max
Data Type |
---|
Currency |
This attribute holds the maximum estimated total payment for this column. If
this value is not the same as the value of the Min
attribute,
then a range of rounded payments must be displayed. If the values are the same,
then only a single value needs to be disclosed.
🔸 Min
Data Type |
---|
Currency |
This attribute holds the minimum estimated total payment for this column.
🟥 <Moneys>
Element Type | Data Type |
---|---|
Parent | - |
This element groups together those other major cash amounts not disclosed under
the <FedBox>
element, such as the principal balance, interest
change, fee amounts and protection premiums.
<Moneys>
<Principal>10120.00</Principal>
<Interest>1635.80</Interest>
<OddDaysPrepaid OddDayCount="15" DailyCost="2.77">41.55</OddDaysPrepaid>
<FinFees>120.00</FinFees>
<FinChgFees>91.55</FinChgFees>
<PocketFees>65.00</PocketFees>
<MAPRFees>201.55</MAPRFees>
<Protection Category="None" PerPmt="0.00" PerDay="0.00">0.00</Protection>
<Fee Name="FinFee">60.00</Fee>
<Fee Name="Prepaid Fee">50.00</Fee>
</Moneys>
Attributes: None
🟥 <Moneys>
→<Principal>
Element Type | Data Type |
---|---|
Data | Currency |
The principal balance is the amount on which interest is accrued. The principal balance consists of the amount requested by the borrower, any fees which are financed, as well as financed protection premiums.
Attributes: None
🟥 <Moneys>
→<Interest>
Element Type | Data Type |
---|---|
Data | Currency |
This element contains the total interest accrued during the term of the loan, assuming the borrower will make all scheduled payments.
Attributes: None
🟦 <Moneys>
→<ConstructInterest>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If the requested loan is a construction loan with a permanent loan attached and the account specified is set up to compute construction loans via the "Simple" method, then this element 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 <Interest>
element, and
both loans reflected in a single, combined amortization schedule.
If the requested loan was not a construction loan, or if construction loans have not been set up for the given account, then this element will not appear in the results.
Attributes: None
🟦 <Moneys>
→<OddDaysPrepaid>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element, if present, holds the total odd days prepaid finance charge. If no odd days prepaid fee was requested, then this element will not be present in the output.
Attributes:
🔹AddToPmt
,🔹DailyCost
,🔸OddDayCount
,🔹OddMonths
🔹 AddToPmt
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
If the odd days interest has been added to the first payment, this attribute
will be present in the output with a value of true
. If the odd days interest has
been treated as a prepaid finance charge, then this attribute will not be
present and a default value of false
should be assumed.
🔹 DailyCost
Data Type | Default |
---|---|
Currency | n/a |
If the odd days prepaid fee is computed using a rounded daily cost, then the value of this attribute will hold that value. If the odd days prepaid is not computed using a rounded daily cost, then this attribute will not be present.
🔸 OddDayCount
Data Type |
---|
Integer |
This attribute holds the number of odd days computed by the SCE for the requested loan.
🔹 OddMonths
Data Type | Default |
---|---|
Integer | n/a |
This attribute holds the number of odd months computed by the SCE for the
requested loan when using odd days accrual method 250
.
🟦 <Moneys>
→<MinInterestPmt>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | n/a |
The <MinInterestPmt>
element will only appear if the
Metavante
attribute has been set to true
,
and even then only under certain loan conditions. The element itself contains no
data, as all required data is found in the following two attributes:
🔸 Index
Data Type |
---|
Integer |
The Index
attribute specifies the payment number in the payment stream at which
the minimum interest payment is achieved.
🔸 Pmt
Data Type |
---|
Currency |
The interest payment amount for the given Index
.
🟦 <Moneys>
→<MaxInterestPmt>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | n/a |
The <MaxInterestPmt>
element will only appear if the
Metavante
attribute has been set to true
,
and even then only under certain loan conditions. The element itself contains no
data, as all required data is found in the following two attributes:
🔸 Index
Data Type |
---|
Integer |
The Index
attribute specifies the payment number in the payment stream at which
the maximum interest payment is achieved.
🔸 Pmt
Data Type |
---|
Currency |
The interest payment amount for the given Index
.
🟦 <Moneys>
→<FinFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element contains the sum of all financed fees requested for the loan. If no financed fees were requested, then this element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<FinChgFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element contains the sum of all APR affecting fees (those fees which are
added to the <FinChg>
) requested for the loan. If no APR affecting
fees were requested, then this element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<PocketFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element 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 element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<MAPRFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element 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.
Attributes: None
🟦 <Moneys>
→<Protection>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
Contains the total cost of all protection plans included with the computed loan.
For the individual plan costs, see the <ProtectionInfo>
elements described
below. The attributes of this element are as follows:
Attributes:
🔸Category
,🔹IsDp
,🔹Mandatory
,🔸PerDay
,🔸PerPmt
🔸 Category
Data Type | Values |
---|---|
Enum | See below |
This attribute specifies the category under which the computed loan protection falls. The possible values for this attribute are:
None
- No protection catetory has been identified.SP
- Single Premium protection financed at loan closing.MOB
- Monthly outstanding balance (paid on Payments).TrueMOB
- Premiums paid monthly on a date specified in the setup files.PaidSP
- Single premium protection paid at closing.ConstantMOB
- CMOB is a product paid with payments and a constant amount.AddToPmtMOB
- MOB insurance added to a constant P&I payment, resulting in variable payments.
🔹 IsDp
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
This attribute indicates if the specified account’s protection is set up as debt
protection. If this attribute 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).
🔹 Mandatory
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
This attribute should only appear in the response if the value of the attribute
is true
. If this attribute does not appear in the output, then the value of
this attribute should default to false
. If the value of the Mandatory
attribute is true
, then the total premium/fee amount for all insurance/debt
protection products has been treated as a part of the Regulation Z Finance
Charge, and hence will affect the Reg. Z APR.
🔸 PerDay
Data Type |
---|
Currency |
Contains the cost of all loan protection products expressed as dollars per day.
🔸 PerPmt
Data Type |
---|
Currency |
Contains the cost of all loan protection products expressed as dollars per payment.
🟦 <Moneys>
→<MinIntChgAdj>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a minimum interest charge is configured in the account’s setup files and the final payment was adjusted to meet this minimum interest charge, then this element will be returned in the response and will contain the value of the minimum finance charge adjustment.
Attributes: None
🟦 <Moneys>
→<MinFinChgAdj>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a minimum finance charge is configured in the account’s setup files and the final payment was adjusted to meet this minimum finance charge, then this element will be returned in the response and will contain the value of the minimum finance charge adjustment.
Attributes: None
🟦 <Moneys>
→<Fee>[]
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
For each non-zero fee requested in the loan calculation, there will be a <Fee>
element containing the computed fee amount.
Attributes:
🔹Name
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
Contains the value of the Name attribute of the corresponding
<Fee>
element from the request. If no such attribute is
present in the <Fee>
element, then none will be present
in the response element.
🟦 <Moneys>
→<PMI_Fee>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If PMI has been requested on the loan, and if a number of up front payments have been specified, then this element will hold the total PMI fee for all upfront payments.
Attributes: None
🟥 <Accrual>
Element Type | Data Type |
---|---|
Parent | - |
This element groups together interest accrual information, such as the accrual method used, days to the first payment, and the loan’s maturity date.
<Accrual>
<Method>Actual/365 US Rule</Method>
<Days1Pmt DayCount="Actual">74</Days1Pmt>
<Maturity>2015-07-01</Maturity>
</Accrual>
Attributes: None
🟥 <Accrual>
→<Method>
Element Type | Data Type |
---|---|
Data | Text |
The <Method>
element contains a textual description of the interest accrual
method used to compute the loan (e.g. "Unit Period 365 Simple").
Attributes: None
🟥 <Accrual>
→<Days1Pmt>
Element Type | Data Type |
---|---|
Data | Integer |
This element contains the number of days to the first payment, computed by one of two methods as specified in this element’s sole attribute.
Attributes:
🔸DayCount
🔸 DayCount
Data Type | Values |
---|---|
Enum | Actual , True360 |
Actual
- The actual number of days between these two dates are used.31
would be the day count for the 2024-01-01 to 2024-02-01.True360
- All months have 30 days.30
would be the day count for 2024-01-01 to 2024-02-01.
🟥 <Accrual>
→<Maturity>
(YYYY-MM-DD)
Element Type | Data Type |
---|---|
Data | Date |
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. Hence, a maturity date of February 15, 2020 would be specified as
<Maturity>2020-02-15</Maturity>
.
Attributes: None
🟦 <PMI>
Element Type | Data Type |
---|---|
Empty | - |
The PMI element 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
<Payment>
element, the <PmtStream>
element(s), the
<TotPmts>
element, nor the Pmt
attribute of the
<AmLine>
element.
<PMI Rate="1.00" LTV="100.00" PremiumPerYear="964.08" PremiumPerPeriod="80.34"/>
The element itself contains no data, as all associated PMI data is found in the following attributes:
Attributes:
🔹IndexToRemove
,🔹IndexToWarn
,🔸LTV
,🔸PremiumPerPeriod
,🔸PremiumPerYear
,🔸Rate
🔹 IndexToRemove
Data Type | Default |
---|---|
Integer | 0 |
This attribute only appears if the PercentToRemove PMI input attribute 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.
In the sample above, after four payments are made, the ending principal balance to home value ratio drops below 70%, and hence the calculation engine returns IndexToRemove="4". Note that no PMI is included in the amortization schedule for payment numbers four or greater.
🔹 IndexToWarn
Data Type | Default |
---|---|
Integer | 0 |
This attribute only appears if the PercentToWarn PMI input attribute is specified, and indicates that the payment index on which the remaining principal balance to home value ratio drops below the specified percentage. In the sample above, after three payments are made, the ending principal balance to home value ratio drops below 80%, and hence the calculation engine returns IndexToWarn="3".
🔸 LTV
Data Type |
---|
Decimal |
The loan to value ratio of the computed loan, expressed as a percentage.
🔸 PremiumPerPeriod
Data Type |
---|
Currency |
The periodic PMI premium amount.
🔸 PremiumPerYear
Data Type |
---|
Currency |
The annual PMI premium amount
🔸 Rate
Data Type |
---|
Decimal |
The percentage rate used in the PMI calculation.
🟥 <PmtStream>[]
Element Type | Data Type |
---|---|
Empty | - |
The <PmtStream>
element(s) describe the scheduled stream of payments for the
computed loan in the order paid. Instead of disclosing each and every payment
individually (which can be done with the <AmTable>
element), the
payment streams group together consecutive equal payments to produce a
compressed output view.
The following code translates to "Twelve consecutive payments of $879.31 computed at 10.000% begin on January 22nd, 2024".
<PmtStream Term="12" Pmt="879.31" Rate="10.000" Begin="2024-01-22"/>
Each element describes a single stream of equal payments, using the following attributes to define the important properties of each resulting payment stream:
🔸 Begin
Data Type |
---|
Date |
This attribute contains 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. In the example above, the first payment stream
is scheduled to begin on September 18, 2005. Hence, the Begin attribute for the
first payment stream element would be specified as Begin="2005-09-18"
.
🔸 Pmt
Data Type |
---|
Currency |
The Pmt
attribute contains the computed payment amount for this payment stream.
For the sample payment stream above, the payment amount is 879.31.
🔸 Rate
Data Type |
---|
Decimal |
Contains the interest rate used for the duration of this payment stream. Usually, the interest rate will remain fixed for the duration of the loan unless you are computing an adjustable rate loan or you are computing a LaserPro construction loan with permanent loan attached.
🔸 Term
Data Type |
---|
Integer |
The Term
attribute holds the number of contiguous payments that make up the
given payment stream. In the example payment stream above, the term for the
stream is 12.
🟦 <ProtectionInfo>[]
Element Type | Data Type |
---|---|
Parent | - |
These elements (there may be more than one if more than one type of protection was requested) contain information related to the various protection products requested on the given loan. Each element group provides complete results for each requested product (decreasing life, level life, disability/debt cancellation, involuntary unemployment, or personal property).
🔸 Formula
Data Type | Values |
---|---|
Enum | see Protection Formulas |
The Formula
attribute contains an abbreviated description of the formula used
to compute the desired protection product. The formula codes are described
here.
🔸 Product
Data Type | Values |
---|---|
Enum | Life , Level , Disability , Unemployment , Property |
This attribute informs the calling application to which type of protection product this element refers: decreasing life, level life, disability/debt cancellation, involuntary unemployment or personal property.
🔹 RateType
Data Type | Values |
---|---|
Enum | Fixed , Variable |
Fixed
- Protection rate stays constant during the calculations.Variable
- Protection rate changed from Joint to Single as the loan evolves.
🟥 <ProtectionInfo>
→<CalcResult>
Element Type | Data Type |
---|---|
Data | Text |
This element 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 child elements
of <ProtectionInfo>
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 child elements of
<ProtectionInfo>
, as the product was not computed.
<CalcResult>Valid Calculation</CalcResult>
Attributes: None
🟥 <ProtectionInfo>
→<Cost>
Element Type | Data Type |
---|---|
Empty | - |
Attributes of this empty element 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.
The only time there will be two <Cost>
elements to parse is when the account
has been set up to use Plateau’s Uniguard product, and the user has requested
joint coverage. If this is the case, then two <Cost>
elements are provided to
disclose two premiums instead of a single aggregate joint premium.
<Cost Premium="827.26" PerPmt="19.28" PerDay="0.63" Factor="1.0154"/>
🔸 Factor
Data Type |
---|
Decimal |
The rate factor used to compute the premium for the requested protection product.
🔸 PerDay
Data Type |
---|
Currency |
The daily cost of coverage, expressed in dollars.
🔸 PerPmt
Data Type |
---|
Currency |
The cost of coverage expressed as dollars per payment.
🔸 Premium
Data Type |
---|
Currency |
The total cost for this protection over the term of the loan.
🟥 <ProtectionInfo>
→<Coverage>
Element Type | Data Type |
---|---|
Empty | - |
The aggregate coverage amount and note are provided in the following attributes of this empty element:
<Coverage Amount="75000.00" Note="Partial Coverage of $75,000"/>
🔸 Amount
Data Type |
---|
Currency |
This attribute contains the aggregate coverage amount for this protection product.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🟥 <ProtectionInfo>
→<Benefit>
Element Type | Data Type |
---|---|
Empty | - |
This empty element will only show up for the disability and involuntary unemployment products.
<Benefit Amount="1000.00" Note="Partial Benefit of $1,000"/>
🔸 Amount
Data Type |
---|
Currency |
Attribute which contains the monthly benefit amount for this protection product.
🔸 Note
Data Type |
---|
Text |
This Note
will describe 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.
🔹 Periodic
Data Type | Default |
---|---|
Currency | n/a |
If the account has been configured to disclose periodic benefits (as opposed to
monthly benefit amounts, which are returned in the Amount
attribute described above), and if the specified payment frequency is other than
monthly, then this attribute will be present and will hold the periodic benefit
amount.
🟦 <ProtectionInfo>
→<CovTerm>
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the term of coverage for the requested product. If the request has specified the coverage term, then this element will be populated with that term.
<CovTerm InMonths="75" InPmts="75" Maturity="2018-09-22" Note="Truncated: Keep Benefit"/>
🔹 InDays
Data Type | Default |
---|---|
Integer | n/a |
Attribute which expresses the term of coverage in days. This attribute will only be present for the level life product, and even then only if needed (for example, when covering single payment notes).
🔸 InMonths
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of months.
🔸 InPmts
Data Type |
---|
Integer |
Contains the number of payments covered.
🔸 Maturity
(YYYY-MM-DD)
Data Type |
---|
Date |
This attribute contains the maturity date for the requested coverage. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🟦 <ProtectionInfo>
→<Borrower>[]
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the term of
coverage of a specified borrower, for the requested product. Note that this
element will only be present if the input XML request has specified
ShowBorrowerInfo
= "true"
, and a valid
birthdate was provided. The following attributes are defined for this purpose:
Attributes:
🔸AgeAtIssue
,🔸AgeAtMaturity
,🔸Birthday
,🔸Maturity
,🔸Months
,🔸Note
,🔸Pmts
🔸 AgeAtIssue
Data Type |
---|
Special - see below |
If coverage is written on this borrower, then the value of this attribute 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.
🔸 AgeAtMaturity
Data Type |
---|
Special - see below |
If coverage is written on this borrower, then the value of this attribute 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.
🔸 Birthday
Data Type |
---|
Date |
This attribute contains the birthday associated with the borrower, as specified in the request. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🔸 Maturity
Data Type |
---|
Date |
The value of this attribute contains the coverage maturity date for this particular borrower.
🔸 Months
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of months.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🔸 Pmts
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of payments.
🟦 <ProtectionInfo>
→<Caps>
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the maximum
terms, amounts, and ages associated with the requested product. This element
will only be present if the ShowCaps
attribute
of the <Protection>
element is set to true
.
<Caps Cov="75000" Ben="1000" Term="84" InceptAge="65" AttainAge="66"/>
Attributes:
🔸AttainAge
,🔸Ben
,🔸Cov
,🔸InceptAge
,🔸Term
🔸 AttainAge
Data Type |
---|
Integer |
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.
🔸 Ben
Data Type |
---|
Currency |
Contains the maximum monthly benefit amount, expressed in dollars. If no cap is present or applicable, then a value of zero is returned.
🔸 Cov
Data Type |
---|
Currency |
Contains the maximum aggregate coverage amount, expressed in dollars. If no cap is present or applicable, then a value of zero is returned.
🔸 InceptAge
Data Type |
---|
Integer |
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.
🔸 Term
Data Type |
---|
Integer |
Contains the maximum coverage term, expressed in months. If no cap is present or applicable, then a value of zero is returned.
🟦 <AmTable>
Element Type | Data Type |
---|---|
Parent | - |
This element (if present) contains child elements which describe the loan's
amortization information. This element (and all of its child elements) will only
be present if the HideAmort
property of the
root element of the input query is set to false
.
<AmTable>
Attributes will only occur as feedback data for Canadian APR's.
🔹 AvgBal
Data Type | Default |
---|---|
Currency | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute is the average balance of the loan used in the Canadian APR calculation.
🔹 Months
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🔹 OddDays
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🔹 Weeks
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🟦 <AmTable>
→<GrandTotals>[]
Element Type | Data Type |
---|---|
Empty | - |
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 the following attributes:
<GrandTotals PmtTot="10551.72" IntTot="551.68" PrinTot="10000.04"/>
Attributes:
🔹AHTot
,🔹CLTot
,🔸IntTot
,🔹IUTot
,🔹PMITot
,🔸PmtTot
,🔸PrinTot
,
🔹 AHTot
Data Type | Default |
---|---|
Currency | 0 |
The AHTot
attribute 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 over the duration
of the loan.
🔹 CLTot
Data Type | Default |
---|---|
Currency | 0 |
The CLTot
attribute 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.
🔸 IntTot
Data Type |
---|
Currency |
Contains the sum of all interest attributes in the AmLine
elements.
This amount will be different from the <Interest>
element if
there is a nonzero EndBal
for the final line of
amortization. The two will differ by this non-zero EndBal
.
🔹 IUTot
Data Type | Default |
---|---|
Currency | 0 |
The IUTot
attribute 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 over the
duration of the loan.
🔹 PMITot
Data Type | Default |
---|---|
Currency | 0 |
The PMITot
attribute 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.
🔸 PmtTot
Data Type |
---|
Currency |
Contains the total of payments scheduled for the computed loan.
🔸 PrinTot
Data Type |
---|
Currency |
Like IntTot
above, this attribute contains the total
amount paid to principal during the loan term, assuming all payments are made as
scheduled.
🟦 <AmTable>
→<SubTotals>[]
Element Type | Data Type |
---|---|
Empty | - |
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 <SubTotals>
element present. The element itself is empty, as all the
interesting categories are found in the following attributes:
<SubTotals Year="2024" Start="1" Events="12" PmtSub="10551.72" IntSub="551.68" PrinSub="10000.04"/>
Attributes:
🔹AHSub
,🔹CLSub
,🔸Events
,🔸IntSub
,🔹IUSub
,🔹PMISub
,🔸PmtSub
,🔸PrinSub
,🔸Start
,🔸Year
🔹 AHSub
Data Type | Default |
---|---|
Currency | 0 |
The AHSub
attribute 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
.
🔹 CLSub
Data Type | Default |
---|---|
Currency | 0 |
The CLSub
attribute 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
.
🔸 Events
Data Type |
---|
Integer |
This attribute defines the number of amortization events (contained in
<AmLine>
elements which are defined below) which belong to this
calendar Year
.
🔸 IntSub
Data Type |
---|
Currency |
Holds the total amount paid to interest over the Year
in
question, assuming all payments are made as scheduled.
🔹 IUSub
Data Type | Default |
---|---|
Currency | 0 |
The IUSub
attribute 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
.
🔹 PMISub
Data Type | Default |
---|---|
Currency | 0 |
The PMISub
attribute 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 upfront periodic PMI premiums) for PMI during
the Year
.
🔸 PmtSub
Data Type |
---|
Currency |
Contains the total of payments scheduled for the Year
in
question.
🔸 PrinSub
Data Type |
---|
Currency |
Like IntSub
above, this attribute contains the total
amount paid to principal during the Year
in question,
assuming all payments are made as scheduled.
🔸 Start
Data Type |
---|
Integer |
This attribute defines the first amortization event which falls in the specified
calendar Year
. To find the <AmLine>
element
which corresponds to this value, match the Idx attribute of the
<AmLine>
element with the integer value reported by this attribute.
🔸 Year
Data Type |
---|
Integer |
The given calendar year for which the subtotal data is applicable.
🟥 <AmTable>
→<AmLine>[]
Element Type | Data Type |
---|---|
Empty | - |
There is one <AmLine>
element 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.) However, some loan protection methods (TruStage's monthly
renewable product, to be exact) have amortization events which correspond to
loan protection premiums being added to the loan balance on specific dates.
<AmLine Idx="1" Date="2024-01-01" BegBal="10000.00" Pmt="879.31" Int="84.93" Prin="794.38" EndBal="9205.62"/>
As with the <GrandTotals>
and <SubTotals>
elements, this element is empty and contains all of the useful information for a
given point in the amortization of a loan in the following attributes.
Attributes:
🔹AH
,🔸BegBal
,🔹CL
,🔸Date
,🔸EndBal
,🔸Idx
,🔸Int
,🔹IU
,🔹PMI
,🔸Pmt
,🔸Prin
,🔹UnpaidInt
🔹 AH
Data Type | Default |
---|---|
Currency | 0 |
The AH
attribute 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.
🔸 BegBal
Data Type |
---|
Currency |
The principal balance before the amortization event occurs.
🔹 CL
Data Type | Default |
---|---|
Currency | 0 |
The CL
attribute 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.
🔸 Date
Data Type |
---|
Currency |
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.
🔸 EndBal
Data Type |
---|
Currency |
The principal balance amount, after the amortization event has taken place.
🔸 Idx
Data Type |
---|
Integer |
The index of the amortization event, which is either the payment number, or zero. A value of zero designates a protection premium that was charged on a date other than a payment date. (Occurs with protection category "TrueMOB").
🔸 Int
Data Type |
---|
Currency |
The amount of the payment which goes to pay interest.
🔹 IU
Data Type | Default |
---|---|
Currency | 0 |
The IU
attribute 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.
🔹 PMI
Data Type | Default |
---|---|
Currency | 0 |
This attribute contains the PMI premium for this payment.
🔸 Pmt
Data Type |
---|
Currency |
The amount of the payment (or zero if the event is a "TrueMOB" protection premium).
🔸 Prin
The amount of the payment which goes to reduce the principal balance.
🔹 UnpaidInt
Data Type | Default |
---|---|
Currency or Decimal | 0 |
This attribute 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 places. If rounded, then the unpaid interest is displayed to two (2) decimal places.
🟦 <Metavante>
Element Type | Data Type |
---|---|
Empty | - |
This element will only be present if the
Metavante
attribute of the root element is
set to true
. The element itself is empty, as all of the useful information is
in the following attributes:
Attributes:
🔸FormsTerm
,🔸HostTerm
🔸 FormsTerm
Data Type |
---|
Integer |
The number of months in the loan, as computed using the Metavante FORMS method.
🔸 HostTerm
Data Type |
---|
Integer |
The number of months in the loan, as computed using the Metavante HOST method.
Fixed Principal Plus Interest Loans
Fixed principal plus interest loans (hereafter called principal plus loans) are loans which have a payment stream made up of payments which pay off a fixed amount of principal with each P&I payment, with interest only payments optionally occurring during the life of the loan as well.
Sample Request
The following request specifies a loan with a term of 12 months and proceeds of $1,000 to be paid off with the first two payments consisting of interest only and the remaining 10 payments each paying off $100 of principal.
<inPRINCIPAL_PLUS_INTEREST AccrualCode="301" PPY="12" PrincipalPPY="12">
<LoanDate>2024-11-01</LoanDate>
<PmtDate>2024-12-01</PmtDate>
<IntRate>10.000</IntRate>
<Proceeds>1000.00</Proceeds>
<FirstPrincipalPmt>3</FirstPrincipalPmt>
<PrincipalReduction>100.00</PrincipalReduction>
<PrincipalPmts>12</PrincipalPmts>
</inPRINCIPAL_PLUS_INTEREST>
Sample Response
The following response is returned from the SCEX when provided with the sample request above.
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE outPRINCIPAL_PLUS_INTEREST SYSTEM "outPRINCIPAL_PLUS_INTEREST.dtd">
<outPRINCIPAL_PLUS_INTEREST>
<Results>
<Description>Successful Calculation</Description>
<Principal_Reduction>100.00</Principal_Reduction>
<First>8.33</First>
<Final>100.83</Final>
<Term>12</Term>
</Results>
<FedBox>
<AmtFin>1000.00</AmtFin>
<FinChg>62.49</FinChg>
<TotPmts>1062.49</TotPmts>
<RegZAPR Type="Actuarial">9.998</RegZAPR>
</FedBox>
<Moneys>
<Principal>1000.00</Principal>
<Interest>62.49</Interest>
<Protection Category="None" PerPmt="0.00" PerDay="0.00">0.00</Protection>
</Moneys>
<Accrual>
<Method>Unit Period 360 US Rule</Method>
<Days1Pmt DayCount="Actual">30</Days1Pmt>
<Maturity>2025-11-01</Maturity>
</Accrual>
<PmtStream Term="2" Pmt="8.33" Rate="10.000" Begin="2024-12-01"/>
<PmtStream Term="1" Pmt="108.33" Rate="10.000" Begin="2025-02-01"/>
<PmtStream Term="1" Pmt="107.50" Rate="10.000" Begin="2025-03-01"/>
<PmtStream Term="1" Pmt="106.67" Rate="10.000" Begin="2025-04-01"/>
<PmtStream Term="1" Pmt="105.83" Rate="10.000" Begin="2025-05-01"/>
<PmtStream Term="1" Pmt="105.00" Rate="10.000" Begin="2025-06-01"/>
<PmtStream Term="1" Pmt="104.17" Rate="10.000" Begin="2025-07-01"/>
<PmtStream Term="1" Pmt="103.33" Rate="10.000" Begin="2025-08-01"/>
<PmtStream Term="1" Pmt="102.50" Rate="10.000" Begin="2025-09-01"/>
<PmtStream Term="1" Pmt="101.67" Rate="10.000" Begin="2025-10-01"/>
<PmtStream Term="1" Pmt="100.83" Rate="10.000" Begin="2025-11-01"/>
<AmTable>
<GrandTotals PmtTot="1062.49" IntTot="62.49" PrinTot="1000.00"/>
<SubTotals Year="2024" Start="1" Events="1" PmtSub="8.33" IntSub="8.33" PrinSub="0.00"/>
<SubTotals Year="2025" Start="2" Events="11" PmtSub="1054.16" IntSub="54.16" PrinSub="1000.00"/>
<AmLine Idx="1" Date="2024-12-01" BegBal="1000.00" Pmt="8.33" Int="8.33" Prin="0.00" EndBal="1000.00"/>
<AmLine Idx="2" Date="2025-01-01" BegBal="1000.00" Pmt="8.33" Int="8.33" Prin="0.00" EndBal="1000.00"/>
<AmLine Idx="3" Date="2025-02-01" BegBal="1000.00" Pmt="108.33" Int="8.33" Prin="100.00" EndBal="900.00"/>
<AmLine Idx="4" Date="2025-03-01" BegBal="900.00" Pmt="107.50" Int="7.50" Prin="100.00" EndBal="800.00"/>
<AmLine Idx="5" Date="2025-04-01" BegBal="800.00" Pmt="106.67" Int="6.67" Prin="100.00" EndBal="700.00"/>
<AmLine Idx="6" Date="2025-05-01" BegBal="700.00" Pmt="105.83" Int="5.83" Prin="100.00" EndBal="600.00"/>
<AmLine Idx="7" Date="2025-06-01" BegBal="600.00" Pmt="105.00" Int="5.00" Prin="100.00" EndBal="500.00"/>
<AmLine Idx="8" Date="2025-07-01" BegBal="500.00" Pmt="104.17" Int="4.17" Prin="100.00" EndBal="400.00"/>
<AmLine Idx="9" Date="2025-08-01" BegBal="400.00" Pmt="103.33" Int="3.33" Prin="100.00" EndBal="300.00"/>
<AmLine Idx="10" Date="2025-09-01" BegBal="300.00" Pmt="102.50" Int="2.50" Prin="100.00" EndBal="200.00"/>
<AmLine Idx="11" Date="2025-10-01" BegBal="200.00" Pmt="101.67" Int="1.67" Prin="100.00" EndBal="100.00"/>
<AmLine Idx="12" Date="2025-11-01" BegBal="100.00" Pmt="100.83" Int="0.83" Prin="100.00" EndBal="0.00"/>
</AmTable>
</outPRINCIPAL_PLUS_INTEREST>
Fixed Principal Plus Interest Loan - Request
Please see the Legend to understand the conventions used to document each element and attribute. Note that for requests, the XML elements are documented in alphabetical order by parent element.
🟥 <inPRINCIPAL_PLUS_INTEREST>
Element Type | Data Type |
---|---|
Parent | - |
This element is the root element for the request. It is a parent element that has no data, but does have several attributes that offer a wide variety of adjustments.
Attributes:
🔹Account
,🔹AccrualCode
,🔹AprType
,🔹Country
,🔹DataDirPath
,🔹ForceReload
,🔹HideAmort
,🔹Lastday
,🔹MAPR_Max
,🔹Metavante
,🔹PmtRound
,🔹PPY
,🔹UseMAPR
,🔹YieldPPY
🔹 Account
Data Type | Values | Default |
---|---|---|
Integer | [1...9999] | 1 |
This attribute specifies which account should be used to compute the requested
loan. Each account is numbered from 1 to 9,999, and each account corresponds to
a set of setup files which define numerous settings which may affect the loan
calculation, such as the accrual method, insurance methods and rates, etc. If
this attribute is not specified, a default value of 1
will be used.
🔹 AccrualCode
Data Type | Values | Default |
---|---|---|
Enum | See table | default |
This property allows an accrual method to be used other than the accrual method dictated by the setup file for the given account. If no accrual code attribute is specified, the method defined in the setup file will be used. The Accrual Code Table lists all valid accrual codes available. Note that for the split rate accrual codes (i.e. those above 500), the split rate tiers must be defined in the setup file.
🔹 AprType
Data Type | Values | Default |
---|---|---|
Enum | See below | default |
This attribute allows the calling application to specify an APR calculation method which will override the default value found in the setup file for the given account. If this attribute is set to a valid value, then the specified method will be used to compute the APR for this loan calculation.
If the Country
attribute has been set by the calling
application and this attribute is not set, then the APR method used will be
determined by the specified country. For the United States of America, the
default APR method is actuarial
. For a country in the European Union, the
default value is eu
(European Union APR). For Canada, the default APR method
is ca
(Canadian APR).
default
- Use setup file value.actuarial
- Appendix J Actuarial APRusrule
- US Rule APReu
- European Union APRca
- Canadian APRxirr
- Extended Internal Rate of Return (same as excel function)xirr360
- XIRR using a 360 divisor rather than a 365 divisorirr
- Simple Internal Rate of Return (same as excel function)
If this attribute is not specified and the Country
attribute
is not specified, then the value of default
will be used which informs the SCE
to use the APR method defined in the setup file for the specified
Account
.
🔹 Country
Data Type | Values | Default |
---|---|---|
Alpha-2 or Numeric-3 code | See table | US |
This attribute allows the calling application to specify a two (2) character or
three (3) digit country code. If none is provided, then a default value of US
will be used. Please see the Country Codes Table for the
list of supported countries and their associated codes.
Currently, the country code is used to determine the default value of the
AprType
attribute (see above).
🔹 DataDirPath
Data Type | Values | Default |
---|---|---|
Text | See below | See below |
If this attribute is set, the SCE will look for a data folder containing the
setup files in the path specified. Thus, if the DataDirPath
is set to
C:\SCEX\
, the SCE will look for the setup files in C:\SCEX\data
.
If the calling application wishes to specify the data directory path in its
entirety (e.g. the calling app does not want the SCE to append \data
to the
provided path), then simply terminate the specified DataDirPath
with an
asterisk (*
). Thus, if the DataDirPath
is set to C:\SCEX\bank1\*
, the SCE
will look for the setup files in C:\SCEX\bank1\
.
If this attribute is not set, the SCE will attempt to locate the data folder in
the default data directory path location, which can be retrieved using the
<inVERSION>
module query, and set via the SCE API.
This attribute is useful if you wish to use only a single installation of the
SCE, but have many different setup file groupings. By specifying a different
DataDirPath
for each grouping, you can easily separate the groups from one
another instead of grouping them all together in a single directory.
🔹 ForceReload
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
The SCE caches setup files previously used. This improves performance for
subsequent loan requests using one of the cached accounts. However, if you need
the SCE to reload the setup files for a given request (e.g. you just copied
over new setup files), then you can set this attribute to true
and the setup
files will be forced to reload. If left at the default value of false
, then
setup files are only reloaded when the SCE notices that one of the setup files
has been modified.
🔹 HideAmort
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
This attribute determines whether or not an amortization schedule will be
included in the response, given a successful loan calculation. If you do not
require the use of the amortization schedule, then setting this attribute to
true
will suppress its output. The default value of false
will return the
amortization schedule as part of the response.
🔹 Lastday
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If present, this attribute overrides the Last Day setting in the setup files, which only applies to loans computed with an actual day interest accrual calendar where the first payment date falls at the end of a month with fewer than 31 days. As an example, if the first payment date is on April 30, should the following payment dates be made on the 30th of each month, or on the last day of the month?
If no value is specified for this attribute, then the setup file setting will be
used. If true
is specified, then conditions triggering a last day situation
will result in payments which fall at the end of the month. A value of false
indicates that when dictated, subsequent payment dates will not be moved to the
last day of the month.
🔹 MAPR_Max
Data Type | Values | Default |
---|---|---|
Decimal | [-99.999...600] | 36.0 |
If you are computing the Military APR (see UseMAPR
below) and
wish to override the default maximum APR value of 36
%, then specify the
desired maximum as the value of this attribute.
🔹 Metavante
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to a value of true
, then the
<Metavante>
element will be included in the
response. Also, some loans will also disclose
<MinInterestPmt>
and
<MaxInterestPmt>
elements.
🔹 PmtRound
Data Type | Values | Default |
---|---|---|
Enum | default , nearest , up , down , best | default |
This attribute allows the calling application to specify a payment rounding
option which will override the value found in the setup file. If not specified,
then the value of default
will be used.
default
- Use method specified in setup file.nearest
- Round computed payment to the nearest penny, using 5/4 rounding. e.g. 300.242 = 300.24, 300.245 = 300.25.up
- Round computed payment up to the next penny. e.g. 300.241 = 300.25.down
- Round computed payment down to the previous penny. e.g. 300.249 = 300.24.best
- Once the unrounded payment has been computed, amortize the loan using the rounded down and rounded up payment, and then return the payment which amortizes the loan’s ending balance closest to zero.
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | See below | monthly |
PPY is an abbreviation for payments per year, and as one might surmise,
determines the payment frequency for the loan. The default value of monthly
will
result in a loan with 12 payments per year. If you require a loan with a payment
frequency other than monthly, specify it using this attribute.
Value | Translation | Description |
---|---|---|
1 | Annual | Once Per Year |
2 | SemiAnnual | Twice Per year (every six months) |
4 | Quarterly | Four per year (every three months) |
6 | Bimonthly | Six per year (every two months) |
12 | Monthly | Twelve per year (every month) |
24 | Semimonthly | Twice Per Month* |
* Semimonthly loans are characterized by making two payments per month on the same days. A common semimonthly schedule is to make payments every 1st and 16th of the month. Another common schedule is the 15th and the end of every month.
🔹 PrincipalPPY
Data Type | Values | Default |
---|---|---|
Enum | See below | monthly |
PrincipalPPY
is an abbreviation for "principal payments per year", and as one might surmise,
determines the payment frequency of principal and interest payments for the given loan.
The default value of monthly
will result in a loan with 12 principal and interest payments
per year. If you require a loan with a principal plus interest payment frequency other than
monthly, specify it using this attribute.
Note that the numeric equivalent of
PrincipalPPY
must evenly divide the PPY
attribute. As an example, if
PPY="12"
then PrincipalPPY
may be 1
, 2
, 4
, 6
or 12
.
Value | Translation | Description |
---|---|---|
1 | Annual | Once Per Year |
2 | SemiAnnual | Twice Per year (every six months) |
4 | Quarterly | Four per year (every three months) |
6 | Bimonthly | Six per year (every two months) |
12 | Monthly | Twelve per year (every month) |
24 | Semimonthly | Twice Per Month* |
* Semimonthly loans are characterized by making two payments per month on the same days. A common semimonthly schedule is to make payments every 1st and 16th of the month. Another common schedule is the 15th and the end of every month.
🔹 UseIntOnlyNotSkips
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to true
, then any specified skipped payments (see the
<IrregPmt>
element) will be treated as interest only payments
instead of skipped payments.
🔹 UseMAPR
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to a value of true
, the SCE will compute the Military
APR in addition to the Regulation Z APR. The <MAPR>
element will be included in the XML loan response.
🔹 YieldPPY
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 , 4 , 6 , 12 | 0 |
Canadian mortgages may compute periodic interest using a fractional power of a
periodic yield. If set to a value other than 0
, this value determines the
period. Please contact us for further information if you support mortgage
calculations in Canada. Note that when using this attribute with a value other
than zero, the calling application must include an odd days prepaid fee in the
request.
🟦 <Construction>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | Not a construction loan |
Include the <Construction>
element to configure a construction period on a
loan. The use of this element requires setup files configured to support
construction loans, or specification of the Method
to be used.
If the specified account is not set up to support construction loans, this
element will be ignored.
Attributes:
🔹Accrual
,🔹Active
,🔹HalfCommitment
,🔹Method
,🔹PermanentAttached
,🔹PPY
,🔸Rate
,🔸Term
,🔹UnitOddDayDivisor
🔹 Accrual
Data Type | Values | Default |
---|---|---|
Enum | default , unitperiod , actual360 , actual365 | default |
If the loan request is a construction loan with no permanent loan attached, this attribute allows the calling application to specify the accrual method used.
default
- The setup files determine the default value for interest accrual.unitperiod
- Compute periodic interest using a 1/PPY factor.actual360
- Compute periodic interest using the actual # of days between payments/360.actual365
- Compute periodic interest using the actual # of days between payments/365.
🔹 Active
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this loan request includes a construction loan, then set this attribute to
true
. If no construction loan is desired, either do not specify the
<Construction>
element or set this attribute to false
.
🔹 HalfCommitment
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
During the term of the construction loan, the estimated interest for disclosure
purposes may be either computed on the full or half commitment amounts. By
setting this attribute to true
, interest will be estimated using half of the
initial commitment amount (i.e. the principal balance). The default value of
false
will cause interest to be estimated using the entire initial commitment
amount.
🔹 Method
Data Type | Values | Default |
---|---|---|
Enum | default , simple , laserpro , intonly | default |
There are three methods used to define how construction loans are computed and
disclosed. A method of default
tells the SCE to use the method
configured in the setup file. The meaning of the three methods are as follows:
simple
- Compute an aggregate construction interest amount for the entire construction period for both pure construction loans and construction to permanent loans.laserpro
- Compute an aggregate construction interest amount for the entire construction period for pure construction loans. For construction to permanent loans, compute and disclose discrete interest-only payments during the construction period.intonly
- Compute and disclose discrete interest-only payments during the construction period for both pure construction loans and construction to permanent loans.
🔹 PermanentAttached
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Construction loans may be computed on their own, or they may be attached to a
permanent loan which begins at the conclusion of the construction loan. If a
permanent loan is attached to the construction loan, then set this attribute’s
value to true
and set up the permanent loan information in the request
elements.
The default value of false
indicates that this is solely a construction loan
with no permanent attached. In this case, you still need to set up the
<LoanDate>
, <PmtDate>
and <Proceeds>
elements.
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | 1 , 2 , 4 , 6 , 12 , 24 , 26 , 52 | 12 |
The PPY
attribute allows the calling application to specify the payment
frequency during the construction period. The default value of monthly will
result in a construction loan with 12 payments per year. If you require a
payment frequency during the construction period other than monthly, then
specify it using this attribute. Note that if a permanent loan is attached to
the construction loan, that the permanent loan's payment frequency may differ
from the construction period’s payment frequency.
🔸 Rate
Data Type | Values | Default |
---|---|---|
Decimal | [-99.999...600] | 0 |
This attribute determines the rate applied to the appropriate commitment amount during the term of the construction loan.
🔸 Term
Data Type | Values | Default |
---|---|---|
Integer | [1...60] * | 0 |
The term of the construction loan (in payments) is specified using this attribute. Please note that the term may not exceed five years.
* 60 is the maximum number of months in the Construction period. In general, the maximum entry is 5 *
PPY
, where the PPY is the payments per year attribute of the<Construction>
element.
🔹 UnitOddDayDivisor
(enum, [], Ignore)
Data Type | Values | Default |
---|---|---|
Enum | ignore , 360 , 365 , vardpy | ignore |
When specifying an Accrual
method of type unitperiod
, this
attribute allows the calling application to specify how odd days between the
loan and first payment dates are taken into account.
ignore
means that all odd days are ignored, and the calculation will assume
one full unit period. 360
and 365
will compute the actual number of days
between the loan date and first payment date, and then use either a 360 or 365
divisor to determine the amount of interest accrued during that period. vardpy
accrues interest in the same manner as accrual code 250/350.
🟦 <Fee>[]
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No fee |
Unlike most other elements, any number of fees may be defined, or none at all. All of the information used to compute a fee is contained in its attributes.
Attributes:
🔹AddToFinChg
,🔹AddToPrin
,🔹Adjust
,🔹CalcType
,🔸Entry
,🔹IsLoanCost
,🔹MAPR
,🔹MaxValue
,🔹MinValue
,🔹Name
🔹 AddToFinChg
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
If this fee should be included in the Reg. Z Finance Charge (and hence, affect
the APR), then set this attribute to true
. The default value of false
indicates that the fee does not affect the Finance Charge nor APR.
🔹 AddToPrin
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this fee should be added to the principal balance (e.g. the fee is financed
along with the amount requested), then set this attribute to true
. If set to
false
, then the fee is paid up front out of the borrower’s pocket.
🔹 Adjust
Data Type | Values | Default |
---|---|---|
Currency | any | 0 |
The optional attribute Adjust
allows the calling application to increase or
decrease the base amount on which a fee is calculated. If a negative value is
specified and this adjustment would produce a negative base amount, then a value
of zero is returned for the given fee. This attribute has no effect on fees with
a CalcType
of Dollar
.
As an example, in Tennessee you may need to define a financed, non-APR affecting fee to be computed by decreasing the amount financed by $2,000, and then multiplying this reduced amount by 0.115. The way to accomplish this in the SCEX is as follows:
<Fee CalcType="OnAmtFin" Entry="0.115" Adjust="-2000" AddToPrin="true" AddToFinChg="false" />
🔹 CalcType
Data Type | Values | Default |
---|---|---|
Enum | Dollar , OnProceeds , OnAmtFin , OnPrin , DocStamp | Dollar |
The value of this attribute determines how the fee is to be computed, as described below:
Dollar
- TheEntry
attribute is understood as a flat dollar amount.OnProceeds
- TheEntry
attribute is understood as a percentage value, to be applied to the loan’s proceeds. AnEntry
of1.0
would represent a fee of 1.0% of proceeds.OnAmtFin
- TheEntry
attribute is understood as a percentage value, to be applied to the Amount Financed. AnEntry
of0.5
would represent a fee of 0.5% of Amount Financed.OnPrin
- TheEntry
attribute is understood as a percentage value, to be applied to the loan’s principal balance. AnEntry
of0.125
would represent a fee of 0.125% of principal balance.DocStamp
- TheEntry
attribute is understood as a Florida doc stamp rate, to be applied to the loan’s principal balance. AnEntry
of0.35
would represent a fee of 0.35% of the principal balance. You must set the AddToFinChg attribute to false, otherwise the doc stamp fee will return a value of zero.
🔸 Entry
Data Type | Values |
---|---|
Decimal or Currency | >= 0 |
The Entry
is the basic starting point fee value that determines the dollar
value of the resulting fee computation. How this attribute is interpreted
depends upon the CalcType
attribute, described above. This
value is either a dollar value or a percentage (aka "points").
🔹 IsLoanCost
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
When requesting the new TILA RESPA outputs (via the
<TILARESPA2015>
element), the SCE needs to know which fees need
to be considered borrower paid loan costs, as defined in the rule. Please note
that if the fee is paid by a lender or other third party, then the fee does not
affect the loan calculation and should not be sent to the SCE. If it is sent,
then the value of this attribute should be set to false
.
🔹 MAPR
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If you wish to compute the Military APR, then certain fees may not be considered
Regulation Z APR affecting fees, but are considered Military APR affecting fees.
In this case, you will need to set the value of this attribute to true
.
Fees which are added to the finance charge (e.g.
AddToFinChg
="true"
) are always considered MAPR fees,
regardless of the stated value of this attribute.
Note that debt protection products are automatically included in the calculation of the Military APR, no matter what method is used for payment (e.g. single premium vs. monthly outstanding balance).
🔹 MaxValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If a maximum value for the fee is specified and is greater than zero, then if the computed fee exceeds this maximum value, then this maximum value will be used instead. If no maximum value is specified or is set to a value of zero, then no maximum will be enforced. Please note that this attribute is applied to all fee types documented.
🔹 MinValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If a minimum value for the fee is specified and is greater than zero, and if the
Entry
attribute holds a value greater than zero, then if the
computed fee is less than this minimum value, then this minimum value will be
used instead. If no minimum value is specified or is set to a value of zero,
then no minimum will be enforced. If a specified minimum value exceeds a
specified maximum value, then the minimum value will be ignored. Please note
that this attribute is applied to all fee types documented.
🔹 Name
Data Type | Values | Default |
---|---|---|
Text | any | n/a |
This attribute is for convenience purposes only, and does not affect the
calculation of the fee in any manner. If a Name
attribute is specified for the
<Fee>
element, then the corresponding <Fee>
element in the XML output will have a Name
attribute with the same value. This allows you to easily differentiate fees in
the response.
🟥 <FirstPrincipalPmt>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | > 0 |
This element determines on which payment number the fixed principal reduction
amount (see <PrincipalReduction>
) begins. All payments
prior to the payment number will be interest only payments.
Attributes: None
🟦 <Format>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | See attributes |
The <Format>
element is one of the first elements parsed from a request, as the
attributes of this empty element affect how date and numeric values are parsed
and validated.
Attributes:
🔹CurrencyDecimals
,🔹DateFormat
,🔹DateSeparator
,🔹DecimalSeparator
,🔹StrictDP
,🔹ThousandSeparator
🔹 CurrencyDecimals
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 | 2 |
When displaying and parsing Currency values, the value of this attribute
determines the maximum number of decimal places allowed after the
DecimalSeparator
.
🔹 DateFormat
Data Type | Values | Default |
---|---|---|
Enum | YMD , MDY , DMY | YMD |
When displaying and parsing Date values, this field determines the expected
format for all Date fields. The following DateFormat
options are allowed:
YMD
- All dates should be formatted as YYYY-MM-DD.MDY
- All dates should be formatted as MM-DD-YYYY.DMY
- All dates should be formatted as DD-MM-YYYY.
Note that the character which separates the individual month, day, and year
portions of the date is configurable via the
DateSeparator
attribute.
🔹 DateSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | - |
When displaying and parsing Date values, this attribute determines the character used to separate the individual month, day, and year portions of a date.
🔹 DecimalSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | . |
When displaying and parsing Currency or Decimal numeric values, this attribute determines the character used to separate the fractional part from the whole.
🔹 StrictDP
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 , | false |
If the value of this attribute is true
, then the SCE will strictly verify the
number of decimal places allowed for currency input values. Thus, if the calling
application sends in a request with a currency amount of 1000.005
, the SCE
will return an error code.
If the value of this attribute is false
, then currency values sent in with an
invalid number of decimal places will be rounded to the correct number of
decimal places by the SCE (using five/four rounding), and a warning message with
this information will be returned with the response.
🔹 ThousandSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | , |
When displaying numeric values, this attribute determines the character used to separate the thousands places from the hundreds. Note that when parsing numeric values, the value of this attribute is ignored.
🟥 <IntRate>
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | [-99.999...600] |
The element data will determine the annual interest rate used for the loan. (Split rate loans require use of the setup files.)
The interest rate should be expressed as an annual percentage. For example, a loan computed with an interest rate of 6.125% would be specified as:
<IntRate>6.125</IntRate>
Attributes: None
🟦 <IntStartDate>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= <LoanDate> and <= <PmtDate> | <LoanDate> |
This element contains the date on which interest begins to accrue on the loan’s
principal balance. If this element is not specified, then the interest start
date is defaulted to be the <LoanDate>
. Also note that the
interest start date must be equal to the loan date when computing a construction
loan. The interest start date (when specified) must be on or after the loan
date, as well as on or before the <PmtDate>
. All dates must be in
the form of YYYY-MM-DD, and be 10 characters long. Hence, an interest start date
April 27, 2024 would be specified as:
<IntStartDate>2024-04-27</IntStartDate>
Attributes: None
🟦 <IrregPmt>[]
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No irregular payment |
These elements allow the calling application to specify when skipped payments are to be included in the loan's payment schedule. The element itself is empty, as all skipped payment data is contained it the element's attributes.
🔹 Index
Data Type | Values | Default |
---|---|---|
Integer | > 0 | 0 |
Instead of specifying a Month
(and optionally, a
Year
) for a given skipped payment, you may optionally specify a
payment number using the Index
attribute. Thus, if you wish to specify that
the first payment be skipped, you would set Index="1"
.
Note that if you specify a payment index, then you should not specify either a
Month
or Year
attribute. If you do, the
Index
value will take precedence and the others will be ignored.
🔹 Month
Data Type | Values | Default |
---|---|---|
Integer | [0...12] | 0 |
The Month
attribute allows the user to specify a month during which the
skipped payment is applicable. If the Year
attribute is not set for this
element, then the skipped payment will be applied for each payment falling in
the given month, throughout the entire term of the loan.
On the other hand, if the Year
attribute is set for this
element, then the skipped payment will only be applied to those payments falling
in the given month and year.
If the value of the Month
attribute is set to zero (0), then this skipped
payment specification is ignored.
If you wish to specify a skipped payment for a specific payment number (instead
of specifying the month and optionally, the year), then use the
Index
attribute and do not specify a Month or Year
attribute.
🔹 Year
Data Type | Values | Default |
---|---|---|
Integer | > 0 | 0 |
As discussed above, the Year
attribute works closely with the Month
attribute, and is entirely optional.
🟥 <LoanDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= 1900-01-01 |
This element determines when interest begins to accrue. If interest begins on a
later date, use the <IntStartDate>
element to define the date
on which interest begins to accrue.
This element contains the date on which the loan amount is disbursed and interest begins to accrue. All dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a loan date of March 4, 2024 would be specified as:
<LoanDate>2024-03-04</LoanDate>
Attributes: None
🟦 <OddDaysPrepaid>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No odd days prepaid interest |
If odd days interest should be treated as a prepaid finance charge or added to the first payment, then include this empty element in the request. The attributes of this element determine how odd days interest is computed and handled.
Attributes:
🔹AccrualCode
,🔹AddToPmt
,🔹AddToPrin
,🔹AnchorDate
,🔹ForceUnitPeriod
,🔹NoCap
,🔹UseDailyCost
,🔹UseNegODI
🔹 AccrualCode
Data Type | Values | Default |
---|---|---|
Enum | See below | 220 |
The accrual code defines how the odd days interest is computed.
Note that accrual code 250
("Variable Days Per Year") defines the basis divisor
days to be equal to 12 multiplied by the number of days in the month of the date
on which interest begins to accrue. Thus, if the interest start date falls in
November, then the number of basis days is 360. If the interest start date falls
in a month with 31 days, then the number of basis days is 372. For an interest
start date in February, the number of basis days will either be 336 or 348,
depending upon whether or not it is a leap year.
AccrualCode | Description |
---|---|
204 | Unit period simple w/ true 360 calendar and 360 day divisor |
205 | Unit period simple w/ true 360 calendar and 365 day divisor |
210 | Actual / 360 simple |
211 | True 365 / 360 simple |
220 | Actual / 365 simple |
221 | True 365 / 365 simple |
230 | Actual / Actual simple |
231 | Midnight 366 simple |
250 | Unit period simple w/ variable DPY divisor |
🔹 AddToPmt
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application wants the odd days interest to be added to the first
payment, then set the value of this attribute to true
. A value of false
indicates that the odd days interest will be treated as a prepaid fee.
🔹 AddToPrin
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If any odd days interest should be treated as a financed prepaid fee, then set
the value of this attribute to true
. Note that if both
AddToPmt
and AddToPrin
are set to true
, then a warning
message will be returned by the SCEX and the value of AddToPrin
will be set to
false
.
🔹 AnchorDate
Data Type | Values | Default |
---|---|---|
Enum | BackUnitPeriod , BackDaysPerPeriod | BackUnitPeriod |
The computed number of odd days is the number of days between the loan date and the anchor date. This attribute determines how to arrive at the anchor date.
BackUnitPeriod
- The anchor date is one unit period prior to the specified first payment date.BackDaysPerPeriod
- The anchor date is the number of days per period prior to the first payment date.
Please note that for both of these methods, the period used will be that associated with the payment stream in which the first payment occurs.
🔹 ForceUnitPeriod
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the loan's interest accrual is unit period, this attribute forces the period
to the first payment to be 1/12 (or 1/(PmtsPerYear) in general). Without this
attribute an accrual code of 202
(Unit Period /365) would use a factor of
Days/365 rather than the expected 1/12.
🔹 NoCap
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
When an odd days interest fee is present and financed, the value of this
attribute determines if the ODI fee is added to the principal balance for the
purposes of computing the ODI fee (e.g. if it is capitalized). If this value is
true
, the ODI is computed on the true principal balance less the ODI; false
means "compute ODI on the true principal balance.
🔹 UseDailyCost
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the total odd days prepaid fee is computed by first generating a rounded (to
the nearest penny) daily cost and then multiplying this value by the computed
number of odd days, then set the value of this property to true
.
A value of false
means that the daily cost is left unrounded, and the total
prepaid fee is rounded after the computation is complete.
🔹 UseNegODI
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If there are negative odd days in the loan, then the value of this attribute
determines if a negative odd days interest fee is computed. If the value of this
attribute is false
, then negative odd days fees are not allowed, the SCEX will
return a value of zero in this situation, and the computed payment will be
adjusted to take into account the negative odd days. A value of true
will
return a negative odd days interest fee (in effect, it then becomes an odd days
interest credit) when there are negative odd days in a loan.
🟥 <PmtDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= <LoanDate> and >= <IntStartDate> |
This element contains the date on which the first payment of the loan is made, and must be on or after the loan date.
All dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a first payment date of April 4, 2024 would be specified as:
<PmtDate>2005-04-04</PmtDate>
Attributes: None
🟥 <PrincipalPmts>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | > 0 |
Instead of specifying a given number of payments in the principal plus loan
(like the <Term>
element in an equal payment loan
request), the calling application must specify the number of principal
payments in the loan. The loan term is then computed based upon this value,
along with the number of principal payments per year and the number of interest
only payments preceding the first principal payment.
Attributes: None
🟦 <PrincipalReduction>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
This element contains the constant principal reduction amount to be applied per
principal and interest payment. If this value is set to to zero, then the
principal reduction amount will be computed as the principal balance divided by
the number of principal payments in the loan (see
<PrincipalPmts>
).
If the number of principal payments multiplied by the specified constant principal reduction amount does not equal the principal balance, then the final principal plus interest payment will be computed such that the principal balance is scheduled to be completely paid off at loan maturity.
Attributes: None
🟥 <Proceeds>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | >= 0 |
The proceeds specifies the amount the customer has frequested to borrow, ignoring every other financed quantity. Proceeds of up to one billion dollars are accepted.
The amount should be expressed as a number. For example, a request including
<Proceeds>10000.00</Proceeds>
indicates an amount requested of 10,000.
Attributes: None
🟦 <Protection>
Element Type | Data Type | Values | Default |
---|---|---|---|
Parent | - | - | No protection included |
The <Protection>
element is used to specify debt protection coverages such as
life, disability, involuntary unemployment, personal property and debt
cancellation. Each type of coverage is specified by its own sub-element, along
with the borrower birthdays. The following attributes apply to this element:
Attributes:
🔹FinanceProt
,🔹LineOfCredit
,🔹Mandatory
,🔹ShowBorrowerInfo
,🔹ShowCaps
🔹 FinanceProt
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
If the computed premiums for single premium debt protection products should be
financed along with the proceeds, then this attribute should be set to true
(which is the default value if not specified). A value of false
indicates that
the computed premiums will not be financed with the proceeds, and hence will be
paid out of pocket by the borrower. Note that this applies to single premium
insurance products only!
🔹 LineOfCredit
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this is an account using TruStage’s MOB insurance, and if this loan is a line
of credit where product term caps should be ignored, then set this attribute to
true
. Otherwise, leave this attribute unspecified or set it to false
.
🔹 Mandatory
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the value of this attribute is set to true
, then any computed payment
protection premium or fee will be considered a mandatory fee which will be
included as a part of the Regulation Z Finance Charge, and hence affect the
Regulation Z APR. In this case, the <Protection>
element in the response will contain a
Mandatory
="true"
attribute indicating this.
If the Mandatory attribute is set to false
, the loan will treat any premiums /
fees as normal.
🔹 ShowBorrowerInfo
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application would like to have data returned for each specified
borrower instead of a single <CovTerm>
element, then
set the value of this attribute to true
. Otherwise, leave this attribute
unspecified or set it to false
. See the <Borrower>
and <CovTerm>
elements defined in the response for
more information.
🔹 ShowCaps
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application would like to have cap information (e.g., maximum
terms, coverage amounts, ages, etc.) returned for each product offered, set the
value of this attribute to true
. Otherwise, leave this attribute unspecified
or set it to false
. See the <Caps>
element for more
information.
🟦 <Protection>
→<Birthday1>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= 1900-01-01 | No birthday specified |
This element contains the date of birth for the primary borrower. All dates must
be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a birthday of
April 9, 1972 would be specified as <Birthday1>1972-04-09</Birthday1>
. Note
that this element must be set if the Covers attribute of any of the four debt
coverage elements is set to borrower1
or both
.
Attributes: None
🟦 <Protection>
→<Birthday2>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= 1900-01-01 | No birthday specified |
This element contains the date of birth of the secondary borrower. All dates
must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a birthday
of May 21, 1969 would be specified as <Birthday2>1969-05-21</Birthday2>
.
Attributes: None
🟦 <Protection>
→<Disability>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No disability coverage |
The <Disability>
element determines what type of disability coverage is
requested for the loan. It also serves double duty as the debt cancellation
coverage element, for accounts set up to compute debt cancellation using the
disability tables. The element itself is empty, with all information needed for
disability coverage request being specified in the following attributes:
🔹 Benefit
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in the appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <Disability>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will assure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user specified coverage terms, then this attribute will be ignored.
🔹 Table
Data Type | Values | Default |
---|---|---|
Integer | [0...19] | 0 |
If the specified account has been set up with multiple disability or debt
cancellation plans, then this attribute determines which plan number will be
used. If no table number is specified, the first table (table zero) will be
used. To find out the number of available plans, use the
<AhSetCount>
element in the
<inINPUT_TOOL>
response.
🟦 <Protection>
→<Life>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No life coverage |
The <Life>
element determines what type of life coverage is requested for the
loan. The element itself is empty, with all information needed for a life
coverage request being specified in the following attributes:
Attributes:
🔹Coverage
,🔹Covers
,🔹CovTerm
,🔹Dismemberment
,🔹Method
,🔹UseLevelRates
🔹 Coverage
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
If you wish to specify a coverage amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum coverage amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified coverage amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in the appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <life>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will assure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user specified coverage terms, then this attribute will be ignored.
🔹 Dismemberment
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the specified account has been set up to offer optional dismemberment coverage to be offered with life coverage (using an increased rate in the premium calculation), then this attribute determines whether or not this additional coverage will be provided.
🔹 Method
Data Type | Values | Default |
---|---|---|
Enum | default , net , gross | default |
If the specified account has been set up to offer single premium life coverage
by default, net or gross coverage, then this attribute can be used to specify
which type of coverage to compute with the loan. For all other accounts, the
default value of default
should be used (or simply do not specify the attribute
at all).
🔹 UseLevelRates
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the account specified has been set up to offer single premium credit life
using level rates instead of the normal decreasing rates, then set this
attribute’s value to true
. Otherwise, use the default value of false
.
🟦 <TILARESPA2015>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No TILA RESPA disclosures |
The presence or absence of this element determines whether or not the TILA RESPA data table is present in the output.
If this element is present in the loan request, then the SCEX will return data for the Integrated Mortgage Disclosures under the Real Estate Settlement Procedures Act (Regulation X) and the Truth In Lending Act (Regulation Z) rule, which is required as of August 1st, 2015. If this element is not present, then the TILA RESPA outputs will not be generated.
Attributes: None
🟦 <TotalDown>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
This optional element represents the total down payment that the borrower has applied to reduce the requested proceeds. It may consist of a cash down payment, net trade-in value, or rebate. You only need to specify a total down payment if the loan needs to disclose a total sale price. Typical examples of these loan types are auto and boat loans.
To generate a total down payment, please see the chapter detailing the SCEX’s Auto Prompts module.
Attributes: None
Fixed Principal Plus Interest Loan - Response
Please see the Legend to understand the conventions used to document each element and attribute. Note that for responses, the XML elements are documented in the order that they appear in the response.
🟥 <outPRINCIPAL_PLUS_INTEREST>
Element Type | Data Type |
---|---|
Parent | - |
This element is the root element of the response, and contains all of the relevant outputs.
Attributes:
🔹CountryName
🔹 CountryName
Data Type | Values | Default |
---|---|---|
Text | See table | United States of America |
If a valid Country
code was specified as an
attribute of the input module element, the full name of the country associated
with the specified Country code will be reported in this attribute.
🟥 <Results>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which describe the success or failure of the calculation, any warning or error messages, and the most important numerical results for the query.
<Results>
<Description>Successful Calculation</Description>
<Principal_Reduction>100.00</Principal_Reduction>
<First>8.33</First>
<Final>100.83</Final>
<Term>12</Term>
</Results>
Attributes: None
🟥 <Results>
→<Description>
Element Type | Data Type |
---|---|
Data | Text |
If the calculation was completed successfully, then this element will contain
the value Successful Calculation
. Otherwise, this element will contain a
description of the problem encountered during the attempted computation.
Attributes: None
🟦 <Results>
→<XMLDetail>[]
Element Type | Data Type | Default |
---|---|---|
Data | Text | NULL |
The <XMLDetail>
elements are messages passed back to the calling application
which detail the status of the XML request. If the SCEX issues any warnings
regarding unrecognized elements or attributes, then each warning message will be
displayed in an <XMLDetail>
element.
Attributes: None
🟥 <Results>
→<PrincipalReduction>
Element Type | Data Type |
---|---|
Data | Currency |
If the <PrincipalReduction>
element of the input request was specified and
greater than zero, then this element will hold the same value as that specified.
If the specified principal reduction amount was zero, then the constant
principal reduction amount calculated by the SCE is returned here.
Attributes: None
🟥 <Results>
→<First>
Element Type | Data Type |
---|---|
Data | Currency |
The computed amount for the first interest only payment for the requested loan.
To access the other payments in the payment stream, see the <Final>
element or consult the <AmTable>
element.
Attributes: None
🟥 <Results>
→<Final>
Element Type | Data Type |
---|---|
Data | Currency |
The final interest and principal payment in the loan's payment stream. To access
the other payments in the payment stream, see the <First>
element or
consult the <AmTable>
element.
Attributes: None
🟥 <Results>
→<Term>
Element Type | Data Type |
---|---|
Data | Integer |
The total number of payments (including skipped, interest only, and principal plus interest) made over the course of the loan.
Attributes: None
🟥 <FedBox>
Element Type | Data Type |
---|---|
Parent | - |
Some of the most important compliance related outputs are organized into the
<FedBox>
disclosures.
<FedBox>
<AmtFin>1000.00</AmtFin>
<FinChg>62.49</FinChg>
<TotPmts>1062.49</TotPmts>
<RegZAPR Type="Actuarial">9.998</RegZAPR>
</FedBox>
Attributes: None
🟥 <FedBox>
→<AmtFin>
Element Type | Data Type |
---|---|
Data | Currency |
The Regulation Z Amount Financed, which is defined as the amount of credit provided to you or on your behalf.
Attributes: None
🟥 <FedBox>
→<FinChg>
Element Type | Data Type |
---|---|
Data | Currency |
This element contains the Regulation Z Finance Charge, described as the dollar amount the credit extension will cost you.
Attributes: None
🟥 <FedBox>
→<TotPmts>
Element Type | Data Type |
---|---|
Data | Currency |
The amount which the borrower will have paid when the borrower has made all scheduled payments.
Attributes: None
🟦 <FedBox>
→<TotalSalePrice>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | <TotPmts> |
The sum of the total of payments plus the total down payment. Please note that
if no <TotalDown>
element was specified in the
request, then this element will not be present.
Attributes: None
🟥 <FedBox>
→<RegZAPR>
Element Type | Data Type |
---|---|
Data | Decimal |
The Regulation Z APR, which is the cost of the extension of credit expressed as a yearly rate. The Reg. Z APR element has a few attributes, described below:
Attributes:
🔹Max
,🔹MaxExceeded
,🔸Type
🔹 Max
Data Type | Default |
---|---|
Decimal | n/a |
This attribute specifies the maximum APR as configured in the account's setup files. If no maximum APR has been specified, then this attribute will not be present. The value of this attribute should be displayed as a percentage. As an example, for Max="36.000", you would disclose a maximum APR of 36.000%.
🔹 MaxExceeded
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
If a maximum APR is configured in the account's setup files, then the value of
this attribute indicates whether or not the current loan exceeds the maximum
allowed APR. As an example, if the maximum APR has been set to 36% and the APR
for the returned loan was 37.125%, the <RegZAPR>
element would be:
<RegZAPR Type="Actuarial" Max="36.000" MaxExceeded="true">37.125</RegZAPR>
🔸 Type
Values | |
---|---|
Enum | Actuarial , USRule , EU_APR , Canadian_APR , XIRR , XIRR360 , IRR , YieldIRR , Open_End |
This attribute specifies the method used to compute the reported APR: Actuarial or US Rule The method used is dictated by the setup files for the given account, but may be overridden in the XML input query.
Actuarial
- Governed by Appendix J to Regulation Z. Default US APR.USRule
- Used by large banks to mirror loan amortization.EU_APR
- Default European Union APR.Canadian_APR
- Default APR for Canada.XIRR
- Extended Internal Rate of Return (same as excel function).XIRR360
-XIRR
using a 360 divisor rather than a 365 divisor.YieldIRR
- Canadian mortgages may compute periodic interest using a fractional power of a periodic yield.Open_End
- Simply returns the interest rate.
🟦 <FedBox>
—><MAPR>
Element Type | Data Type |
---|---|
Data | Decimal |
If the military APR has been requested, then this element will be included in the output. The value of the element is the military APR, and the element has a few attributes, described below:
Attributes:
🔸Advance
,🔹Max
,🔹MaxExceeded
🔸 Advance
Data Type |
---|
Currency |
This attribute is the equivalent of the Amount Financed for the Military APR. Specifically, it is the principal balance less any MAPR fees, debt protection, etc.
🔹 Max
Data Type | Default |
---|---|
Decimal | 36.0 |
This attribute specifies the maximum Military APR as specified in the input XML
(see MAPR_Max
). If not specified, a default value
of 36% is assumed. The value of this attribute should be displayed as a
percentage. As an example, for Max="36.0"
, you would disclose a maximum
Military APR of 36.0%.
🔹 MaxExceeded
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
The value of this attribute 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>
element would be:
<MAPR Advance="1350.00" Max="36.000" MaxExceeded="true">37.125</MAPR>
🟦 <TILARESPA2015>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which are of interest to fulfilling the
2015 TILA RESPA rule. It will only be present if the
<TILARESPA2015>
element is present in the
request.
Sample TILARESPA2015 output:
<TILARESPA2015>
<TotalLoanCosts>0</TotalLoanCosts>
<CD_TotPmts>27311.07</CD_TotPmts>
<In5Years PaidTotal="27311" PaidPrincipal="25000"/>
<TIP>9.244</TIP>
<MaxPnIPmt Date="2012-11-01">1636.65</MaxPnIPmt>
<MinRate Idx="1">5.651</MinRate>
<MaxRate Idx="1">5.651</MaxRate>
<ProjectedPayments NumCols="3">
<PPCol Num="1" Title="Year 1">
<Years Start="1" End="1"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
<PPCol Num="2" Title="Year 2">
<Years Start="2" End="2"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
<PPCol Num="3" Title="Year 3">
<Years Start="3" End="3"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
</ProjectedPayments>
</TILARESPA2015>
Attributes: None
🟦 <TILARESPA2015>
→<LoanCost>[]
Element Type | Data Type |
---|---|
Data | Currency |
For every <Fee>
element present in the input which has
its IsLoanCost
attribute 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>
input element), there will be a
corresponding <LoanCost>
element. The value of this element will be the
numerical value of the fee, rounded to the nearest dollar.
🔹 In5Years
Data Type | Default |
---|---|
Currency | <LoanCost> |
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 attribute will be present and disclose the portion of this loan cost that is accrued during the first five years.
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
This attribute will hold the same value as the attribute of the same name for
the <Fee>
element. It is recommended that each fee
have a unique Name
for identification purposes.
🟥 <TILARESPA2015>
→<TotalLoanCosts>
Element Type | Data Type |
---|---|
Data | Currency |
This element holds the sum of all borrower paid loan costs. Since all
<LoanCost>
element values are rounded dollar amounts, the value of this
element will also be a rounded dollar amount.
Attributes: None
🟥 <TILARESPA2015>
→<CD_TotPmts>
Element Type | Data Type |
---|---|
Data | Currency |
This element holds 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 will be the numerical value of the sum.
Attributes: None
🟥 <TILARESPA2015>
→<In5Years>
Element Type | Data Type |
---|---|
Empty | - |
This element is empty, with all important values required for the new "In 5 Years" section returned in the following two attributes of this element.
Attributes:
🔸PaidPrincipal
,🔸PaidTotal
🔸 PaidPrincipal
Data Type |
---|
Currency |
This attribute 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.
🔸 PaidTotal
Data Type |
---|
Currency |
This attribute 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.
🟥 <TILARESPA2015>
→<TIP>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the total interest percentage, rounded to three or fewer decimal places, as required.
Attributes: None
🟥 <TILARESPA2015>
→<MaxPnIPmt>
Element Type | Data Type |
---|---|
Data | Currency |
The value of this element holds the maximum scheduled principal and interest payment during the term of the loan.
Attributes: 🔸
Date
🔸 Date
Data Type |
---|
Date |
This attribute contains 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. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🟥 <TILARESPA2015>
→<MinRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the minimum possible interest rate applied during the term of the loan.
Attributes: 🔸
Idx
🔸 Idx
Data Type |
---|
Integer |
This attribute contains the payment number for which the minimum rate is first applicable.
🟥 <TILARESPA2015>
→<MaxRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the maximum possible interest rate applied during the term of the loan.
Attributes: 🔸
Idx
🔸 Idx
Data Type |
---|
Integer |
This attribute contains the payment number for which the maximum rate is first applicable.
🟥 <TILARESPA2015>
→<ProjectedPayments>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which are of interest to filling the
Projected Payments table. It will only be present if the <TILARESPA2015>
element is present in the XML request for a supported loan type.
Attributes: 🔸
NumCols
🔸 NumCols
Data Type | Values |
---|---|
Integer | [1...4] |
This attribute will hold the number of columns which must be present in the Projected Payments table. It will be a numeric value from 1 to 4.
🟥 <ProjectedPayments>
→<PPCol>[]
Element Type | Data Type |
---|---|
Parent | - |
For every column required in the Projected Payments table, there will be an
associated <PPCol>
element. This element is a parent to child elements which
contain data associated with a single column of the table.
🔸 Num
Data Type | Values |
---|---|
Integer | [1...4] |
This attribute will hold the number of the column to which the following data applies.
🔸 Title
Data Type |
---|
Text |
The value of this attribute 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.
🟥 <ProjectedPayments>
→<PPCol>
→<Years>
Element Type | Data Type |
---|---|
Empty | - |
The attributes of this element hold the beginning and ending year numbers for which this column data applies. The element itself is empty.
🔸 End
Data Type |
---|
Integer |
The ending year associated with this column's data.
🔸 Start
Data Type |
---|
Integer |
The beginning year associated with this column's data.
🟥 <ProjectedPayments>
→<PPCol>
→<PnIPmt>
Element Type | Data Type |
---|---|
Empty | - |
This empty element has several attributes which describe the principal and interest payments associated with this column.
🔸 Balloon
Data Type | Values |
---|---|
Boolean | true , false |
If any of the payments associated with this column are balloon payments (e.g.
isolated payments that are more than twice the value of a regular periodic
payment), then the value of this attribute will be true
.
🔸 IntOnly
Data Type | Values |
---|---|
Enum | all , some , none |
none
- No payments associated with the column are Interest Onlysome
- Some, but not all, of the payments associated with the column are Interest Only.all
- All of the payments associated with the column are Interest Only.
Note that for the purposes of this attribute, 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.
🔸 Max
Data Type |
---|
Currency |
This attribute holds the maximum principal and interest payment for this column.
If this value is not the same as the value of the Min
attribute, then a range of rounded payments must be displayed. If the values are
the same, then only a single value needs to be disclosed.
🔸 Min
Data Type |
---|
Currency |
This attribute holds the minimum principal and interest payment for this column.
🟥 <ProjectedPayments>
→<PPCol>
→<MIPmt>
Element Type | Data Type |
---|---|
Data | Currency |
The value of this element 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.
Attributes: None
🟥 <ProjectedPayments>
→<PPCol>
→<TotalPmt>
Element Type | Data Type |
---|---|
Empty | - |
This empty element has two attributes which describe the estimated total payment or range of payments associated with this column. Note that this value does not include any estimated escrow, as the SCEX does not support escrow calculations. The calling application will need to increase these values by the estimated escrow amounts if any are present.
🔸 Max
Data Type |
---|
Currency |
This attribute holds the maximum estimated total payment for this column. If
this value is not the same as the value of the Min
attribute,
then a range of rounded payments must be displayed. If the values are the same,
then only a single value needs to be disclosed.
🔸 Min
Data Type |
---|
Currency |
This attribute holds the minimum estimated total payment for this column.
🟥 <Moneys>
Element Type | Data Type |
---|---|
Parent | - |
This element groups together those other major cash amounts not disclosed under
the <FedBox>
element, such as the principal balance, interest
change, fee amounts and protection premiums.
<Moneys>
<Principal>10120.00</Principal>
<Interest>1635.80</Interest>
<OddDaysPrepaid OddDayCount="15" DailyCost="2.77">41.55</OddDaysPrepaid>
<FinFees>120.00</FinFees>
<FinChgFees>91.55</FinChgFees>
<PocketFees>65.00</PocketFees>
<MAPRFees>201.55</MAPRFees>
<Protection Category="None" PerPmt="0.00" PerDay="0.00">0.00</Protection>
<Fee Name="FinFee">60.00</Fee>
<Fee Name="Prepaid Fee">50.00</Fee>
</Moneys>
Attributes: None
🟥 <Moneys>
→<Principal>
Element Type | Data Type |
---|---|
Data | Currency |
The principal balance is the amount on which interest is accrued. The principal balance consists of the amount requested by the borrower, any fees which are financed, as well as financed protection premiums.
Attributes: None
🟥 <Moneys>
→<Interest>
Element Type | Data Type |
---|---|
Data | Currency |
This element contains the total interest accrued during the term of the loan, assuming the borrower will make all scheduled payments.
Attributes: None
🟦 <Moneys>
→<ConstructInterest>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If the requested loan is a construction loan with a permanent loan attached and the account specified is set up to compute construction loans via the "Simple" method, then this element 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 <Interest>
element, and
both loans reflected in a single, combined amortization schedule.
If the requested loan was not a construction loan, or if construction loans have not been set up for the given account, then this element will not appear in the results.
Attributes: None
🟦 <Moneys>
→<OddDaysPrepaid>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element, if present, holds the total odd days prepaid finance charge. If no odd days prepaid fee was requested, then this element will not be present in the output.
Attributes:
🔹AddToPmt
,🔹DailyCost
,🔸OddDayCount
,🔹OddMonths
🔹 AddToPmt
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
If the odd days interest has been added to the first payment, this attribute
will be present in the output with a value of true
. If the odd days interest has
been treated as a prepaid finance charge, then this attribute will not be
present and a default value of false
should be assumed.
🔹 DailyCost
Data Type | Default |
---|---|
Currency | n/a |
If the odd days prepaid fee is computed using a rounded daily cost, then the value of this attribute will hold that value. If the odd days prepaid is not computed using a rounded daily cost, then this attribute will not be present.
🔸 OddDayCount
Data Type |
---|
Integer |
This attribute holds the number of odd days computed by the SCE for the requested loan.
🔹 OddMonths
Data Type | Default |
---|---|
Integer | n/a |
This attribute holds the number of odd months computed by the SCE for the
requested loan when using odd days accrual method 250
.
🟦 <Moneys>
→<MinInterestPmt>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | n/a |
The <MinInterestPmt>
element will only appear if the
Metavante
attribute has been set to true
,
and even then only under certain loan conditions. The element itself contains no
data, as all required data is found in the following two attributes:
🔸 Index
Data Type |
---|
Integer |
The Index
attribute specifies the payment number in the payment stream at which
the minimum interest payment is achieved.
🔸 Pmt
Data Type |
---|
Currency |
The interest payment amount for the given Index
.
🟦 <Moneys>
→<MaxInterestPmt>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | n/a |
The <MaxInterestPmt>
element will only appear if the
Metavante
attribute has been set to true
,
and even then only under certain loan conditions. The element itself contains no
data, as all required data is found in the following two attributes:
🔸 Index
Data Type |
---|
Integer |
The Index
attribute specifies the payment number in the payment stream at which
the maximum interest payment is achieved.
🔸 Pmt
Data Type |
---|
Currency |
The interest payment amount for the given Index
.
🟦 <Moneys>
→<FinFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element contains the sum of all financed fees requested for the loan. If no financed fees were requested, then this element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<FinChgFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element contains the sum of all APR affecting fees (those fees which are
added to the <FinChg>
) requested for the loan. If no APR affecting
fees were requested, then this element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<PocketFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element 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 element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<MAPRFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element 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.
Attributes: None
🟦 <Moneys>
→<Protection>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
Contains the total cost of all protection plans included with the computed loan.
For the individual plan costs, see the <ProtectionInfo>
elements described
below. The attributes of this element are as follows:
Attributes:
🔸Category
,🔹IsDp
,🔹Mandatory
,🔸PerDay
,🔸PerPmt
🔸 Category
Data Type | Values |
---|---|
Enum | See below |
This attribute specifies the category under which the computed loan protection falls. The possible values for this attribute are:
None
- No protection catetory has been identified.SP
- Single Premium protection financed at loan closing.MOB
- Monthly outstanding balance (paid on Payments).TrueMOB
- Premiums paid monthly on a date specified in the setup files.PaidSP
- Single premium protection paid at closing.ConstantMOB
- CMOB is a product paid with payments and a constant amount.AddToPmtMOB
- MOB insurance added to a constant P&I payment, resulting in variable payments.
🔹 IsDp
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
This attribute indicates if the specified account’s protection is set up as debt
protection. If this attribute 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).
🔹 Mandatory
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
This attribute should only appear in the response if the value of the attribute
is true
. If this attribute does not appear in the output, then the value of
this attribute should default to false
. If the value of the Mandatory
attribute is true
, then the total premium/fee amount for all insurance/debt
protection products has been treated as a part of the Regulation Z Finance
Charge, and hence will affect the Reg. Z APR.
🔸 PerDay
Data Type |
---|
Currency |
Contains the cost of all loan protection products expressed as dollars per day.
🔸 PerPmt
Data Type |
---|
Currency |
Contains the cost of all loan protection products expressed as dollars per payment.
🟦 <Moneys>
→<MinIntChgAdj>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a minimum interest charge is configured in the account’s setup files and the final payment was adjusted to meet this minimum interest charge, then this element will be returned in the response and will contain the value of the minimum finance charge adjustment.
Attributes: None
🟦 <Moneys>
→<MinFinChgAdj>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a minimum finance charge is configured in the account’s setup files and the final payment was adjusted to meet this minimum finance charge, then this element will be returned in the response and will contain the value of the minimum finance charge adjustment.
Attributes: None
🟦 <Moneys>
→<Fee>[]
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
For each non-zero fee requested in the loan calculation, there will be a <Fee>
element containing the computed fee amount.
Attributes:
🔹Name
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
Contains the value of the Name attribute of the corresponding
<Fee>
element from the request. If no such attribute is
present in the <Fee>
element, then none will be present
in the response element.
🟥 <Accrual>
Element Type | Data Type |
---|---|
Parent | - |
This element groups together interest accrual information, such as the accrual method used, days to the first payment, and the loan’s maturity date.
<Accrual>
<Method>Actual/365 US Rule</Method>
<Days1Pmt DayCount="Actual">74</Days1Pmt>
<Maturity>2015-07-01</Maturity>
</Accrual>
Attributes: None
🟥 <Accrual>
→<Method>
Element Type | Data Type |
---|---|
Data | Text |
The <Method>
element contains a textual description of the interest accrual
method used to compute the loan (e.g. "Unit Period 365 Simple").
Attributes: None
🟥 <Accrual>
→<Days1Pmt>
Element Type | Data Type |
---|---|
Data | Integer |
This element contains the number of days to the first payment, computed by one of two methods as specified in this element’s sole attribute.
Attributes:
🔸DayCount
🔸 DayCount
Data Type | Values |
---|---|
Enum | Actual , True360 |
Actual
- The actual number of days between these two dates are used.31
would be the day count for the 2024-01-01 to 2024-02-01.True360
- All months have 30 days.30
would be the day count for 2024-01-01 to 2024-02-01.
🟥 <Accrual>
→<Maturity>
(YYYY-MM-DD)
Element Type | Data Type |
---|---|
Data | Date |
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. Hence, a maturity date of February 15, 2020 would be specified as
<Maturity>2020-02-15</Maturity>
.
Attributes: None
🟥 <PmtStream>[]
Element Type | Data Type |
---|---|
Empty | - |
The <PmtStream>
element(s) describe the scheduled stream of payments for the
computed loan in the order paid. Instead of disclosing each and every payment
individually (which can be done with the <AmTable>
element), the
payment streams group together consecutive equal payments to produce a
compressed output view.
The following code translates to "Twelve consecutive payments of $879.31 computed at 10.000% begin on January 22nd, 2024".
<PmtStream Term="12" Pmt="879.31" Rate="10.000" Begin="2024-01-22"/>
Each element describes a single stream of equal payments, using the following attributes to define the important properties of each resulting payment stream:
🔸 Begin
Data Type |
---|
Date |
This attribute contains 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. In the example above, the first payment stream
is scheduled to begin on September 18, 2005. Hence, the Begin attribute for the
first payment stream element would be specified as Begin="2005-09-18"
.
🔸 Pmt
Data Type |
---|
Currency |
The Pmt
attribute contains the computed payment amount for this payment stream.
For the sample payment stream above, the payment amount is 879.31.
🔸 Rate
Data Type |
---|
Decimal |
Contains the interest rate used for the duration of this payment stream. Usually, the interest rate will remain fixed for the duration of the loan unless you are computing an adjustable rate loan or you are computing a LaserPro construction loan with permanent loan attached.
🔸 Term
Data Type |
---|
Integer |
The Term
attribute holds the number of contiguous payments that make up the
given payment stream. In the example payment stream above, the term for the
stream is 12.
🟦 <ProtectionInfo>[]
Element Type | Data Type |
---|---|
Parent | - |
These elements (there may be more than one if more than one type of protection was requested) contain information related to the various protection products requested on the given loan. Each element group provides complete results for each requested product (decreasing life, level life, disability/debt cancellation, involuntary unemployment, or personal property).
🔸 Formula
Data Type | Values |
---|---|
Enum | see Protection Formulas |
The Formula
attribute contains an abbreviated description of the formula used
to compute the desired protection product. The formula codes are described
here.
🔸 Product
Data Type | Values |
---|---|
Enum | Life , Level , Disability , Unemployment , Property |
This attribute informs the calling application to which type of protection product this element refers: decreasing life, level life, disability/debt cancellation, involuntary unemployment or personal property.
🔹 RateType
Data Type | Values |
---|---|
Enum | Fixed , Variable |
Fixed
- Protection rate stays constant during the calculations.Variable
- Protection rate changed from Joint to Single as the loan evolves.
🟥 <ProtectionInfo>
→<CalcResult>
Element Type | Data Type |
---|---|
Data | Text |
This element 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 child elements
of <ProtectionInfo>
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 child elements of
<ProtectionInfo>
, as the product was not computed.
<CalcResult>Valid Calculation</CalcResult>
Attributes: None
🟥 <ProtectionInfo>
→<Cost>
Element Type | Data Type |
---|---|
Empty | - |
Attributes of this empty element 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.
The only time there will be two <Cost>
elements to parse is when the account
has been set up to use Plateau’s Uniguard product, and the user has requested
joint coverage. If this is the case, then two <Cost>
elements are provided to
disclose two premiums instead of a single aggregate joint premium.
<Cost Premium="827.26" PerPmt="19.28" PerDay="0.63" Factor="1.0154"/>
🔸 Factor
Data Type |
---|
Decimal |
The rate factor used to compute the premium for the requested protection product.
🔸 PerDay
Data Type |
---|
Currency |
The daily cost of coverage, expressed in dollars.
🔸 PerPmt
Data Type |
---|
Currency |
The cost of coverage expressed as dollars per payment.
🔸 Premium
Data Type |
---|
Currency |
The total cost for this protection over the term of the loan.
🟥 <ProtectionInfo>
→<Coverage>
Element Type | Data Type |
---|---|
Empty | - |
The aggregate coverage amount and note are provided in the following attributes of this empty element:
<Coverage Amount="75000.00" Note="Partial Coverage of $75,000"/>
🔸 Amount
Data Type |
---|
Currency |
This attribute contains the aggregate coverage amount for this protection product.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🟥 <ProtectionInfo>
→<Benefit>
Element Type | Data Type |
---|---|
Empty | - |
This empty element will only show up for the disability and involuntary unemployment products.
<Benefit Amount="1000.00" Note="Partial Benefit of $1,000"/>
🔸 Amount
Data Type |
---|
Currency |
Attribute which contains the monthly benefit amount for this protection product.
🔸 Note
Data Type |
---|
Text |
This Note
will describe 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.
🔹 Periodic
Data Type | Default |
---|---|
Currency | n/a |
If the account has been configured to disclose periodic benefits (as opposed to
monthly benefit amounts, which are returned in the Amount
attribute described above), and if the specified payment frequency is other than
monthly, then this attribute will be present and will hold the periodic benefit
amount.
🟦 <ProtectionInfo>
→<CovTerm>
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the term of coverage for the requested product. If the request has specified the coverage term, then this element will be populated with that term.
<CovTerm InMonths="75" InPmts="75" Maturity="2018-09-22" Note="Truncated: Keep Benefit"/>
🔹 InDays
Data Type | Default |
---|---|
Integer | n/a |
Attribute which expresses the term of coverage in days. This attribute will only be present for the level life product, and even then only if needed (for example, when covering single payment notes).
🔸 InMonths
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of months.
🔸 InPmts
Data Type |
---|
Integer |
Contains the number of payments covered.
🔸 Maturity
(YYYY-MM-DD)
Data Type |
---|
Date |
This attribute contains the maturity date for the requested coverage. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🟦 <ProtectionInfo>
→<Borrower>[]
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the term of
coverage of a specified borrower, for the requested product. Note that this
element will only be present if the input XML request has specified
ShowBorrowerInfo
= "true"
, and a valid
birthdate was provided. The following attributes are defined for this purpose:
Attributes:
🔸AgeAtIssue
,🔸AgeAtMaturity
,🔸Birthday
,🔸Maturity
,🔸Months
,🔸Note
,🔸Pmts
🔸 AgeAtIssue
Data Type |
---|
Special - see below |
If coverage is written on this borrower, then the value of this attribute 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.
🔸 AgeAtMaturity
Data Type |
---|
Special - see below |
If coverage is written on this borrower, then the value of this attribute 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.
🔸 Birthday
Data Type |
---|
Date |
This attribute contains the birthday associated with the borrower, as specified in the request. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🔸 Maturity
Data Type |
---|
Date |
The value of this attribute contains the coverage maturity date for this particular borrower.
🔸 Months
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of months.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🔸 Pmts
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of payments.
🟦 <ProtectionInfo>
→<Caps>
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the maximum
terms, amounts, and ages associated with the requested product. This element
will only be present if the ShowCaps
attribute
of the <Protection>
element is set to true
.
<Caps Cov="75000" Ben="1000" Term="84" InceptAge="65" AttainAge="66"/>
Attributes:
🔸AttainAge
,🔸Ben
,🔸Cov
,🔸InceptAge
,🔸Term
🔸 AttainAge
Data Type |
---|
Integer |
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.
🔸 Ben
Data Type |
---|
Currency |
Contains the maximum monthly benefit amount, expressed in dollars. If no cap is present or applicable, then a value of zero is returned.
🔸 Cov
Data Type |
---|
Currency |
Contains the maximum aggregate coverage amount, expressed in dollars. If no cap is present or applicable, then a value of zero is returned.
🔸 InceptAge
Data Type |
---|
Integer |
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.
🔸 Term
Data Type |
---|
Integer |
Contains the maximum coverage term, expressed in months. If no cap is present or applicable, then a value of zero is returned.
🟦 <AmTable>
Element Type | Data Type |
---|---|
Parent | - |
This element (if present) contains child elements which describe the loan's
amortization information. This element (and all of its child elements) will only
be present if the HideAmort
property of the
root element of the input query is set to false
.
<AmTable>
Attributes will only occur as feedback data for Canadian APR's.
🔹 AvgBal
Data Type | Default |
---|---|
Currency | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute is the average balance of the loan used in the Canadian APR calculation.
🔹 Months
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🔹 OddDays
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🔹 Weeks
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🟦 <AmTable>
→<GrandTotals>[]
Element Type | Data Type |
---|---|
Empty | - |
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 the following attributes:
<GrandTotals PmtTot="10551.72" IntTot="551.68" PrinTot="10000.04"/>
🔹 AHTot
Data Type | Default |
---|---|
Currency | 0 |
The AHTot
attribute 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 over the duration
of the loan.
🔹 CLTot
Data Type | Default |
---|---|
Currency | 0 |
The CLTot
attribute 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.
🔸 IntTot
Data Type |
---|
Currency |
Contains the sum of all interest attributes in the AmLine
elements.
This amount will be different from the <Interest>
element if
there is a nonzero EndBal
for the final line of
amortization. The two will differ by this non-zero EndBal
.
🔸 PmtTot
Data Type |
---|
Currency |
Contains the total of payments scheduled for the computed loan.
🔸 PrinTot
Data Type |
---|
Currency |
Like IntTot
above, this attribute contains the total
amount paid to principal during the loan term, assuming all payments are made as
scheduled.
🟦 <AmTable>
→<SubTotals>[]
Element Type | Data Type |
---|---|
Empty | - |
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 <SubTotals>
element present. The element itself is empty, as all the
interesting categories are found in the following attributes:
<SubTotals Year="2024" Start="1" Events="12" PmtSub="10551.72" IntSub="551.68" PrinSub="10000.04"/>
Attributes:
🔹AHSub
,🔹CLSub
,🔸Events
,🔸IntSub
,🔸PmtSub
,🔸PrinSub
,🔸Start
,🔸Year
🔹 AHSub
Data Type | Default |
---|---|
Currency | 0 |
The AHSub
attribute 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
.
🔹 CLSub
Data Type | Default |
---|---|
Currency | 0 |
The CLSub
attribute 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
.
🔸 Events
Data Type |
---|
Integer |
This attribute defines the number of amortization events (contained in
<AmLine>
elements which are defined below) which belong to this
calendar Year
.
🔸 IntSub
Data Type |
---|
Currency |
Holds the total amount paid to interest over the Year
in
question, assuming all payments are made as scheduled.
🔸 PmtSub
Data Type |
---|
Currency |
Contains the total of payments scheduled for the Year
in
question.
🔸 PrinSub
Data Type |
---|
Currency |
Like IntSub
above, this attribute contains the total
amount paid to principal during the Year
in question,
assuming all payments are made as scheduled.
🔸 Start
Data Type |
---|
Integer |
This attribute defines the first amortization event which falls in the specified
calendar Year
. To find the <AmLine>
element
which corresponds to this value, match the Idx attribute of the
<AmLine>
element with the integer value reported by this attribute.
🔸 Year
Data Type |
---|
Integer |
The given calendar year for which the subtotal data is applicable.
🟥 <AmTable>
→<AmLine>[]
Element Type | Data Type |
---|---|
Empty | - |
There is one <AmLine>
element 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.) However, some loan protection methods (TruStage's monthly
renewable product, to be exact) have amortization events which correspond to
loan protection premiums being added to the loan balance on specific dates.
<AmLine Idx="1" Date="2024-01-01" BegBal="10000.00" Pmt="879.31" Int="84.93" Prin="794.38" EndBal="9205.62"/>
As with the <GrandTotals>
and <SubTotals>
elements, this element is empty and contains all of the useful information for a
given point in the amortization of a loan in the following attributes.
Attributes:
🔹AH
,🔸BegBal
,🔹CL
,🔸Date
,🔸EndBal
,🔸Idx
,🔸Int
,🔸Pmt
,🔸Prin
,🔹UnpaidInt
🔹 AH
Data Type | Default |
---|---|
Currency | 0 |
The AH
attribute 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.
🔸 BegBal
Data Type |
---|
Currency |
The principal balance before the amortization event occurs.
🔹 CL
Data Type | Default |
---|---|
Currency | 0 |
The CL
attribute 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.
🔸 Date
Data Type |
---|
Currency |
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.
🔸 EndBal
Data Type |
---|
Currency |
The principal balance amount, after the amortization event has taken place.
🔸 Idx
Data Type |
---|
Integer |
The index of the amortization event, which is either the payment number, or zero. A value of zero designates a protection premium that was charged on a date other than a payment date. (Occurs with protection category "TrueMOB").
🔸 Int
Data Type |
---|
Currency |
The amount of the payment which goes to pay interest.
🔸 Pmt
Data Type |
---|
Currency |
The amount of the payment (or zero if the event is a "TrueMOB" protection premium).
🔸 Prin
The amount of the payment which goes to reduce the principal balance.
🔹 UnpaidInt
Data Type | Default |
---|---|
Currency or Decimal | 0 |
This attribute 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 places. If rounded, then the unpaid interest is displayed to two (2) decimal places.
🟦 <Metavante>
Element Type | Data Type |
---|---|
Empty | - |
This element will only be present if the
Metavante
attribute of the root element is
set to true
. The element itself is empty, as all of the useful information is
in the following attributes:
Attributes:
🔸FormsTerm
,🔸HostTerm
🔸 FormsTerm
Data Type |
---|
Integer |
The number of months in the loan, as computed using the Metavante FORMS method.
🔸 HostTerm
Data Type |
---|
Integer |
The number of months in the loan, as computed using the Metavante HOST method.
Skipped and Irregular Payment Loans
At times, people in certain seasonal professions (such as teachers and farmers) may need to skip payments scheduled for a given selection of months. As an example, if a teacher is not paid in July, August and September, then it might be helpful if the individual could skip payments scheduled during those months. Similarly, a borrower may also want to define a fixed payment of a specified amount at some time during the loan.
The above two situations are what we call loans with skipped and irregular payment schedules. A skipped payment may be defined as a payment of zero or an interest only payment. An irregular payment may be defined as a payment amount specified by the borrower in its entirety or a specified principal amount for the payment in question, to which interest is added.
Sample Request
The example below skips the summer months of June, July and August and plans for an irregular specified payment of $2,000 to be made in the month of December.
<inSKIPS_IRREGULARS AccrualCode="320">
<LoanDate>2023-12-01</LoanDate>
<PmtDate>2024-01-01</PmtDate>
<IntRate>10</IntRate>
<Proceeds>10000.00</Proceeds>
<Term>12</Term>
<!--Skip June, July, and August payments -->
<IrregPmt Month="6" />
<IrregPmt Month="7" />
<IrregPmt Month="8" />
<!--Specify an irregular payment of $2,000 in December of 2024 -->
<IrregPmt Month="12" Year="2024" Payment="2000.00" />
</inSKIPS_IRREGULARS>
Notice that all that's required to skip a payment is to include it as an
<IrregPmt>
without a
Payment
attribute (or set the value of this
attribute to 0
).
Sample Response
The following response is returned from the SCEX when provided with the sample request above.
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE outSKIPS_IRREGULARS SYSTEM "outSKIPS_IRREGULARS.dtd">
<outSKIPS_IRREGULARS>
<Results>
<Description>Successful Calculation</Description>
<Payment>1072.13</Payment>
<Number_of_Skips>3</Number_of_Skips>
<Payments_Specified>4</Payments_Specified>
</Results>
<FedBox>
<AmtFin>10000.00</AmtFin>
<FinChg>577.04</FinChg>
<TotPmts>10577.04</TotPmts>
<RegZAPR Type="Actuarial">9.999</RegZAPR>
</FedBox>
<Moneys>
<Principal>10000.00</Principal>
<Interest>577.04</Interest>
<Protection Category="None" PerPmt="0.00" PerDay="0.00">0.00</Protection>
</Moneys>
<Accrual>
<Method>Actual/365 US Rule</Method>
<Days1Pmt DayCount="Actual">31</Days1Pmt>
<Maturity>2024-12-01</Maturity>
</Accrual>
<PmtStream Term="5" Pmt="1072.13" Rate="10.000" Begin="2024-01-01"/>
<PmtStream Term="3" Pmt="1072.13" Rate="10.000" Begin="2024-09-01"/>
<PmtStream Term="1" Pmt="2000.00" Rate="10.000" Begin="2024-12-01"/>
<AmTable>
<GrandTotals PmtTot="10577.04" IntTot="577.06" PrinTot="9999.98"/>
<SubTotals Year="2024" Start="1" Events="12" PmtSub="10577.04" IntSub="577.06" PrinSub="9999.98"/>
<AmLine Idx="1" Date="2024-01-01" BegBal="10000.00" Pmt="1072.13" Int="84.93" Prin="987.20" EndBal="9012.80"/>
<AmLine Idx="2" Date="2024-02-01" BegBal="9012.80" Pmt="1072.13" Int="76.55" Prin="995.58" EndBal="8017.22"/>
<AmLine Idx="3" Date="2024-03-01" BegBal="8017.22" Pmt="1072.13" Int="63.70" Prin="1008.43" EndBal="7008.79"/>
<AmLine Idx="4" Date="2024-04-01" BegBal="7008.79" Pmt="1072.13" Int="59.53" Prin="1012.60" EndBal="5996.19"/>
<AmLine Idx="5" Date="2024-05-01" BegBal="5996.19" Pmt="1072.13" Int="49.28" Prin="1022.85" EndBal="4973.34"/>
<AmLine Idx="6" Date="2024-06-01" BegBal="4973.34" Pmt="0.00" Int="0.00" Prin="0.00" UnpaidInt="42.2393" EndBal="4973.34"/>
<AmLine Idx="7" Date="2024-07-01" BegBal="4973.34" Pmt="0.00" Int="0.00" Prin="0.00" UnpaidInt="83.1161" EndBal="4973.34"/>
<AmLine Idx="8" Date="2024-08-01" BegBal="4973.34" Pmt="0.00" Int="0.00" Prin="0.00" UnpaidInt="125.3554" EndBal="4973.34"/>
<AmLine Idx="9" Date="2024-09-01" BegBal="4973.34" Pmt="1072.13" Int="167.59" Prin="904.54" EndBal="4068.80"/>
<AmLine Idx="10" Date="2024-10-01" BegBal="4068.80" Pmt="1072.13" Int="33.44" Prin="1038.69" EndBal="3030.11"/>
<AmLine Idx="11" Date="2024-11-01" BegBal="3030.11" Pmt="1072.13" Int="25.74" Prin="1046.39" EndBal="1983.72"/>
<AmLine Idx="12" Date="2024-12-01" BegBal="1983.72" Pmt="2000.00" Int="16.30" Prin="1983.70" EndBal="0.02"/>
</AmTable>
</outSKIPS_IRREGULARS>
Skipped and Irregular Payment Loans - Request
Please see the Legend to understand the conventions used to document each element and attribute. Note that for requests, the XML elements are documented in alphabetical order by parent element.
🟥 <inSKIPS_IRREGULARS>
Element Type | Data Type |
---|---|
Parent | - |
This element is the root element for the request. It is a parent element that has no data, but does have several attributes that offer a wide variety of adjustments.
Attributes:
🔹Account
,🔹AccrualCode
,🔹AprType
,🔹Country
,🔹DataDirPath
,🔹ForceReload
,🔹HideAmort
,🔹Lastday
,🔹MAPR_Max
,🔹Metavante
,🔹OddFinal
,🔹PmtDollarRound
,🔹PmtRound
,🔹PPY
,🔹UseIntOnlyNotSkips
,🔹UsePrinPlusNotIrregs
,🔹UseMAPR
,🔹YieldPPY
🔹 Account
Data Type | Values | Default |
---|---|---|
Integer | [1...9999] | 1 |
This attribute specifies which account should be used to compute the requested
loan. Each account is numbered from 1 to 9,999, and each account corresponds to
a set of setup files which define numerous settings which may affect the loan
calculation, such as the accrual method, insurance methods and rates, etc. If
this attribute is not specified, a default value of 1
will be used.
🔹 AccrualCode
Data Type | Values | Default |
---|---|---|
Enum | See table | default |
This property allows an accrual method to be used other than the accrual method dictated by the setup file for the given account. If no accrual code attribute is specified, the method defined in the setup file will be used. The Accrual Code Table lists all valid accrual codes available. Note that for the split rate accrual codes (i.e. those above 500), the split rate tiers must be defined in the setup file.
🔹 AprType
Data Type | Values | Default |
---|---|---|
Enum | See below | default |
This attribute allows the calling application to specify an APR calculation method which will override the default value found in the setup file for the given account. If this attribute is set to a valid value, then the specified method will be used to compute the APR for this loan calculation.
If the Country
attribute has been set by the calling
application and this attribute is not set, then the APR method used will be
determined by the specified country. For the United States of America, the
default APR method is actuarial
. For a country in the European Union, the
default value is eu
(European Union APR). For Canada, the default APR method
is ca
(Canadian APR).
default
- Use setup file value.actuarial
- Appendix J Actuarial APRusrule
- US Rule APReu
- European Union APRca
- Canadian APRxirr
- Extended Internal Rate of Return (same as excel function)xirr360
- XIRR using a 360 divisor rather than a 365 divisorirr
- Simple Internal Rate of Return (same as excel function)
If this attribute is not specified and the Country
attribute
is not specified, then the value of default
will be used which informs the SCE
to use the APR method defined in the setup file for the specified
Account
.
🔹 Country
Data Type | Values | Default |
---|---|---|
Alpha-2 or Numeric-3 code | See table | US |
This attribute allows the calling application to specify a two (2) character or
three (3) digit country code. If none is provided, then a default value of US
will be used. Please see the Country Codes Table for the
list of supported countries and their associated codes.
Currently, the country code is used to determine the default value of the
AprType
attribute (see above).
🔹 DataDirPath
Data Type | Values | Default |
---|---|---|
Text | See below | See below |
If this attribute is set, the SCE will look for a data folder containing the
setup files in the path specified. Thus, if the DataDirPath
is set to
C:\SCEX\
, the SCE will look for the setup files in C:\SCEX\data
.
If the calling application wishes to specify the data directory path in its
entirety (e.g. the calling app does not want the SCE to append \data
to the
provided path), then simply terminate the specified DataDirPath
with an
asterisk (*
). Thus, if the DataDirPath
is set to C:\SCEX\bank1\*
, the SCE
will look for the setup files in C:\SCEX\bank1\
.
If this attribute is not set, the SCE will attempt to locate the data folder in
the default data directory path location, which can be retrieved using the
<inVERSION>
module query, and set via the SCE API.
This attribute is useful if you wish to use only a single installation of the
SCE, but have many different setup file groupings. By specifying a different
DataDirPath
for each grouping, you can easily separate the groups from one
another instead of grouping them all together in a single directory.
🔹 ForceReload
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
The SCE caches setup files previously used. This improves performance for
subsequent loan requests using one of the cached accounts. However, if you need
the SCE to reload the setup files for a given request (e.g. you just copied
over new setup files), then you can set this attribute to true
and the setup
files will be forced to reload. If left at the default value of false
, then
setup files are only reloaded when the SCE notices that one of the setup files
has been modified.
🔹 HideAmort
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
This attribute determines whether or not an amortization schedule will be
included in the response, given a successful loan calculation. If you do not
require the use of the amortization schedule, then setting this attribute to
true
will suppress its output. The default value of false
will return the
amortization schedule as part of the response.
🔹 Lastday
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If present, this attribute overrides the Last Day setting in the setup files, which only applies to loans computed with an actual day interest accrual calendar where the first payment date falls at the end of a month with fewer than 31 days. As an example, if the first payment date is on April 30, should the following payment dates be made on the 30th of each month, or on the last day of the month?
If no value is specified for this attribute, then the setup file setting will be
used. If true
is specified, then conditions triggering a last day situation
will result in payments which fall at the end of the month. A value of false
indicates that when dictated, subsequent payment dates will not be moved to the
last day of the month.
🔹 MAPR_Max
Data Type | Values | Default |
---|---|---|
Decimal | [-99.999...600] | 36.0 |
If you are computing the Military APR (see UseMAPR
below) and
wish to override the default maximum APR value of 36
%, then specify the
desired maximum as the value of this attribute.
🔹 Metavante
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to a value of true
, then the
<Metavante>
element will be included in the
response. Also, some loans will also disclose
<MinInterestPmt>
and
<MaxInterestPmt>
elements.
🔹 OddFinal
Data Type | Values | Default |
---|---|---|
Enum | default , true , false , 1 , 0 | default |
This attribute allows the calling application to specify an odd final payment
calculation method which will override the default value found in the setup file
for the given account. If not specified, then the value of default
will be used.
Odd final payments are sometimes desired to produce perfect amortization (i.e. an ending balance of zero after the final payment is made).
🔹 PmtDollarRound
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Payments are normally rounded to the penny, according to the method specified by
the PmtRound attribute (see below). If the payment should be rounded to the
dollar instead of the penny, then set the value of this attribute to true
.
Note that for some loans (such as those with longer terms or relatively small proceeds), rounding the payment up or to the nearest dollar may require a shortened loan term to prevent one or more negative payments at the end of the loan.
🔹 PmtRound
Data Type | Values | Default |
---|---|---|
Enum | default , nearest , up , down , best | default |
This attribute allows the calling application to specify a payment rounding
option which will override the value found in the setup file. If not specified,
then the value of default
will be used.
default
- Use method specified in setup file.nearest
- Round computed payment to the nearest penny, using 5/4 rounding. e.g. 300.242 = 300.24, 300.245 = 300.25.up
- Round computed payment up to the next penny. e.g. 300.241 = 300.25.down
- Round computed payment down to the previous penny. e.g. 300.249 = 300.24.best
- Once the unrounded payment has been computed, amortize the loan using the rounded down and rounded up payment, and then return the payment which amortizes the loan’s ending balance closest to zero.
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | See below | monthly |
PPY is an abbreviation for payments per year, and as one might surmise,
determines the payment frequency for the loan. The default value of monthly
will
result in a loan with 12 payments per year. If you require a loan with a payment
frequency other than monthly, specify it using this attribute.
Value | Translation | Description |
---|---|---|
1 | Annual | Once Per Year |
2 | SemiAnnual | Twice Per year (every six months) |
4 | Quarterly | Four per year (every three months) |
6 | Bimonthly | Six per year (every two months) |
12 | Monthly | Twelve per year (every month) |
24 | Semimonthly | Twice Per Month* |
26 | Biweekly | Every two weeks |
52 | Weekly | Every week |
* Semimonthly loans are characterized by making two payments per month on the same days. A common semimonthly schedule is to make payments every 1st and 16th of the month. Another common schedule is the 15th and the end of every month.
🔹 UseIntOnlyNotSkips
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to true
, then any specified skipped payments (see the
<IrregPmt>
element) will be treated as interest only payments
instead of skipped payments.
🔹 UsePrinPlusNotIrregs
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to true
, then any specified irregular payments (see
the <IrregPmt>
element) will be treated as fixed principal
payments (to which accrued interest will be added) instead of specified payments
of principal and interest (from which accrued interest will be deducted before
applying the balance to outstanding principal).
🔹 UseMAPR
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to a value of true
, the SCE will compute the Military
APR in addition to the Regulation Z APR. The <MAPR>
element will be included in the XML loan response.
🔹 YieldPPY
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 , 4 , 6 , 12 | 0 |
Canadian mortgages may compute periodic interest using a fractional power of a
periodic yield. If set to a value other than 0
, this value determines the
period. Please contact us for further information if you support mortgage
calculations in Canada. Note that when using this attribute with a value other
than zero, the calling application must include an odd days prepaid fee in the
request.
🟦 <Construction>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | Not a construction loan |
Include the <Construction>
element to configure a construction period on a
loan. The use of this element requires setup files configured to support
construction loans, or specification of the Method
to be used.
If the specified account is not set up to support construction loans, this
element will be ignored.
Attributes:
🔹Accrual
,🔹Active
,🔹HalfCommitment
,🔹Method
,🔹PermanentAttached
,🔹PPY
,🔸Rate
,🔸Term
,🔹UnitOddDayDivisor
🔹 Accrual
Data Type | Values | Default |
---|---|---|
Enum | default , unitperiod , actual360 , actual365 | default |
If the loan request is a construction loan with no permanent loan attached, this attribute allows the calling application to specify the accrual method used.
default
- The setup files determine the default value for interest accrual.unitperiod
- Compute periodic interest using a 1/PPY factor.actual360
- Compute periodic interest using the actual # of days between payments/360.actual365
- Compute periodic interest using the actual # of days between payments/365.
🔹 Active
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this loan request includes a construction loan, then set this attribute to
true
. If no construction loan is desired, either do not specify the
<Construction>
element or set this attribute to false
.
🔹 HalfCommitment
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
During the term of the construction loan, the estimated interest for disclosure
purposes may be either computed on the full or half commitment amounts. By
setting this attribute to true
, interest will be estimated using half of the
initial commitment amount (i.e. the principal balance). The default value of
false
will cause interest to be estimated using the entire initial commitment
amount.
🔹 Method
Data Type | Values | Default |
---|---|---|
Enum | default , simple , laserpro , intonly | default |
There are three methods used to define how construction loans are computed and
disclosed. A method of default
tells the SCE to use the method
configured in the setup file. The meaning of the three methods are as follows:
simple
- Compute an aggregate construction interest amount for the entire construction period for both pure construction loans and construction to permanent loans.laserpro
- Compute an aggregate construction interest amount for the entire construction period for pure construction loans. For construction to permanent loans, compute and disclose discrete interest-only payments during the construction period.intonly
- Compute and disclose discrete interest-only payments during the construction period for both pure construction loans and construction to permanent loans.
🔹 PermanentAttached
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Construction loans may be computed on their own, or they may be attached to a
permanent loan which begins at the conclusion of the construction loan. If a
permanent loan is attached to the construction loan, then set this attribute’s
value to true
and set up the permanent loan information in the request
elements.
The default value of false
indicates that this is solely a construction loan
with no permanent attached. In this case, you still need to set up the
<LoanDate>
, <PmtDate>
and <Proceeds>
elements.
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | 1 , 2 , 4 , 6 , 12 , 24 , 26 , 52 | 12 |
The PPY
attribute allows the calling application to specify the payment
frequency during the construction period. The default value of monthly will
result in a construction loan with 12 payments per year. If you require a
payment frequency during the construction period other than monthly, then
specify it using this attribute. Note that if a permanent loan is attached to
the construction loan, that the permanent loan's payment frequency may differ
from the construction period’s payment frequency.
🔸 Rate
Data Type | Values | Default |
---|---|---|
Decimal | [-99.999...600] | 0 |
This attribute determines the rate applied to the appropriate commitment amount during the term of the construction loan.
🔸 Term
Data Type | Values | Default |
---|---|---|
Integer | [1...60] * | 0 |
The term of the construction loan (in payments) is specified using this attribute. Please note that the term may not exceed five years.
* 60 is the maximum number of months in the Construction period. In general, the maximum entry is 5 *
PPY
, where the PPY is the payments per year attribute of the<Construction>
element.
🔹 UnitOddDayDivisor
(enum, [], Ignore)
Data Type | Values | Default |
---|---|---|
Enum | ignore , 360 , 365 , vardpy | ignore |
When specifying an Accrual
method of type unitperiod
, this
attribute allows the calling application to specify how odd days between the
loan and first payment dates are taken into account.
ignore
means that all odd days are ignored, and the calculation will assume
one full unit period. 360
and 365
will compute the actual number of days
between the loan date and first payment date, and then use either a 360 or 365
divisor to determine the amount of interest accrued during that period. vardpy
accrues interest in the same manner as accrual code 250/350.
🟦 <Fee>[]
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No fee |
Unlike most other elements, any number of fees may be defined, or none at all. All of the information used to compute a fee is contained in its attributes.
Attributes:
🔹AddToFinChg
,🔹AddToPrin
,🔹Adjust
,🔹CalcType
,🔸Entry
,🔹IsLoanCost
,🔹MAPR
,🔹MaxValue
,🔹MinValue
,🔹Name
🔹 AddToFinChg
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
If this fee should be included in the Reg. Z Finance Charge (and hence, affect
the APR), then set this attribute to true
. The default value of false
indicates that the fee does not affect the Finance Charge nor APR.
🔹 AddToPrin
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this fee should be added to the principal balance (e.g. the fee is financed
along with the amount requested), then set this attribute to true
. If set to
false
, then the fee is paid up front out of the borrower’s pocket.
🔹 Adjust
Data Type | Values | Default |
---|---|---|
Currency | any | 0 |
The optional attribute Adjust
allows the calling application to increase or
decrease the base amount on which a fee is calculated. If a negative value is
specified and this adjustment would produce a negative base amount, then a value
of zero is returned for the given fee. This attribute has no effect on fees with
a CalcType
of Dollar
.
As an example, in Tennessee you may need to define a financed, non-APR affecting fee to be computed by decreasing the amount financed by $2,000, and then multiplying this reduced amount by 0.115. The way to accomplish this in the SCEX is as follows:
<Fee CalcType="OnAmtFin" Entry="0.115" Adjust="-2000" AddToPrin="true" AddToFinChg="false" />
🔹 CalcType
Data Type | Values | Default |
---|---|---|
Enum | Dollar , OnProceeds , OnAmtFin , OnPrin , DocStamp | Dollar |
The value of this attribute determines how the fee is to be computed, as described below:
Dollar
- TheEntry
attribute is understood as a flat dollar amount.OnProceeds
- TheEntry
attribute is understood as a percentage value, to be applied to the loan’s proceeds. AnEntry
of1.0
would represent a fee of 1.0% of proceeds.OnAmtFin
- TheEntry
attribute is understood as a percentage value, to be applied to the Amount Financed. AnEntry
of0.5
would represent a fee of 0.5% of Amount Financed.OnPrin
- TheEntry
attribute is understood as a percentage value, to be applied to the loan’s principal balance. AnEntry
of0.125
would represent a fee of 0.125% of principal balance.DocStamp
- TheEntry
attribute is understood as a Florida doc stamp rate, to be applied to the loan’s principal balance. AnEntry
of0.35
would represent a fee of 0.35% of the principal balance. You must set the AddToFinChg attribute to false, otherwise the doc stamp fee will return a value of zero.
🔸 Entry
Data Type | Values |
---|---|
Decimal or Currency | >= 0 |
The Entry
is the basic starting point fee value that determines the dollar
value of the resulting fee computation. How this attribute is interpreted
depends upon the CalcType
attribute, described above. This
value is either a dollar value or a percentage (aka "points").
🔹 IsLoanCost
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
When requesting the new TILA RESPA outputs (via the
<TILARESPA2015>
element), the SCE needs to know which fees need
to be considered borrower paid loan costs, as defined in the rule. Please note
that if the fee is paid by a lender or other third party, then the fee does not
affect the loan calculation and should not be sent to the SCE. If it is sent,
then the value of this attribute should be set to false
.
🔹 MAPR
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If you wish to compute the Military APR, then certain fees may not be considered
Regulation Z APR affecting fees, but are considered Military APR affecting fees.
In this case, you will need to set the value of this attribute to true
.
Fees which are added to the finance charge (e.g.
AddToFinChg
="true"
) are always considered MAPR fees,
regardless of the stated value of this attribute.
Note that debt protection products are automatically included in the calculation of the Military APR, no matter what method is used for payment (e.g. single premium vs. monthly outstanding balance).
🔹 MaxValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If a maximum value for the fee is specified and is greater than zero, then if the computed fee exceeds this maximum value, then this maximum value will be used instead. If no maximum value is specified or is set to a value of zero, then no maximum will be enforced. Please note that this attribute is applied to all fee types documented.
🔹 MinValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If a minimum value for the fee is specified and is greater than zero, and if the
Entry
attribute holds a value greater than zero, then if the
computed fee is less than this minimum value, then this minimum value will be
used instead. If no minimum value is specified or is set to a value of zero,
then no minimum will be enforced. If a specified minimum value exceeds a
specified maximum value, then the minimum value will be ignored. Please note
that this attribute is applied to all fee types documented.
🔹 Name
Data Type | Values | Default |
---|---|---|
Text | any | n/a |
This attribute is for convenience purposes only, and does not affect the
calculation of the fee in any manner. If a Name
attribute is specified for the
<Fee>
element, then the corresponding <Fee>
element in the XML output will have a Name
attribute with the same value. This allows you to easily differentiate fees in
the response.
🟦 <Format>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | See attributes |
The <Format>
element is one of the first elements parsed from a request, as the
attributes of this empty element affect how date and numeric values are parsed
and validated.
Attributes:
🔹CurrencyDecimals
,🔹DateFormat
,🔹DateSeparator
,🔹DecimalSeparator
,🔹StrictDP
,🔹ThousandSeparator
🔹 CurrencyDecimals
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 | 2 |
When displaying and parsing Currency values, the value of this attribute
determines the maximum number of decimal places allowed after the
DecimalSeparator
.
🔹 DateFormat
Data Type | Values | Default |
---|---|---|
Enum | YMD , MDY , DMY | YMD |
When displaying and parsing Date values, this field determines the expected
format for all Date fields. The following DateFormat
options are allowed:
YMD
- All dates should be formatted as YYYY-MM-DD.MDY
- All dates should be formatted as MM-DD-YYYY.DMY
- All dates should be formatted as DD-MM-YYYY.
Note that the character which separates the individual month, day, and year
portions of the date is configurable via the
DateSeparator
attribute.
🔹 DateSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | - |
When displaying and parsing Date values, this attribute determines the character used to separate the individual month, day, and year portions of a date.
🔹 DecimalSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | . |
When displaying and parsing Currency or Decimal numeric values, this attribute determines the character used to separate the fractional part from the whole.
🔹 StrictDP
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 , | false |
If the value of this attribute is true
, then the SCE will strictly verify the
number of decimal places allowed for currency input values. Thus, if the calling
application sends in a request with a currency amount of 1000.005
, the SCE
will return an error code.
If the value of this attribute is false
, then currency values sent in with an
invalid number of decimal places will be rounded to the correct number of
decimal places by the SCE (using five/four rounding), and a warning message with
this information will be returned with the response.
🔹 ThousandSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | , |
When displaying numeric values, this attribute determines the character used to separate the thousands places from the hundreds. Note that when parsing numeric values, the value of this attribute is ignored.
🟦 <InterestPmtRate>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Decimal | [-99.999...600] | 0 |
If this loan has interest only payments preceding the irregular loan
(i.e. the value contained in <InterestPmts>
is greater
than zero), then this element contains the interest rate charged during
the interest only payment stream.
If no interest only payments precede the irregular loan, then this element may be omitted.
Attributes: None
🟦 <InterestPmts>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Integer | > 0 | 0 |
If present, this element determines the number of interest only payments which
precede the start of the irregular loan. After the specified number of interest
only payments are made, then the irregular loan continues for the number of
payments specified in the <Term>
element.
Also note that these interest only payments which precede the irregular payment
loan are not affected by
If this element is not present in the request, then no interest only payments will precede the irregular loan calculation.
Attributes: None
🟥 <IntRate>
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | [-99.999...600] |
The element data will determine the annual interest rate used for the loan. (Split rate loans require use of the setup files.)
The interest rate should be expressed as an annual percentage. For example, a loan computed with an interest rate of 6.125% would be specified as:
<IntRate>6.125</IntRate>
Attributes: None
🟦 <IntStartDate>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= <LoanDate> and <= <PmtDate> | <LoanDate> |
This element contains the date on which interest begins to accrue on the loan’s
principal balance. If this element is not specified, then the interest start
date is defaulted to be the <LoanDate>
. Also note that the
interest start date must be equal to the loan date when computing a construction
loan. The interest start date (when specified) must be on or after the loan
date, as well as on or before the <PmtDate>
. All dates must be in
the form of YYYY-MM-DD, and be 10 characters long. Hence, an interest start date
April 27, 2024 would be specified as:
<IntStartDate>2024-04-27</IntStartDate>
Attributes: None
🟦 <IrregPmt>[]
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No irregular payment |
These elements allow the calling application to specify when skipped and/or irregular payments are to be included in the loan's repayment schedule. The element itself is empty, as all skipped payment data is contained it the element's attributes.
Here are a few <IrregPmt>
elements, with descriptions.
1: <IrregPmt Month="0" Payment="250.00" />
2: <IrregPmt Month="8" Payment="0.00" />
3: <IrregPmt Month="12" Payment="1000.00" />
4: <IrregPmt Month="8" Year="2024" Payment="500.00" />
5: <IrregPmt Index="2" Payment="-1" />
- First of all, set all payments in our loan to be $250.
- Every payment made in August shall be skipped.
- Every December payment will be a specified irregular payment of $1,000.
- All payments made in August of 2024 will be a $500 specified irregular payment. Note that this rule will override rule 2.
- The second payment (not including any interest only payments preceding) should be computed and set to the regular payment amount.
🔹 Index
Data Type | Values | Default |
---|---|---|
Integer | > 0 | 0 |
Instead of specifying a Month
(and optionally, a
Year
) for a given skipped / irregular payment, you may
optionally specify a payment number using the Index
attribute. Thus, if you
wish to specify that the first payment be skipped or irregular, you would set
Index="1"
.
Interest only payments preceding the irregular loan (as specified by the
<InterestPmts>
element are not counted when specifying an
Index
.
Note that if you specify a payment index, then you should not specify the
Month
or Year
attributes. If you do, the
Index
value will take precedence and the other two values will be ignored.
🔹 Month
Data Type | Values | Default |
---|---|---|
Integer | [0...12] | 0 |
The Month
attribute allows the user to specify a month during which the
skipped / irregular payment is applicable. If the Year
attribute is not set
for this element, then the skipped / irregular payment will be applied for each
payment falling in the given month, throughout the entire term of the loan
(excepting any interest only payments which precede the irregular loan).
On the other hand, if the Year
attribute is set for this
element, then the skipped / irregular payment will only be applied to those
payments falling in the given month and year.
If the value of the Month
attribute is set to zero (0), then this irregular
payment specification applies to all payments in the loan. Since the loan must
have at least one payment to compute, after specifying a month of zero, you will
also need to specify an irregular payment entry with a payment amount of -1
(see the Payment
attribute below).
If you wish to specify a skipped / irregular payment for a specific payment
number (instead of specifying the month and optionally, the year), then use the
Index
attribute and do not specify a Month or Year
attribute.
🔹 Payment
Data Type | Values | Default |
---|---|---|
Currency | > 0 | 0 |
This attribute determines the type of irregular payment for the specified month
(and possible year). A value of 0
(zero) indicates that the specified
payment(s) should be skipped (or interest only, if the
[UseIntOnlyNotSkips]
(#root.useintonlynotskips) attribute is true).
Any value greater than zero indicates that the specified payment(s) should be treated as fixed payments, with the value provided taken as the fixed payment amount.
A value of -1
(negative one), indicates that this irregular payment should be
the computed payment.
🔹 Year
Data Type | Values | Default |
---|---|---|
Integer | > 0 | 0 |
As discussed above, the Year
attribute works closely with the Month
attribute, and is entirely optional.
🟥 <LoanDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= 1900-01-01 |
This element determines when interest begins to accrue. If interest begins on a
later date, use the <IntStartDate>
element to define the date
on which interest begins to accrue.
This element contains the date on which the loan amount is disbursed and interest begins to accrue. All dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a loan date of March 4, 2024 would be specified as:
<LoanDate>2024-03-04</LoanDate>
Attributes: None
🟦 <OddDaysPrepaid>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No odd days prepaid interest |
If odd days interest should be treated as a prepaid finance charge or added to the first payment, then include this empty element in the request. The attributes of this element determine how odd days interest is computed and handled.
Attributes:
🔹AccrualCode
,🔹AddToPmt
,🔹AddToPrin
,🔹AnchorDate
,🔹ForceUnitPeriod
,🔹NoCap
,🔹UseDailyCost
,🔹UseNegODI
🔹 AccrualCode
Data Type | Values | Default |
---|---|---|
Enum | See below | 220 |
The accrual code defines how the odd days interest is computed.
Note that accrual code 250
("Variable Days Per Year") defines the basis divisor
days to be equal to 12 multiplied by the number of days in the month of the date
on which interest begins to accrue. Thus, if the interest start date falls in
November, then the number of basis days is 360. If the interest start date falls
in a month with 31 days, then the number of basis days is 372. For an interest
start date in February, the number of basis days will either be 336 or 348,
depending upon whether or not it is a leap year.
AccrualCode | Description |
---|---|
204 | Unit period simple w/ true 360 calendar and 360 day divisor |
205 | Unit period simple w/ true 360 calendar and 365 day divisor |
210 | Actual / 360 simple |
211 | True 365 / 360 simple |
220 | Actual / 365 simple |
221 | True 365 / 365 simple |
230 | Actual / Actual simple |
231 | Midnight 366 simple |
250 | Unit period simple w/ variable DPY divisor |
🔹 AddToPmt
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application wants the odd days interest to be added to the first
payment, then set the value of this attribute to true
. A value of false
indicates that the odd days interest will be treated as a prepaid fee.
🔹 AddToPrin
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If any odd days interest should be treated as a financed prepaid fee, then set
the value of this attribute to true
. Note that if both
AddToPmt
and AddToPrin
are set to true
, then a warning
message will be returned by the SCEX and the value of AddToPrin
will be set to
false
.
🔹 AnchorDate
Data Type | Values | Default |
---|---|---|
Enum | BackUnitPeriod , BackDaysPerPeriod | BackUnitPeriod |
The computed number of odd days is the number of days between the loan date and the anchor date. This attribute determines how to arrive at the anchor date.
BackUnitPeriod
- The anchor date is one unit period prior to the specified first payment date.BackDaysPerPeriod
- The anchor date is the number of days per period prior to the first payment date.
Please note that for both of these methods, the period used will be that associated with the payment stream in which the first payment occurs.
🔹 ForceUnitPeriod
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the loan's interest accrual is unit period, this attribute forces the period
to the first payment to be 1/12 (or 1/(PmtsPerYear) in general). Without this
attribute an accrual code of 202
(Unit Period /365) would use a factor of
Days/365 rather than the expected 1/12.
🔹 NoCap
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
When an odd days interest fee is present and financed, the value of this
attribute determines if the ODI fee is added to the principal balance for the
purposes of computing the ODI fee (e.g. if it is capitalized). If this value is
true
, the ODI is computed on the true principal balance less the ODI; false
means "compute ODI on the true principal balance.
🔹 UseDailyCost
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the total odd days prepaid fee is computed by first generating a rounded (to
the nearest penny) daily cost and then multiplying this value by the computed
number of odd days, then set the value of this property to true
.
A value of false
means that the daily cost is left unrounded, and the total
prepaid fee is rounded after the computation is complete.
🔹 UseNegODI
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If there are negative odd days in the loan, then the value of this attribute
determines if a negative odd days interest fee is computed. If the value of this
attribute is false
, then negative odd days fees are not allowed, the SCEX will
return a value of zero in this situation, and the computed payment will be
adjusted to take into account the negative odd days. A value of true
will
return a negative odd days interest fee (in effect, it then becomes an odd days
interest credit) when there are negative odd days in a loan.
🟥 <PmtDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= <LoanDate> and >= <IntStartDate> |
This element contains the date on which the first payment of the loan is made, and must be on or after the loan date.
All dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a first payment date of April 4, 2024 would be specified as:
<PmtDate>2005-04-04</PmtDate>
Attributes: None
🟥 <Proceeds>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | >= 0 |
The proceeds specifies the amount the customer has frequested to borrow, ignoring every other financed quantity. Proceeds of up to one billion dollars are accepted.
The amount should be expressed as a number. For example, a request including
<Proceeds>10000.00</Proceeds>
indicates an amount requested of 10,000.
Attributes: None
🟦 <Protection>
Element Type | Data Type | Values | Default |
---|---|---|---|
Parent | - | - | No protection included |
The <Protection>
element is used to specify debt protection coverages such as
life, disability, involuntary unemployment, personal property and debt
cancellation. Each type of coverage is specified by its own sub-element, along
with the borrower birthdays. The following attributes apply to this element:
Attributes:
🔹FinanceProt
,🔹LineOfCredit
,🔹Mandatory
,🔹ShowBorrowerInfo
,🔹ShowCaps
🔹 FinanceProt
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
If the computed premiums for single premium debt protection products should be
financed along with the proceeds, then this attribute should be set to true
(which is the default value if not specified). A value of false
indicates that
the computed premiums will not be financed with the proceeds, and hence will be
paid out of pocket by the borrower. Note that this applies to single premium
insurance products only!
🔹 LineOfCredit
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this is an account using TruStage’s MOB insurance, and if this loan is a line
of credit where product term caps should be ignored, then set this attribute to
true
. Otherwise, leave this attribute unspecified or set it to false
.
🔹 Mandatory
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the value of this attribute is set to true
, then any computed payment
protection premium or fee will be considered a mandatory fee which will be
included as a part of the Regulation Z Finance Charge, and hence affect the
Regulation Z APR. In this case, the <Protection>
element in the response will contain a
Mandatory
="true"
attribute indicating this.
If the Mandatory attribute is set to false
, the loan will treat any premiums /
fees as normal.
🔹 ShowBorrowerInfo
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application would like to have data returned for each specified
borrower instead of a single <CovTerm>
element, then
set the value of this attribute to true
. Otherwise, leave this attribute
unspecified or set it to false
. See the <Borrower>
and <CovTerm>
elements defined in the response for
more information.
🔹 ShowCaps
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application would like to have cap information (e.g., maximum
terms, coverage amounts, ages, etc.) returned for each product offered, set the
value of this attribute to true
. Otherwise, leave this attribute unspecified
or set it to false
. See the <Caps>
element for more
information.
🟦 <Protection>
→<Birthday1>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= 1900-01-01 | No birthday specified |
This element contains the date of birth for the primary borrower. All dates must
be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a birthday of
April 9, 1972 would be specified as <Birthday1>1972-04-09</Birthday1>
. Note
that this element must be set if the Covers attribute of any of the four debt
coverage elements is set to borrower1
or both
.
Attributes: None
🟦 <Protection>
→<Birthday2>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= 1900-01-01 | No birthday specified |
This element contains the date of birth of the secondary borrower. All dates
must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a birthday
of May 21, 1969 would be specified as <Birthday2>1969-05-21</Birthday2>
.
Attributes: None
🟦 <Protection>
→<Disability>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No disability coverage |
The <Disability>
element determines what type of disability coverage is
requested for the loan. It also serves double duty as the debt cancellation
coverage element, for accounts set up to compute debt cancellation using the
disability tables. The element itself is empty, with all information needed for
disability coverage request being specified in the following attributes:
🔹 Benefit
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in the appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <Disability>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will assure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user specified coverage terms, then this attribute will be ignored.
🔹 Table
Data Type | Values | Default |
---|---|---|
Integer | [0...19] | 0 |
If the specified account has been set up with multiple disability or debt
cancellation plans, then this attribute determines which plan number will be
used. If no table number is specified, the first table (table zero) will be
used. To find out the number of available plans, use the
<AhSetCount>
element in the
<inINPUT_TOOL>
response.
🟦 <Protection>
→<Life>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No life coverage |
The <Life>
element determines what type of life coverage is requested for the
loan. The element itself is empty, with all information needed for a life
coverage request being specified in the following attributes:
Attributes:
🔹Coverage
,🔹Covers
,🔹CovTerm
,🔹Dismemberment
,🔹Method
,🔹UseLevelRates
🔹 Coverage
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
If you wish to specify a coverage amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum coverage amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified coverage amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in the appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <life>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will assure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user specified coverage terms, then this attribute will be ignored.
🔹 Dismemberment
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the specified account has been set up to offer optional dismemberment coverage to be offered with life coverage (using an increased rate in the premium calculation), then this attribute determines whether or not this additional coverage will be provided.
🔹 Method
Data Type | Values | Default |
---|---|---|
Enum | default , net , gross | default |
If the specified account has been set up to offer single premium life coverage
by default, net or gross coverage, then this attribute can be used to specify
which type of coverage to compute with the loan. For all other accounts, the
default value of default
should be used (or simply do not specify the attribute
at all).
🔹 UseLevelRates
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the account specified has been set up to offer single premium credit life
using level rates instead of the normal decreasing rates, then set this
attribute’s value to true
. Otherwise, use the default value of false
.
🟥 <Term>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | [2...600] * |
The value of this element indicates the number of payments in the loan.
The term must be entered as a number of payments, not a duration of time.
Therefore, <Term>72</Term>
represents 72 payments, not 72 months (or years).
This term is intimately tied to the PPY
(# of payments per year)
attribute of the root element. If the value of the PPY
attribute
was 24
(semimonthly) for this loan, the 72 payments would mean that the
duration of the loan is three years, since years = number of payments / payments
per year = 72 / 24 = 3.
* In general, the term can be no greater than 50 years, so the maximum entry would be 50 *
PPY
. Weekly loans, however, are limited to 30 years, or 1,560 payments.
Attributes: None
🟦 <TILARESPA2015>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No TILA RESPA disclosures |
The presence or absence of this element determines whether or not the TILA RESPA data table is present in the output.
If this element is present in the loan request, then the SCEX will return data for the Integrated Mortgage Disclosures under the Real Estate Settlement Procedures Act (Regulation X) and the Truth In Lending Act (Regulation Z) rule, which is required as of August 1st, 2015. If this element is not present, then the TILA RESPA outputs will not be generated.
Attributes: None
🟦 <TotalDown>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
This optional element represents the total down payment that the borrower has applied to reduce the requested proceeds. It may consist of a cash down payment, net trade-in value, or rebate. You only need to specify a total down payment if the loan needs to disclose a total sale price. Typical examples of these loan types are auto and boat loans.
To generate a total down payment, please see the chapter detailing the SCEX’s Auto Prompts module.
Attributes: None
Skipped and Irregular Payment Loans - Response
Please see the Legend to understand the conventions used to document each element and attribute. Note that for responses, the XML elements are documented in the order that they appear in the response.
🟥 <outSKIPS_IRREGULARS>
Element Type | Data Type |
---|---|
Parent | - |
This element is the root element of the response, and contains all of the relevant outputs.
Attributes:
🔹CountryName
🔹 CountryName
Data Type | Values | Default |
---|---|---|
Text | See table | United States of America |
If a valid Country
code was specified as an
attribute of the input module element, the full name of the country associated
with the specified Country code will be reported in this attribute.
🟥 <Results>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which describe the success or failure of the calculation, any warning or error messages, and the most important numerical results for the query.
<Results>
<Description>Successful Calculation</Description>
<Payment>1072.13</Payment>
<Number_of_Skips>3</Number_of_Skips>
<Payments_Specified>4</Payments_Specified>
</Results>
Attributes: None
🟥 <Results>
→<Description>
Element Type | Data Type |
---|---|
Data | Text |
If the calculation was completed successfully, then this element will contain
the value Successful Calculation
. Otherwise, this element will contain a
description of the problem encountered during the attempted computation.
Attributes: None
🟦 <Results>
→<XMLDetail>[]
Element Type | Data Type | Default |
---|---|---|
Data | Text | NULL |
The <XMLDetail>
elements are messages passed back to the calling application
which detail the status of the XML request. If the SCEX issues any warnings
regarding unrecognized elements or attributes, then each warning message will be
displayed in an <XMLDetail>
element.
Attributes: None
🟥 <Results>
→<Payment>
Element Type | Data Type |
---|---|
Data | Currency |
This element is the computed regular payment. This payment amount is used for all payments which are not irregular (a skipped or fixed payment).
Attributes: None
🟥 <Results>
→<Number_of_Skips>
Element Type | Data Type |
---|---|
Data | Integer |
The number of skipped payments occurring during the loan's scheduled payment stream is contained in this element. If no payments are skipped, then this element will hold a value of zero.
Attributes: None
🟥 <Results>
→<Payments_Specified>
Element Type | Data Type |
---|---|
Data | Integer |
The number of skipped and irregular payments during the loan's schedules
payment stream are contained in this element. Using this element and subtracting
the value held in <Number_of_Skips>
will produce the number
of non-skipped irregular payments.
Attributes: None
🟥 <FedBox>
Element Type | Data Type |
---|---|
Parent | - |
Some of the most important compliance related outputs are organized into the
<FedBox>
disclosures.
<FedBox>
<AmtFin>10000.00</AmtFin>
<FinChg>577.04</FinChg>
<TotPmts>10577.04</TotPmts>
<RegZAPR Type="Actuarial">9.999</RegZAPR>
</FedBox>
Attributes: None
🟥 <FedBox>
→<AmtFin>
Element Type | Data Type |
---|---|
Data | Currency |
The Regulation Z Amount Financed, which is defined as the amount of credit provided to you or on your behalf.
Attributes: None
🟥 <FedBox>
→<FinChg>
Element Type | Data Type |
---|---|
Data | Currency |
This element contains the Regulation Z Finance Charge, described as the dollar amount the credit extension will cost you.
Attributes: None
🟥 <FedBox>
→<TotPmts>
Element Type | Data Type |
---|---|
Data | Currency |
The amount which the borrower will have paid when the borrower has made all scheduled payments.
Attributes: None
🟦 <FedBox>
→<TotalSalePrice>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | <TotPmts> |
The sum of the total of payments plus the total down payment. Please note that
if no <TotalDown>
element was specified in the
request, then this element will not be present.
Attributes: None
🟥 <FedBox>
→<RegZAPR>
Element Type | Data Type |
---|---|
Data | Decimal |
The Regulation Z APR, which is the cost of the extension of credit expressed as a yearly rate. The Reg. Z APR element has a few attributes, described below:
Attributes:
🔹Max
,🔹MaxExceeded
,🔸Type
🔹 Max
Data Type | Default |
---|---|
Decimal | n/a |
This attribute specifies the maximum APR as configured in the account's setup files. If no maximum APR has been specified, then this attribute will not be present. The value of this attribute should be displayed as a percentage. As an example, for Max="36.000", you would disclose a maximum APR of 36.000%.
🔹 MaxExceeded
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
If a maximum APR is configured in the account's setup files, then the value of
this attribute indicates whether or not the current loan exceeds the maximum
allowed APR. As an example, if the maximum APR has been set to 36% and the APR
for the returned loan was 37.125%, the <RegZAPR>
element would be:
<RegZAPR Type="Actuarial" Max="36.000" MaxExceeded="true">37.125</RegZAPR>
🔸 Type
Values | |
---|---|
Enum | Actuarial , USRule , EU_APR , Canadian_APR , XIRR , XIRR360 , IRR , YieldIRR , Open_End |
This attribute specifies the method used to compute the reported APR: Actuarial or US Rule The method used is dictated by the setup files for the given account, but may be overridden in the XML input query.
Actuarial
- Governed by Appendix J to Regulation Z. Default US APR.USRule
- Used by large banks to mirror loan amortization.EU_APR
- Default European Union APR.Canadian_APR
- Default APR for Canada.XIRR
- Extended Internal Rate of Return (same as excel function).XIRR360
-XIRR
using a 360 divisor rather than a 365 divisor.YieldIRR
- Canadian mortgages may compute periodic interest using a fractional power of a periodic yield.Open_End
- Simply returns the interest rate.
🟦 <FedBox>
—><MAPR>
Element Type | Data Type |
---|---|
Data | Decimal |
If the military APR has been requested, then this element will be included in the output. The value of the element is the military APR, and the element has a few attributes, described below:
Attributes:
🔸Advance
,🔹Max
,🔹MaxExceeded
🔸 Advance
Data Type |
---|
Currency |
This attribute is the equivalent of the Amount Financed for the Military APR. Specifically, it is the principal balance less any MAPR fees, debt protection, etc.
🔹 Max
Data Type | Default |
---|---|
Decimal | 36.0 |
This attribute specifies the maximum Military APR as specified in the input XML
(see MAPR_Max
). If not specified, a default value
of 36% is assumed. The value of this attribute should be displayed as a
percentage. As an example, for Max="36.0"
, you would disclose a maximum
Military APR of 36.0%.
🔹 MaxExceeded
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
The value of this attribute 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>
element would be:
<MAPR Advance="1350.00" Max="36.000" MaxExceeded="true">37.125</MAPR>
🟦 <TILARESPA2015>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which are of interest to fulfilling the
2015 TILA RESPA rule. It will only be present if the
<TILARESPA2015>
element is present in the
request.
Sample TILARESPA2015 output:
<TILARESPA2015>
<TotalLoanCosts>0</TotalLoanCosts>
<CD_TotPmts>27311.07</CD_TotPmts>
<In5Years PaidTotal="27311" PaidPrincipal="25000"/>
<TIP>9.244</TIP>
<MaxPnIPmt Date="2012-11-01">1636.65</MaxPnIPmt>
<MinRate Idx="1">5.651</MinRate>
<MaxRate Idx="1">5.651</MaxRate>
<ProjectedPayments NumCols="3">
<PPCol Num="1" Title="Year 1">
<Years Start="1" End="1"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
<PPCol Num="2" Title="Year 2">
<Years Start="2" End="2"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
<PPCol Num="3" Title="Year 3">
<Years Start="3" End="3"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
</ProjectedPayments>
</TILARESPA2015>
Attributes: None
🟦 <TILARESPA2015>
→<LoanCost>[]
Element Type | Data Type |
---|---|
Data | Currency |
For every <Fee>
element present in the input which has
its IsLoanCost
attribute 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>
input element), there will be a
corresponding <LoanCost>
element. The value of this element will be the
numerical value of the fee, rounded to the nearest dollar.
🔹 In5Years
Data Type | Default |
---|---|
Currency | <LoanCost> |
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 attribute will be present and disclose the portion of this loan cost that is accrued during the first five years.
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
This attribute will hold the same value as the attribute of the same name for
the <Fee>
element. It is recommended that each fee
have a unique Name
for identification purposes.
🟥 <TILARESPA2015>
→<TotalLoanCosts>
Element Type | Data Type |
---|---|
Data | Currency |
This element holds the sum of all borrower paid loan costs. Since all
<LoanCost>
element values are rounded dollar amounts, the value of this
element will also be a rounded dollar amount.
Attributes: None
🟥 <TILARESPA2015>
→<CD_TotPmts>
Element Type | Data Type |
---|---|
Data | Currency |
This element holds 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 will be the numerical value of the sum.
Attributes: None
🟥 <TILARESPA2015>
→<In5Years>
Element Type | Data Type |
---|---|
Empty | - |
This element is empty, with all important values required for the new "In 5 Years" section returned in the following two attributes of this element.
Attributes:
🔸PaidPrincipal
,🔸PaidTotal
🔸 PaidPrincipal
Data Type |
---|
Currency |
This attribute 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.
🔸 PaidTotal
Data Type |
---|
Currency |
This attribute 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.
🟥 <TILARESPA2015>
→<TIP>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the total interest percentage, rounded to three or fewer decimal places, as required.
Attributes: None
🟥 <TILARESPA2015>
→<MaxPnIPmt>
Element Type | Data Type |
---|---|
Data | Currency |
The value of this element holds the maximum scheduled principal and interest payment during the term of the loan.
Attributes: 🔸
Date
🔸 Date
Data Type |
---|
Date |
This attribute contains 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. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🟥 <TILARESPA2015>
→<MinRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the minimum possible interest rate applied during the term of the loan.
Attributes: 🔸
Idx
🔸 Idx
Data Type |
---|
Integer |
This attribute contains the payment number for which the minimum rate is first applicable.
🟥 <TILARESPA2015>
→<MaxRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the maximum possible interest rate applied during the term of the loan.
Attributes: 🔸
Idx
🔸 Idx
Data Type |
---|
Integer |
This attribute contains the payment number for which the maximum rate is first applicable.
🟥 <TILARESPA2015>
→<ProjectedPayments>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which are of interest to filling the
Projected Payments table. It will only be present if the <TILARESPA2015>
element is present in the XML request for a supported loan type.
Attributes: 🔸
NumCols
🔸 NumCols
Data Type | Values |
---|---|
Integer | [1...4] |
This attribute will hold the number of columns which must be present in the Projected Payments table. It will be a numeric value from 1 to 4.
🟥 <ProjectedPayments>
→<PPCol>[]
Element Type | Data Type |
---|---|
Parent | - |
For every column required in the Projected Payments table, there will be an
associated <PPCol>
element. This element is a parent to child elements which
contain data associated with a single column of the table.
🔸 Num
Data Type | Values |
---|---|
Integer | [1...4] |
This attribute will hold the number of the column to which the following data applies.
🔸 Title
Data Type |
---|
Text |
The value of this attribute 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.
🟥 <ProjectedPayments>
→<PPCol>
→<Years>
Element Type | Data Type |
---|---|
Empty | - |
The attributes of this element hold the beginning and ending year numbers for which this column data applies. The element itself is empty.
🔸 End
Data Type |
---|
Integer |
The ending year associated with this column's data.
🔸 Start
Data Type |
---|
Integer |
The beginning year associated with this column's data.
🟥 <ProjectedPayments>
→<PPCol>
→<PnIPmt>
Element Type | Data Type |
---|---|
Empty | - |
This empty element has several attributes which describe the principal and interest payments associated with this column.
🔸 Balloon
Data Type | Values |
---|---|
Boolean | true , false |
If any of the payments associated with this column are balloon payments (e.g.
isolated payments that are more than twice the value of a regular periodic
payment), then the value of this attribute will be true
.
🔸 IntOnly
Data Type | Values |
---|---|
Enum | all , some , none |
none
- No payments associated with the column are Interest Onlysome
- Some, but not all, of the payments associated with the column are Interest Only.all
- All of the payments associated with the column are Interest Only.
Note that for the purposes of this attribute, 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.
🔸 Max
Data Type |
---|
Currency |
This attribute holds the maximum principal and interest payment for this column.
If this value is not the same as the value of the Min
attribute, then a range of rounded payments must be displayed. If the values are
the same, then only a single value needs to be disclosed.
🔸 Min
Data Type |
---|
Currency |
This attribute holds the minimum principal and interest payment for this column.
🟥 <ProjectedPayments>
→<PPCol>
→<MIPmt>
Element Type | Data Type |
---|---|
Data | Currency |
The value of this element 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.
Attributes: None
🟥 <ProjectedPayments>
→<PPCol>
→<TotalPmt>
Element Type | Data Type |
---|---|
Empty | - |
This empty element has two attributes which describe the estimated total payment or range of payments associated with this column. Note that this value does not include any estimated escrow, as the SCEX does not support escrow calculations. The calling application will need to increase these values by the estimated escrow amounts if any are present.
🔸 Max
Data Type |
---|
Currency |
This attribute holds the maximum estimated total payment for this column. If
this value is not the same as the value of the Min
attribute,
then a range of rounded payments must be displayed. If the values are the same,
then only a single value needs to be disclosed.
🔸 Min
Data Type |
---|
Currency |
This attribute holds the minimum estimated total payment for this column.
🟥 <Moneys>
Element Type | Data Type |
---|---|
Parent | - |
This element groups together those other major cash amounts not disclosed under
the <FedBox>
element, such as the principal balance, interest
change, fee amounts and protection premiums.
<Moneys>
<Principal>10120.00</Principal>
<Interest>1635.80</Interest>
<OddDaysPrepaid OddDayCount="15" DailyCost="2.77">41.55</OddDaysPrepaid>
<FinFees>120.00</FinFees>
<FinChgFees>91.55</FinChgFees>
<PocketFees>65.00</PocketFees>
<MAPRFees>201.55</MAPRFees>
<Protection Category="None" PerPmt="0.00" PerDay="0.00">0.00</Protection>
<Fee Name="FinFee">60.00</Fee>
<Fee Name="Prepaid Fee">50.00</Fee>
</Moneys>
Attributes: None
🟥 <Moneys>
→<Principal>
Element Type | Data Type |
---|---|
Data | Currency |
The principal balance is the amount on which interest is accrued. The principal balance consists of the amount requested by the borrower, any fees which are financed, as well as financed protection premiums.
Attributes: None
🟥 <Moneys>
→<Interest>
Element Type | Data Type |
---|---|
Data | Currency |
This element contains the total interest accrued during the term of the loan, assuming the borrower will make all scheduled payments.
Attributes: None
🟦 <Moneys>
→<ConstructInterest>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If the requested loan is a construction loan with a permanent loan attached and the account specified is set up to compute construction loans via the "Simple" method, then this element 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 <Interest>
element, and
both loans reflected in a single, combined amortization schedule.
If the requested loan was not a construction loan, or if construction loans have not been set up for the given account, then this element will not appear in the results.
Attributes: None
🟦 <Moneys>
→<OddDaysPrepaid>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element, if present, holds the total odd days prepaid finance charge. If no odd days prepaid fee was requested, then this element will not be present in the output.
Attributes:
🔹AddToPmt
,🔹DailyCost
,🔸OddDayCount
,🔹OddMonths
🔹 AddToPmt
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
If the odd days interest has been added to the first payment, this attribute
will be present in the output with a value of true
. If the odd days interest has
been treated as a prepaid finance charge, then this attribute will not be
present and a default value of false
should be assumed.
🔹 DailyCost
Data Type | Default |
---|---|
Currency | n/a |
If the odd days prepaid fee is computed using a rounded daily cost, then the value of this attribute will hold that value. If the odd days prepaid is not computed using a rounded daily cost, then this attribute will not be present.
🔸 OddDayCount
Data Type |
---|
Integer |
This attribute holds the number of odd days computed by the SCE for the requested loan.
🔹 OddMonths
Data Type | Default |
---|---|
Integer | n/a |
This attribute holds the number of odd months computed by the SCE for the
requested loan when using odd days accrual method 250
.
🟦 <Moneys>
→<MinInterestPmt>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | n/a |
The <MinInterestPmt>
element will only appear if the
Metavante
attribute has been set to true
,
and even then only under certain loan conditions. The element itself contains no
data, as all required data is found in the following two attributes:
🔸 Index
Data Type |
---|
Integer |
The Index
attribute specifies the payment number in the payment stream at which
the minimum interest payment is achieved.
🔸 Pmt
Data Type |
---|
Currency |
The interest payment amount for the given Index
.
🟦 <Moneys>
→<MaxInterestPmt>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | n/a |
The <MaxInterestPmt>
element will only appear if the
Metavante
attribute has been set to true
,
and even then only under certain loan conditions. The element itself contains no
data, as all required data is found in the following two attributes:
🔸 Index
Data Type |
---|
Integer |
The Index
attribute specifies the payment number in the payment stream at which
the maximum interest payment is achieved.
🔸 Pmt
Data Type |
---|
Currency |
The interest payment amount for the given Index
.
🟦 <Moneys>
→<FinFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element contains the sum of all financed fees requested for the loan. If no financed fees were requested, then this element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<FinChgFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element contains the sum of all APR affecting fees (those fees which are
added to the <FinChg>
) requested for the loan. If no APR affecting
fees were requested, then this element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<PocketFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element 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 element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<MAPRFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element 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.
Attributes: None
🟦 <Moneys>
→<Protection>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
Contains the total cost of all protection plans included with the computed loan.
For the individual plan costs, see the <ProtectionInfo>
elements described
below. The attributes of this element are as follows:
Attributes:
🔸Category
,🔹IsDp
,🔹Mandatory
,🔸PerDay
,🔸PerPmt
🔸 Category
Data Type | Values |
---|---|
Enum | See below |
This attribute specifies the category under which the computed loan protection falls. The possible values for this attribute are:
None
- No protection catetory has been identified.SP
- Single Premium protection financed at loan closing.MOB
- Monthly outstanding balance (paid on Payments).TrueMOB
- Premiums paid monthly on a date specified in the setup files.PaidSP
- Single premium protection paid at closing.ConstantMOB
- CMOB is a product paid with payments and a constant amount.AddToPmtMOB
- MOB insurance added to a constant P&I payment, resulting in variable payments.
🔹 IsDp
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
This attribute indicates if the specified account’s protection is set up as debt
protection. If this attribute 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).
🔹 Mandatory
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
This attribute should only appear in the response if the value of the attribute
is true
. If this attribute does not appear in the output, then the value of
this attribute should default to false
. If the value of the Mandatory
attribute is true
, then the total premium/fee amount for all insurance/debt
protection products has been treated as a part of the Regulation Z Finance
Charge, and hence will affect the Reg. Z APR.
🔸 PerDay
Data Type |
---|
Currency |
Contains the cost of all loan protection products expressed as dollars per day.
🔸 PerPmt
Data Type |
---|
Currency |
Contains the cost of all loan protection products expressed as dollars per payment.
🟦 <Moneys>
→<MinIntChgAdj>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a minimum interest charge is configured in the account’s setup files and the final payment was adjusted to meet this minimum interest charge, then this element will be returned in the response and will contain the value of the minimum finance charge adjustment.
Attributes: None
🟦 <Moneys>
→<MinFinChgAdj>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a minimum finance charge is configured in the account’s setup files and the final payment was adjusted to meet this minimum finance charge, then this element will be returned in the response and will contain the value of the minimum finance charge adjustment.
Attributes: None
🟦 <Moneys>
→<Fee>[]
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
For each non-zero fee requested in the loan calculation, there will be a <Fee>
element containing the computed fee amount.
Attributes:
🔹Name
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
Contains the value of the Name attribute of the corresponding
<Fee>
element from the request. If no such attribute is
present in the <Fee>
element, then none will be present
in the response element.
🟥 <Accrual>
Element Type | Data Type |
---|---|
Parent | - |
This element groups together interest accrual information, such as the accrual method used, days to the first payment, and the loan’s maturity date.
<Accrual>
<Method>Actual/365 US Rule</Method>
<Days1Pmt DayCount="Actual">74</Days1Pmt>
<Maturity>2015-07-01</Maturity>
</Accrual>
Attributes: None
🟥 <Accrual>
→<Method>
Element Type | Data Type |
---|---|
Data | Text |
The <Method>
element contains a textual description of the interest accrual
method used to compute the loan (e.g. "Unit Period 365 Simple").
Attributes: None
🟥 <Accrual>
→<Days1Pmt>
Element Type | Data Type |
---|---|
Data | Integer |
This element contains the number of days to the first payment, computed by one of two methods as specified in this element’s sole attribute.
Attributes:
🔸DayCount
🔸 DayCount
Data Type | Values |
---|---|
Enum | Actual , True360 |
Actual
- The actual number of days between these two dates are used.31
would be the day count for the 2024-01-01 to 2024-02-01.True360
- All months have 30 days.30
would be the day count for 2024-01-01 to 2024-02-01.
🟥 <Accrual>
→<Maturity>
(YYYY-MM-DD)
Element Type | Data Type |
---|---|
Data | Date |
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. Hence, a maturity date of February 15, 2020 would be specified as
<Maturity>2020-02-15</Maturity>
.
Attributes: None
🟥 <PmtStream>[]
Element Type | Data Type |
---|---|
Empty | - |
The <PmtStream>
element(s) describe the scheduled stream of payments for the
computed loan in the order paid. Instead of disclosing each and every payment
individually (which can be done with the <AmTable>
element), the
payment streams group together consecutive equal payments to produce a
compressed output view.
The following code translates to "Twelve consecutive payments of $879.31 computed at 10.000% begin on January 22nd, 2024".
<PmtStream Term="12" Pmt="879.31" Rate="10.000" Begin="2024-01-22"/>
Each element describes a single stream of equal payments, using the following attributes to define the important properties of each resulting payment stream:
🔸 Begin
Data Type |
---|
Date |
This attribute contains 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. In the example above, the first payment stream
is scheduled to begin on September 18, 2005. Hence, the Begin attribute for the
first payment stream element would be specified as Begin="2005-09-18"
.
🔸 Pmt
Data Type |
---|
Currency |
The Pmt
attribute contains the computed payment amount for this payment stream.
For the sample payment stream above, the payment amount is 879.31.
🔸 Rate
Data Type |
---|
Decimal |
Contains the interest rate used for the duration of this payment stream. Usually, the interest rate will remain fixed for the duration of the loan unless you are computing an adjustable rate loan or you are computing a LaserPro construction loan with permanent loan attached.
🔸 Term
Data Type |
---|
Integer |
The Term
attribute holds the number of contiguous payments that make up the
given payment stream. In the example payment stream above, the term for the
stream is 12.
🟦 <ProtectionInfo>[]
Element Type | Data Type |
---|---|
Parent | - |
These elements (there may be more than one if more than one type of protection was requested) contain information related to the various protection products requested on the given loan. Each element group provides complete results for each requested product (decreasing life, level life, disability/debt cancellation, involuntary unemployment, or personal property).
🔸 Formula
Data Type | Values |
---|---|
Enum | see Protection Formulas |
The Formula
attribute contains an abbreviated description of the formula used
to compute the desired protection product. The formula codes are described
here.
🔸 Product
Data Type | Values |
---|---|
Enum | Life , Level , Disability , Unemployment , Property |
This attribute informs the calling application to which type of protection product this element refers: decreasing life, level life, disability/debt cancellation, involuntary unemployment or personal property.
🔹 RateType
Data Type | Values |
---|---|
Enum | Fixed , Variable |
Fixed
- Protection rate stays constant during the calculations.Variable
- Protection rate changed from Joint to Single as the loan evolves.
🟥 <ProtectionInfo>
→<CalcResult>
Element Type | Data Type |
---|---|
Data | Text |
This element 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 child elements
of <ProtectionInfo>
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 child elements of
<ProtectionInfo>
, as the product was not computed.
<CalcResult>Valid Calculation</CalcResult>
Attributes: None
🟥 <ProtectionInfo>
→<Cost>
Element Type | Data Type |
---|---|
Empty | - |
Attributes of this empty element 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.
The only time there will be two <Cost>
elements to parse is when the account
has been set up to use Plateau’s Uniguard product, and the user has requested
joint coverage. If this is the case, then two <Cost>
elements are provided to
disclose two premiums instead of a single aggregate joint premium.
<Cost Premium="827.26" PerPmt="19.28" PerDay="0.63" Factor="1.0154"/>
🔸 Factor
Data Type |
---|
Decimal |
The rate factor used to compute the premium for the requested protection product.
🔸 PerDay
Data Type |
---|
Currency |
The daily cost of coverage, expressed in dollars.
🔸 PerPmt
Data Type |
---|
Currency |
The cost of coverage expressed as dollars per payment.
🔸 Premium
Data Type |
---|
Currency |
The total cost for this protection over the term of the loan.
🟥 <ProtectionInfo>
→<Coverage>
Element Type | Data Type |
---|---|
Empty | - |
The aggregate coverage amount and note are provided in the following attributes of this empty element:
<Coverage Amount="75000.00" Note="Partial Coverage of $75,000"/>
🔸 Amount
Data Type |
---|
Currency |
This attribute contains the aggregate coverage amount for this protection product.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🟥 <ProtectionInfo>
→<Benefit>
Element Type | Data Type |
---|---|
Empty | - |
This empty element will only show up for the disability and involuntary unemployment products.
<Benefit Amount="1000.00" Note="Partial Benefit of $1,000"/>
🔸 Amount
Data Type |
---|
Currency |
Attribute which contains the monthly benefit amount for this protection product.
🔸 Note
Data Type |
---|
Text |
This Note
will describe 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.
🔹 Periodic
Data Type | Default |
---|---|
Currency | n/a |
If the account has been configured to disclose periodic benefits (as opposed to
monthly benefit amounts, which are returned in the Amount
attribute described above), and if the specified payment frequency is other than
monthly, then this attribute will be present and will hold the periodic benefit
amount.
🟦 <ProtectionInfo>
→<CovTerm>
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the term of coverage for the requested product. If the request has specified the coverage term, then this element will be populated with that term.
<CovTerm InMonths="75" InPmts="75" Maturity="2018-09-22" Note="Truncated: Keep Benefit"/>
🔹 InDays
Data Type | Default |
---|---|
Integer | n/a |
Attribute which expresses the term of coverage in days. This attribute will only be present for the level life product, and even then only if needed (for example, when covering single payment notes).
🔸 InMonths
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of months.
🔸 InPmts
Data Type |
---|
Integer |
Contains the number of payments covered.
🔸 Maturity
(YYYY-MM-DD)
Data Type |
---|
Date |
This attribute contains the maturity date for the requested coverage. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🟦 <ProtectionInfo>
→<Borrower>[]
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the term of
coverage of a specified borrower, for the requested product. Note that this
element will only be present if the input XML request has specified
ShowBorrowerInfo
= "true"
, and a valid
birthdate was provided. The following attributes are defined for this purpose:
Attributes:
🔸AgeAtIssue
,🔸AgeAtMaturity
,🔸Birthday
,🔸Maturity
,🔸Months
,🔸Note
,🔸Pmts
🔸 AgeAtIssue
Data Type |
---|
Special - see below |
If coverage is written on this borrower, then the value of this attribute 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.
🔸 AgeAtMaturity
Data Type |
---|
Special - see below |
If coverage is written on this borrower, then the value of this attribute 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.
🔸 Birthday
Data Type |
---|
Date |
This attribute contains the birthday associated with the borrower, as specified in the request. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🔸 Maturity
Data Type |
---|
Date |
The value of this attribute contains the coverage maturity date for this particular borrower.
🔸 Months
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of months.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🔸 Pmts
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of payments.
🟦 <ProtectionInfo>
→<Caps>
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the maximum
terms, amounts, and ages associated with the requested product. This element
will only be present if the ShowCaps
attribute
of the <Protection>
element is set to true
.
<Caps Cov="75000" Ben="1000" Term="84" InceptAge="65" AttainAge="66"/>
Attributes:
🔸AttainAge
,🔸Ben
,🔸Cov
,🔸InceptAge
,🔸Term
🔸 AttainAge
Data Type |
---|
Integer |
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.
🔸 Ben
Data Type |
---|
Currency |
Contains the maximum monthly benefit amount, expressed in dollars. If no cap is present or applicable, then a value of zero is returned.
🔸 Cov
Data Type |
---|
Currency |
Contains the maximum aggregate coverage amount, expressed in dollars. If no cap is present or applicable, then a value of zero is returned.
🔸 InceptAge
Data Type |
---|
Integer |
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.
🔸 Term
Data Type |
---|
Integer |
Contains the maximum coverage term, expressed in months. If no cap is present or applicable, then a value of zero is returned.
🟦 <AmTable>
Element Type | Data Type |
---|---|
Parent | - |
This element (if present) contains child elements which describe the loan's
amortization information. This element (and all of its child elements) will only
be present if the HideAmort
property of the
root element of the input query is set to false
.
<AmTable>
Attributes will only occur as feedback data for Canadian APR's.
🔹 AvgBal
Data Type | Default |
---|---|
Currency | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute is the average balance of the loan used in the Canadian APR calculation.
🔹 Months
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🔹 OddDays
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🔹 Weeks
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🟦 <AmTable>
→<GrandTotals>[]
Element Type | Data Type |
---|---|
Empty | - |
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 the following attributes:
<GrandTotals PmtTot="10551.72" IntTot="551.68" PrinTot="10000.04"/>
🔹 AHTot
Data Type | Default |
---|---|
Currency | 0 |
The AHTot
attribute 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 over the duration
of the loan.
🔹 CLTot
Data Type | Default |
---|---|
Currency | 0 |
The CLTot
attribute 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.
🔸 IntTot
Data Type |
---|
Currency |
Contains the sum of all interest attributes in the AmLine
elements.
This amount will be different from the <Interest>
element if
there is a nonzero EndBal
for the final line of
amortization. The two will differ by this non-zero EndBal
.
🔸 PmtTot
Data Type |
---|
Currency |
Contains the total of payments scheduled for the computed loan.
🔸 PrinTot
Data Type |
---|
Currency |
Like IntTot
above, this attribute contains the total
amount paid to principal during the loan term, assuming all payments are made as
scheduled.
🟦 <AmTable>
→<SubTotals>[]
Element Type | Data Type |
---|---|
Empty | - |
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 <SubTotals>
element present. The element itself is empty, as all the
interesting categories are found in the following attributes:
<SubTotals Year="2024" Start="1" Events="12" PmtSub="10551.72" IntSub="551.68" PrinSub="10000.04"/>
Attributes:
🔹AHSub
,🔹CLSub
,🔸Events
,🔸IntSub
,🔸PmtSub
,🔸PrinSub
,🔸Start
,🔸Year
🔹 AHSub
Data Type | Default |
---|---|
Currency | 0 |
The AHSub
attribute 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
.
🔹 CLSub
Data Type | Default |
---|---|
Currency | 0 |
The CLSub
attribute 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
.
🔸 Events
Data Type |
---|
Integer |
This attribute defines the number of amortization events (contained in
<AmLine>
elements which are defined below) which belong to this
calendar Year
.
🔸 IntSub
Data Type |
---|
Currency |
Holds the total amount paid to interest over the Year
in
question, assuming all payments are made as scheduled.
🔸 PmtSub
Data Type |
---|
Currency |
Contains the total of payments scheduled for the Year
in
question.
🔸 PrinSub
Data Type |
---|
Currency |
Like IntSub
above, this attribute contains the total
amount paid to principal during the Year
in question,
assuming all payments are made as scheduled.
🔸 Start
Data Type |
---|
Integer |
This attribute defines the first amortization event which falls in the specified
calendar Year
. To find the <AmLine>
element
which corresponds to this value, match the Idx attribute of the
<AmLine>
element with the integer value reported by this attribute.
🔸 Year
Data Type |
---|
Integer |
The given calendar year for which the subtotal data is applicable.
🟥 <AmTable>
→<AmLine>[]
Element Type | Data Type |
---|---|
Empty | - |
There is one <AmLine>
element 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.) However, some loan protection methods (TruStage's monthly
renewable product, to be exact) have amortization events which correspond to
loan protection premiums being added to the loan balance on specific dates.
<AmLine Idx="1" Date="2024-01-01" BegBal="10000.00" Pmt="879.31" Int="84.93" Prin="794.38" EndBal="9205.62"/>
As with the <GrandTotals>
and <SubTotals>
elements, this element is empty and contains all of the useful information for a
given point in the amortization of a loan in the following attributes.
Attributes:
🔹AH
,🔸BegBal
,🔹CL
,🔸Date
,🔸EndBal
,🔸Idx
,🔸Int
,🔸Pmt
,🔸Prin
,🔹UnpaidInt
🔹 AH
Data Type | Default |
---|---|
Currency | 0 |
The AH
attribute 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.
🔸 BegBal
Data Type |
---|
Currency |
The principal balance before the amortization event occurs.
🔹 CL
Data Type | Default |
---|---|
Currency | 0 |
The CL
attribute 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.
🔸 Date
Data Type |
---|
Currency |
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.
🔸 EndBal
Data Type |
---|
Currency |
The principal balance amount, after the amortization event has taken place.
🔸 Idx
Data Type |
---|
Integer |
The index of the amortization event, which is either the payment number, or zero. A value of zero designates a protection premium that was charged on a date other than a payment date. (Occurs with protection category "TrueMOB").
🔸 Int
Data Type |
---|
Currency |
The amount of the payment which goes to pay interest.
🔸 Pmt
Data Type |
---|
Currency |
The amount of the payment (or zero if the event is a "TrueMOB" protection premium).
🔸 Prin
The amount of the payment which goes to reduce the principal balance.
🔹 UnpaidInt
Data Type | Default |
---|---|
Currency or Decimal | 0 |
This attribute 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 places. If rounded, then the unpaid interest is displayed to two (2) decimal places.
🟦 <Metavante>
Element Type | Data Type |
---|---|
Empty | - |
This element will only be present if the
Metavante
attribute of the root element is
set to true
. The element itself is empty, as all of the useful information is
in the following attributes:
Attributes:
🔸FormsTerm
,🔸HostTerm
🔸 FormsTerm
Data Type |
---|
Integer |
The number of months in the loan, as computed using the Metavante FORMS method.
🔸 HostTerm
Data Type |
---|
Integer |
The number of months in the loan, as computed using the Metavante HOST method.
Skipped and Pickup Payment Loans
This module is almost identical to the Skipped and Irregular Payment module, with only two differences:
-
Irregular payments elements (see
<IrregPmt>
) with a specifiedPayment
attribute value that is greater than zero are interpreted as "pickup" payments instead of "fixed" payments. A "pickup" payment is defined as the regular computed payment plus the additional specifiedPayment
. -
The
UsePrinPlusNotIrregs
root element attribute found in the Skips and Irregulars module is not supported.
Sample Request
The example below skips the summer months of June, July and August and plans for a pickup payment of $1,000 to be made in the month of December.
<inSKIPS_PICKUPS AccrualCode="320">
<LoanDate>2023-12-01</LoanDate>
<PmtDate>2024-01-01</PmtDate>
<IntRate>10</IntRate>
<Proceeds>10000.00</Proceeds>
<Term>12</Term>
<!--Skip June, July, and August payments -->
<IrregPmt Month="6" />
<IrregPmt Month="7" />
<IrregPmt Month="8" />
<!--Specify a pickup payment of $1,000 in December of 2024 -->
<IrregPmt Month="12" Year="2024" Payment="1000.00" />
</inSKIPS_PICKUPS>
Sample Response
The following response is returned from the SCEX when provided with the sample request above. Note that the final payment in December ($2,064.49) is $1,000 more than the regular computed payment of $1,064.49.
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE outSKIPS_PICKUPS SYSTEM "outSKIPS_PICKUPS.dtd">
<outSKIPS_PICKUPS>
<Results>
<Description>Successful Calculation</Description>
<Payment>1064.49</Payment>
<Number_of_Skips>3</Number_of_Skips>
<Payments_Specified>5</Payments_Specified>
</Results>
<FedBox>
<AmtFin>10000.00</AmtFin>
<FinChg>580.41</FinChg>
<TotPmts>10580.41</TotPmts>
<RegZAPR Type="Actuarial">9.999</RegZAPR>
</FedBox>
<Moneys>
<Principal>10000.00</Principal>
<Interest>580.41</Interest>
<Protection Category="None" PerPmt="0.00" PerDay="0.00">0.00</Protection>
</Moneys>
<Accrual>
<Method>Actual/365 US Rule</Method>
<Days1Pmt DayCount="Actual">31</Days1Pmt>
<Maturity>2024-12-01</Maturity>
</Accrual>
<PmtStream Term="5" Pmt="1064.49" Rate="10.000" Begin="2024-01-01"/>
<PmtStream Term="3" Pmt="1064.49" Rate="10.000" Begin="2024-09-01"/>
<PmtStream Term="1" Pmt="2064.49" Rate="10.000" Begin="2024-12-01"/>
<AmTable>
<GrandTotals PmtTot="10580.41" IntTot="580.39" PrinTot="10000.02"/>
<SubTotals Year="2024" Start="1" Events="12" PmtSub="10580.41" IntSub="580.39" PrinSub="10000.02"/>
<AmLine Idx="1" Date="2024-01-01" BegBal="10000.00" Pmt="1064.49" Int="84.93" Prin="979.56" EndBal="9020.44"/>
<AmLine Idx="2" Date="2024-02-01" BegBal="9020.44" Pmt="1064.49" Int="76.61" Prin="987.88" EndBal="8032.56"/>
<AmLine Idx="3" Date="2024-03-01" BegBal="8032.56" Pmt="1064.49" Int="63.82" Prin="1000.67" EndBal="7031.89"/>
<AmLine Idx="4" Date="2024-04-01" BegBal="7031.89" Pmt="1064.49" Int="59.72" Prin="1004.77" EndBal="6027.12"/>
<AmLine Idx="5" Date="2024-05-01" BegBal="6027.12" Pmt="1064.49" Int="49.54" Prin="1014.95" EndBal="5012.17"/>
<AmLine Idx="6" Date="2024-06-01" BegBal="5012.17" Pmt="0.00" Int="0.00" Prin="0.00" UnpaidInt="42.5691" EndBal="5012.17"/>
<AmLine Idx="7" Date="2024-07-01" BegBal="5012.17" Pmt="0.00" Int="0.00" Prin="0.00" UnpaidInt="83.765" EndBal="5012.17"/>
<AmLine Idx="8" Date="2024-08-01" BegBal="5012.17" Pmt="0.00" Int="0.00" Prin="0.00" UnpaidInt="126.3341" EndBal="5012.17"/>
<AmLine Idx="9" Date="2024-09-01" BegBal="5012.17" Pmt="1064.49" Int="168.90" Prin="895.59" EndBal="4116.58"/>
<AmLine Idx="10" Date="2024-10-01" BegBal="4116.58" Pmt="1064.49" Int="33.83" Prin="1030.66" EndBal="3085.92"/>
<AmLine Idx="11" Date="2024-11-01" BegBal="3085.92" Pmt="1064.49" Int="26.21" Prin="1038.28" EndBal="2047.64"/>
<AmLine Idx="12" Date="2024-12-01" BegBal="2047.64" Pmt="2064.49" Int="16.83" Prin="2047.66" EndBal="-0.02"/>
</AmTable>
</outSKIPS_PICKUPS>
Skipped and Pickup Payment Loans - Request
Please see the Legend to understand the conventions used to document each element and attribute. Note that for requests, the XML elements are documented in alphabetical order by parent element.
🟥 <inSKIPS_PICKUPS>
Element Type | Data Type |
---|---|
Parent | - |
This element is the root element for the request. It is a parent element that has no data, but does have several attributes that offer a wide variety of adjustments.
Attributes:
🔹Account
,🔹AccrualCode
,🔹AprType
,🔹Country
,🔹DataDirPath
,🔹ForceReload
,🔹HideAmort
,🔹Lastday
,🔹MAPR_Max
,🔹Metavante
,🔹OddFinal
,🔹PmtDollarRound
,🔹PmtRound
,🔹PPY
,🔹UseIntOnlyNotSkips
,🔹UseMAPR
,🔹YieldPPY
🔹 Account
Data Type | Values | Default |
---|---|---|
Integer | [1...9999] | 1 |
This attribute specifies which account should be used to compute the requested
loan. Each account is numbered from 1 to 9,999, and each account corresponds to
a set of setup files which define numerous settings which may affect the loan
calculation, such as the accrual method, insurance methods and rates, etc. If
this attribute is not specified, a default value of 1
will be used.
🔹 AccrualCode
Data Type | Values | Default |
---|---|---|
Enum | See table | default |
This property allows an accrual method to be used other than the accrual method dictated by the setup file for the given account. If no accrual code attribute is specified, the method defined in the setup file will be used. The Accrual Code Table lists all valid accrual codes available. Note that for the split rate accrual codes (i.e. those above 500), the split rate tiers must be defined in the setup file.
🔹 AprType
Data Type | Values | Default |
---|---|---|
Enum | See below | default |
This attribute allows the calling application to specify an APR calculation method which will override the default value found in the setup file for the given account. If this attribute is set to a valid value, then the specified method will be used to compute the APR for this loan calculation.
If the Country
attribute has been set by the calling
application and this attribute is not set, then the APR method used will be
determined by the specified country. For the United States of America, the
default APR method is actuarial
. For a country in the European Union, the
default value is eu
(European Union APR). For Canada, the default APR method
is ca
(Canadian APR).
default
- Use setup file value.actuarial
- Appendix J Actuarial APRusrule
- US Rule APReu
- European Union APRca
- Canadian APRxirr
- Extended Internal Rate of Return (same as excel function)xirr360
- XIRR using a 360 divisor rather than a 365 divisorirr
- Simple Internal Rate of Return (same as excel function)
If this attribute is not specified and the Country
attribute
is not specified, then the value of default
will be used which informs the SCE
to use the APR method defined in the setup file for the specified
Account
.
🔹 Country
Data Type | Values | Default |
---|---|---|
Alpha-2 or Numeric-3 code | See table | US |
This attribute allows the calling application to specify a two (2) character or
three (3) digit country code. If none is provided, then a default value of US
will be used. Please see the Country Codes Table for the
list of supported countries and their associated codes.
Currently, the country code is used to determine the default value of the
AprType
attribute (see above).
🔹 DataDirPath
Data Type | Values | Default |
---|---|---|
Text | See below | See below |
If this attribute is set, the SCE will look for a data folder containing the
setup files in the path specified. Thus, if the DataDirPath
is set to
C:\SCEX\
, the SCE will look for the setup files in C:\SCEX\data
.
If the calling application wishes to specify the data directory path in its
entirety (e.g. the calling app does not want the SCE to append \data
to the
provided path), then simply terminate the specified DataDirPath
with an
asterisk (*
). Thus, if the DataDirPath
is set to C:\SCEX\bank1\*
, the SCE
will look for the setup files in C:\SCEX\bank1\
.
If this attribute is not set, the SCE will attempt to locate the data folder in
the default data directory path location, which can be retrieved using the
<inVERSION>
module query, and set via the SCE API.
This attribute is useful if you wish to use only a single installation of the
SCE, but have many different setup file groupings. By specifying a different
DataDirPath
for each grouping, you can easily separate the groups from one
another instead of grouping them all together in a single directory.
🔹 ForceReload
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
The SCE caches setup files previously used. This improves performance for
subsequent loan requests using one of the cached accounts. However, if you need
the SCE to reload the setup files for a given request (e.g. you just copied
over new setup files), then you can set this attribute to true
and the setup
files will be forced to reload. If left at the default value of false
, then
setup files are only reloaded when the SCE notices that one of the setup files
has been modified.
🔹 HideAmort
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
This attribute determines whether or not an amortization schedule will be
included in the response, given a successful loan calculation. If you do not
require the use of the amortization schedule, then setting this attribute to
true
will suppress its output. The default value of false
will return the
amortization schedule as part of the response.
🔹 Lastday
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If present, this attribute overrides the Last Day setting in the setup files, which only applies to loans computed with an actual day interest accrual calendar where the first payment date falls at the end of a month with fewer than 31 days. As an example, if the first payment date is on April 30, should the following payment dates be made on the 30th of each month, or on the last day of the month?
If no value is specified for this attribute, then the setup file setting will be
used. If true
is specified, then conditions triggering a last day situation
will result in payments which fall at the end of the month. A value of false
indicates that when dictated, subsequent payment dates will not be moved to the
last day of the month.
🔹 MAPR_Max
Data Type | Values | Default |
---|---|---|
Decimal | [-99.999...600] | 36.0 |
If you are computing the Military APR (see UseMAPR
below) and
wish to override the default maximum APR value of 36
%, then specify the
desired maximum as the value of this attribute.
🔹 Metavante
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to a value of true
, then the
<Metavante>
element will be included in the
response. Also, some loans will also disclose
<MinInterestPmt>
and
<MaxInterestPmt>
elements.
🔹 OddFinal
Data Type | Values | Default |
---|---|---|
Enum | default , true , false , 1 , 0 | default |
This attribute allows the calling application to specify an odd final payment
calculation method which will override the default value found in the setup file
for the given account. If not specified, then the value of default
will be used.
Odd final payments are sometimes desired to produce perfect amortization (i.e. an ending balance of zero after the final payment is made).
🔹 PmtDollarRound
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Payments are normally rounded to the penny, according to the method specified by
the PmtRound attribute (see below). If the payment should be rounded to the
dollar instead of the penny, then set the value of this attribute to true
.
Note that for some loans (such as those with longer terms or relatively small proceeds), rounding the payment up or to the nearest dollar may require a shortened loan term to prevent one or more negative payments at the end of the loan.
🔹 PmtRound
Data Type | Values | Default |
---|---|---|
Enum | default , nearest , up , down , best | default |
This attribute allows the calling application to specify a payment rounding
option which will override the value found in the setup file. If not specified,
then the value of default
will be used.
default
- Use method specified in setup file.nearest
- Round computed payment to the nearest penny, using 5/4 rounding. e.g. 300.242 = 300.24, 300.245 = 300.25.up
- Round computed payment up to the next penny. e.g. 300.241 = 300.25.down
- Round computed payment down to the previous penny. e.g. 300.249 = 300.24.best
- Once the unrounded payment has been computed, amortize the loan using the rounded down and rounded up payment, and then return the payment which amortizes the loan’s ending balance closest to zero.
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | See below | monthly |
PPY is an abbreviation for payments per year, and as one might surmise,
determines the payment frequency for the loan. The default value of monthly
will
result in a loan with 12 payments per year. If you require a loan with a payment
frequency other than monthly, specify it using this attribute.
Value | Translation | Description |
---|---|---|
1 | Annual | Once Per Year |
2 | SemiAnnual | Twice Per year (every six months) |
4 | Quarterly | Four per year (every three months) |
6 | Bimonthly | Six per year (every two months) |
12 | Monthly | Twelve per year (every month) |
24 | Semimonthly | Twice Per Month* |
26 | Biweekly | Every two weeks |
52 | Weekly | Every week |
* Semimonthly loans are characterized by making two payments per month on the same days. A common semimonthly schedule is to make payments every 1st and 16th of the month. Another common schedule is the 15th and the end of every month.
🔹 UseIntOnlyNotSkips
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to true
, then any specified skipped payments (see the
<IrregPmt>
element) will be treated as interest only payments
instead of skipped payments.
🔹 UseMAPR
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to a value of true
, the SCE will compute the Military
APR in addition to the Regulation Z APR. The <MAPR>
element will be included in the XML loan response.
🔹 YieldPPY
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 , 4 , 6 , 12 | 0 |
Canadian mortgages may compute periodic interest using a fractional power of a
periodic yield. If set to a value other than 0
, this value determines the
period. Please contact us for further information if you support mortgage
calculations in Canada. Note that when using this attribute with a value other
than zero, the calling application must include an odd days prepaid fee in the
request.
🟦 <Construction>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | Not a construction loan |
Include the <Construction>
element to configure a construction period on a
loan. The use of this element requires setup files configured to support
construction loans, or specification of the Method
to be used.
If the specified account is not set up to support construction loans, this
element will be ignored.
Attributes:
🔹Accrual
,🔹Active
,🔹HalfCommitment
,🔹Method
,🔹PermanentAttached
,🔹PPY
,🔸Rate
,🔸Term
,🔹UnitOddDayDivisor
🔹 Accrual
Data Type | Values | Default |
---|---|---|
Enum | default , unitperiod , actual360 , actual365 | default |
If the loan request is a construction loan with no permanent loan attached, this attribute allows the calling application to specify the accrual method used.
default
- The setup files determine the default value for interest accrual.unitperiod
- Compute periodic interest using a 1/PPY factor.actual360
- Compute periodic interest using the actual # of days between payments/360.actual365
- Compute periodic interest using the actual # of days between payments/365.
🔹 Active
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this loan request includes a construction loan, then set this attribute to
true
. If no construction loan is desired, either do not specify the
<Construction>
element or set this attribute to false
.
🔹 HalfCommitment
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
During the term of the construction loan, the estimated interest for disclosure
purposes may be either computed on the full or half commitment amounts. By
setting this attribute to true
, interest will be estimated using half of the
initial commitment amount (i.e. the principal balance). The default value of
false
will cause interest to be estimated using the entire initial commitment
amount.
🔹 Method
Data Type | Values | Default |
---|---|---|
Enum | default , simple , laserpro , intonly | default |
There are three methods used to define how construction loans are computed and
disclosed. A method of default
tells the SCE to use the method
configured in the setup file. The meaning of the three methods are as follows:
simple
- Compute an aggregate construction interest amount for the entire construction period for both pure construction loans and construction to permanent loans.laserpro
- Compute an aggregate construction interest amount for the entire construction period for pure construction loans. For construction to permanent loans, compute and disclose discrete interest-only payments during the construction period.intonly
- Compute and disclose discrete interest-only payments during the construction period for both pure construction loans and construction to permanent loans.
🔹 PermanentAttached
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Construction loans may be computed on their own, or they may be attached to a
permanent loan which begins at the conclusion of the construction loan. If a
permanent loan is attached to the construction loan, then set this attribute’s
value to true
and set up the permanent loan information in the request
elements.
The default value of false
indicates that this is solely a construction loan
with no permanent attached. In this case, you still need to set up the
<LoanDate>
, <PmtDate>
and <Proceeds>
elements.
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | 1 , 2 , 4 , 6 , 12 , 24 , 26 , 52 | 12 |
The PPY
attribute allows the calling application to specify the payment
frequency during the construction period. The default value of monthly will
result in a construction loan with 12 payments per year. If you require a
payment frequency during the construction period other than monthly, then
specify it using this attribute. Note that if a permanent loan is attached to
the construction loan, that the permanent loan's payment frequency may differ
from the construction period’s payment frequency.
🔸 Rate
Data Type | Values | Default |
---|---|---|
Decimal | [-99.999...600] | 0 |
This attribute determines the rate applied to the appropriate commitment amount during the term of the construction loan.
🔸 Term
Data Type | Values | Default |
---|---|---|
Integer | [1...60] * | 0 |
The term of the construction loan (in payments) is specified using this attribute. Please note that the term may not exceed five years.
* 60 is the maximum number of months in the Construction period. In general, the maximum entry is 5 *
PPY
, where the PPY is the payments per year attribute of the<Construction>
element.
🔹 UnitOddDayDivisor
(enum, [], Ignore)
Data Type | Values | Default |
---|---|---|
Enum | ignore , 360 , 365 , vardpy | ignore |
When specifying an Accrual
method of type unitperiod
, this
attribute allows the calling application to specify how odd days between the
loan and first payment dates are taken into account.
ignore
means that all odd days are ignored, and the calculation will assume
one full unit period. 360
and 365
will compute the actual number of days
between the loan date and first payment date, and then use either a 360 or 365
divisor to determine the amount of interest accrued during that period. vardpy
accrues interest in the same manner as accrual code 250/350.
🟦 <Fee>[]
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No fee |
Unlike most other elements, any number of fees may be defined, or none at all. All of the information used to compute a fee is contained in its attributes.
Attributes:
🔹AddToFinChg
,🔹AddToPrin
,🔹Adjust
,🔹CalcType
,🔸Entry
,🔹IsLoanCost
,🔹MAPR
,🔹MaxValue
,🔹MinValue
,🔹Name
🔹 AddToFinChg
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
If this fee should be included in the Reg. Z Finance Charge (and hence, affect
the APR), then set this attribute to true
. The default value of false
indicates that the fee does not affect the Finance Charge nor APR.
🔹 AddToPrin
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this fee should be added to the principal balance (e.g. the fee is financed
along with the amount requested), then set this attribute to true
. If set to
false
, then the fee is paid up front out of the borrower’s pocket.
🔹 Adjust
Data Type | Values | Default |
---|---|---|
Currency | any | 0 |
The optional attribute Adjust
allows the calling application to increase or
decrease the base amount on which a fee is calculated. If a negative value is
specified and this adjustment would produce a negative base amount, then a value
of zero is returned for the given fee. This attribute has no effect on fees with
a CalcType
of Dollar
.
As an example, in Tennessee you may need to define a financed, non-APR affecting fee to be computed by decreasing the amount financed by $2,000, and then multiplying this reduced amount by 0.115. The way to accomplish this in the SCEX is as follows:
<Fee CalcType="OnAmtFin" Entry="0.115" Adjust="-2000" AddToPrin="true" AddToFinChg="false" />
🔹 CalcType
Data Type | Values | Default |
---|---|---|
Enum | Dollar , OnProceeds , OnAmtFin , OnPrin , DocStamp | Dollar |
The value of this attribute determines how the fee is to be computed, as described below:
Dollar
- TheEntry
attribute is understood as a flat dollar amount.OnProceeds
- TheEntry
attribute is understood as a percentage value, to be applied to the loan’s proceeds. AnEntry
of1.0
would represent a fee of 1.0% of proceeds.OnAmtFin
- TheEntry
attribute is understood as a percentage value, to be applied to the Amount Financed. AnEntry
of0.5
would represent a fee of 0.5% of Amount Financed.OnPrin
- TheEntry
attribute is understood as a percentage value, to be applied to the loan’s principal balance. AnEntry
of0.125
would represent a fee of 0.125% of principal balance.DocStamp
- TheEntry
attribute is understood as a Florida doc stamp rate, to be applied to the loan’s principal balance. AnEntry
of0.35
would represent a fee of 0.35% of the principal balance. You must set the AddToFinChg attribute to false, otherwise the doc stamp fee will return a value of zero.
🔸 Entry
Data Type | Values |
---|---|
Decimal or Currency | >= 0 |
The Entry
is the basic starting point fee value that determines the dollar
value of the resulting fee computation. How this attribute is interpreted
depends upon the CalcType
attribute, described above. This
value is either a dollar value or a percentage (aka "points").
🔹 IsLoanCost
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
When requesting the new TILA RESPA outputs (via the
<TILARESPA2015>
element), the SCE needs to know which fees need
to be considered borrower paid loan costs, as defined in the rule. Please note
that if the fee is paid by a lender or other third party, then the fee does not
affect the loan calculation and should not be sent to the SCE. If it is sent,
then the value of this attribute should be set to false
.
🔹 MAPR
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If you wish to compute the Military APR, then certain fees may not be considered
Regulation Z APR affecting fees, but are considered Military APR affecting fees.
In this case, you will need to set the value of this attribute to true
.
Fees which are added to the finance charge (e.g.
AddToFinChg
="true"
) are always considered MAPR fees,
regardless of the stated value of this attribute.
Note that debt protection products are automatically included in the calculation of the Military APR, no matter what method is used for payment (e.g. single premium vs. monthly outstanding balance).
🔹 MaxValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If a maximum value for the fee is specified and is greater than zero, then if the computed fee exceeds this maximum value, then this maximum value will be used instead. If no maximum value is specified or is set to a value of zero, then no maximum will be enforced. Please note that this attribute is applied to all fee types documented.
🔹 MinValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If a minimum value for the fee is specified and is greater than zero, and if the
Entry
attribute holds a value greater than zero, then if the
computed fee is less than this minimum value, then this minimum value will be
used instead. If no minimum value is specified or is set to a value of zero,
then no minimum will be enforced. If a specified minimum value exceeds a
specified maximum value, then the minimum value will be ignored. Please note
that this attribute is applied to all fee types documented.
🔹 Name
Data Type | Values | Default |
---|---|---|
Text | any | n/a |
This attribute is for convenience purposes only, and does not affect the
calculation of the fee in any manner. If a Name
attribute is specified for the
<Fee>
element, then the corresponding <Fee>
element in the XML output will have a Name
attribute with the same value. This allows you to easily differentiate fees in
the response.
🟦 <Format>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | See attributes |
The <Format>
element is one of the first elements parsed from a request, as the
attributes of this empty element affect how date and numeric values are parsed
and validated.
Attributes:
🔹CurrencyDecimals
,🔹DateFormat
,🔹DateSeparator
,🔹DecimalSeparator
,🔹StrictDP
,🔹ThousandSeparator
🔹 CurrencyDecimals
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 | 2 |
When displaying and parsing Currency values, the value of this attribute
determines the maximum number of decimal places allowed after the
DecimalSeparator
.
🔹 DateFormat
Data Type | Values | Default |
---|---|---|
Enum | YMD , MDY , DMY | YMD |
When displaying and parsing Date values, this field determines the expected
format for all Date fields. The following DateFormat
options are allowed:
YMD
- All dates should be formatted as YYYY-MM-DD.MDY
- All dates should be formatted as MM-DD-YYYY.DMY
- All dates should be formatted as DD-MM-YYYY.
Note that the character which separates the individual month, day, and year
portions of the date is configurable via the
DateSeparator
attribute.
🔹 DateSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | - |
When displaying and parsing Date values, this attribute determines the character used to separate the individual month, day, and year portions of a date.
🔹 DecimalSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | . |
When displaying and parsing Currency or Decimal numeric values, this attribute determines the character used to separate the fractional part from the whole.
🔹 StrictDP
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 , | false |
If the value of this attribute is true
, then the SCE will strictly verify the
number of decimal places allowed for currency input values. Thus, if the calling
application sends in a request with a currency amount of 1000.005
, the SCE
will return an error code.
If the value of this attribute is false
, then currency values sent in with an
invalid number of decimal places will be rounded to the correct number of
decimal places by the SCE (using five/four rounding), and a warning message with
this information will be returned with the response.
🔹 ThousandSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | , |
When displaying numeric values, this attribute determines the character used to separate the thousands places from the hundreds. Note that when parsing numeric values, the value of this attribute is ignored.
🟦 <InterestPmtRate>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Decimal | [-99.999...600] | 0 |
If this loan has interest only payments preceding the irregular loan
(i.e. the value contained in <InterestPmts>
is greater
than zero), then this element contains the interest rate charged during
the interest only payment stream.
If no interest only payments precede the irregular loan, then this element may be omitted.
Attributes: None
🟦 <InterestPmts>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Integer | > 0 | 0 |
If present, this element determines the number of interest only payments which
precede the start of the irregular loan. After the specified number of interest
only payments are made, then the irregular loan continues for the number of
payments specified in the <Term>
element.
Also note that these interest only payments which precede the irregular payment
loan are not affected by
If this element is not present in the request, then no interest only payments will precede the irregular loan calculation.
Attributes: None
🟥 <IntRate>
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | [-99.999...600] |
The element data will determine the annual interest rate used for the loan. (Split rate loans require use of the setup files.)
The interest rate should be expressed as an annual percentage. For example, a loan computed with an interest rate of 6.125% would be specified as:
<IntRate>6.125</IntRate>
Attributes: None
🟦 <IntStartDate>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= <LoanDate> and <= <PmtDate> | <LoanDate> |
This element contains the date on which interest begins to accrue on the loan’s
principal balance. If this element is not specified, then the interest start
date is defaulted to be the <LoanDate>
. Also note that the
interest start date must be equal to the loan date when computing a construction
loan. The interest start date (when specified) must be on or after the loan
date, as well as on or before the <PmtDate>
. All dates must be in
the form of YYYY-MM-DD, and be 10 characters long. Hence, an interest start date
April 27, 2024 would be specified as:
<IntStartDate>2024-04-27</IntStartDate>
Attributes: None
🟦 <IrregPmt>[]
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No irregular payment |
These elements allow the calling application to specify when skipped and/or pickup payments are to be included in the loan's repayment schedule. The element itself is empty, as all skipped payment data is contained it the element's attributes.
🔹 Index
Data Type | Values | Default |
---|---|---|
Integer | > 0 | 0 |
Instead of specifying a Month
(and optionally, a
Year
) for a given skipped / irregular payment, you may
optionally specify a payment number using the Index
attribute. Thus, if you
wish to specify that the first payment be skipped or irregular, you would set
Index="1"
.
Interest only payments preceding the irregular loan (as specified by the
<InterestPmts>
element are not counted when specifying an
Index
.
Note that if you specify a payment index, then you should not specify the
Month
or Year
attributes. If you do, the
Index
value will take precedence and the other two values will be ignored.
🔹 Month
Data Type | Values | Default |
---|---|---|
Integer | [0...12] | 0 |
The Month
attribute allows the user to specify a month during which the
skipped / irregular payment is applicable. If the Year
attribute is not set
for this element, then the skipped / irregular payment will be applied for each
payment falling in the given month, throughout the entire term of the loan
(excepting any interest only payments which precede the irregular loan).
On the other hand, if the Year
attribute is set for this
element, then the skipped / irregular payment will only be applied to those
payments falling in the given month and year.
If the value of the Month
attribute is set to zero (0), then this irregular
payment specification applies to all payments in the loan. Since the loan must
have at least one payment to compute, after specifying a month of zero, you will
also need to specify an irregular payment entry with a payment amount of -1
(see the Payment
attribute below).
If you wish to specify a skipped / irregular payment for a specific payment
number (instead of specifying the month and optionally, the year), then use the
Index
attribute and do not specify a Month or Year
attribute.
🔹 Payment
Data Type | Values | Default |
---|---|---|
Currency | > 0 | 0 |
This attribute determines the type of irregular payment for the specified month
(and possible year). A value of 0
(zero) indicates that the specified
payment(s) should be skipped (or interest only, if the
[UseIntOnlyNotSkips]
(#root.useintonlynotskips) attribute is true).
Any value greater than zero indicates that the specified payment(s) should be treated as pickup payments, with the value provided taken as the additional amount to be added to the computed regular payment.
A value of -1
(negative one), indicates that this irregular payment should be
the computed payment.
🔹 Year
Data Type | Values | Default |
---|---|---|
Integer | > 0 | 0 |
As discussed above, the Year
attribute works closely with the Month
attribute, and is entirely optional.
🟥 <LoanDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= 1900-01-01 |
This element determines when interest begins to accrue. If interest begins on a
later date, use the <IntStartDate>
element to define the date
on which interest begins to accrue.
This element contains the date on which the loan amount is disbursed and interest begins to accrue. All dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a loan date of March 4, 2024 would be specified as:
<LoanDate>2024-03-04</LoanDate>
Attributes: None
🟦 <OddDaysPrepaid>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No odd days prepaid interest |
If odd days interest should be treated as a prepaid finance charge or added to the first payment, then include this empty element in the request. The attributes of this element determine how odd days interest is computed and handled.
Attributes:
🔹AccrualCode
,🔹AddToPmt
,🔹AddToPrin
,🔹AnchorDate
,🔹ForceUnitPeriod
,🔹NoCap
,🔹UseDailyCost
,🔹UseNegODI
🔹 AccrualCode
Data Type | Values | Default |
---|---|---|
Enum | See below | 220 |
The accrual code defines how the odd days interest is computed.
Note that accrual code 250
("Variable Days Per Year") defines the basis divisor
days to be equal to 12 multiplied by the number of days in the month of the date
on which interest begins to accrue. Thus, if the interest start date falls in
November, then the number of basis days is 360. If the interest start date falls
in a month with 31 days, then the number of basis days is 372. For an interest
start date in February, the number of basis days will either be 336 or 348,
depending upon whether or not it is a leap year.
AccrualCode | Description |
---|---|
204 | Unit period simple w/ true 360 calendar and 360 day divisor |
205 | Unit period simple w/ true 360 calendar and 365 day divisor |
210 | Actual / 360 simple |
211 | True 365 / 360 simple |
220 | Actual / 365 simple |
221 | True 365 / 365 simple |
230 | Actual / Actual simple |
231 | Midnight 366 simple |
250 | Unit period simple w/ variable DPY divisor |
🔹 AddToPmt
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application wants the odd days interest to be added to the first
payment, then set the value of this attribute to true
. A value of false
indicates that the odd days interest will be treated as a prepaid fee.
🔹 AddToPrin
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If any odd days interest should be treated as a financed prepaid fee, then set
the value of this attribute to true
. Note that if both
AddToPmt
and AddToPrin
are set to true
, then a warning
message will be returned by the SCEX and the value of AddToPrin
will be set to
false
.
🔹 AnchorDate
Data Type | Values | Default |
---|---|---|
Enum | BackUnitPeriod , BackDaysPerPeriod | BackUnitPeriod |
The computed number of odd days is the number of days between the loan date and the anchor date. This attribute determines how to arrive at the anchor date.
BackUnitPeriod
- The anchor date is one unit period prior to the specified first payment date.BackDaysPerPeriod
- The anchor date is the number of days per period prior to the first payment date.
Please note that for both of these methods, the period used will be that associated with the payment stream in which the first payment occurs.
🔹 ForceUnitPeriod
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the loan's interest accrual is unit period, this attribute forces the period
to the first payment to be 1/12 (or 1/(PmtsPerYear) in general). Without this
attribute an accrual code of 202
(Unit Period /365) would use a factor of
Days/365 rather than the expected 1/12.
🔹 NoCap
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
When an odd days interest fee is present and financed, the value of this
attribute determines if the ODI fee is added to the principal balance for the
purposes of computing the ODI fee (e.g. if it is capitalized). If this value is
true
, the ODI is computed on the true principal balance less the ODI; false
means "compute ODI on the true principal balance.
🔹 UseDailyCost
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the total odd days prepaid fee is computed by first generating a rounded (to
the nearest penny) daily cost and then multiplying this value by the computed
number of odd days, then set the value of this property to true
.
A value of false
means that the daily cost is left unrounded, and the total
prepaid fee is rounded after the computation is complete.
🔹 UseNegODI
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If there are negative odd days in the loan, then the value of this attribute
determines if a negative odd days interest fee is computed. If the value of this
attribute is false
, then negative odd days fees are not allowed, the SCEX will
return a value of zero in this situation, and the computed payment will be
adjusted to take into account the negative odd days. A value of true
will
return a negative odd days interest fee (in effect, it then becomes an odd days
interest credit) when there are negative odd days in a loan.
🟥 <PmtDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= <LoanDate> and >= <IntStartDate> |
This element contains the date on which the first payment of the loan is made, and must be on or after the loan date.
All dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a first payment date of April 4, 2024 would be specified as:
<PmtDate>2005-04-04</PmtDate>
Attributes: None
🟥 <Proceeds>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | >= 0 |
The proceeds specifies the amount the customer has frequested to borrow, ignoring every other financed quantity. Proceeds of up to one billion dollars are accepted.
The amount should be expressed as a number. For example, a request including
<Proceeds>10000.00</Proceeds>
indicates an amount requested of 10,000.
Attributes: None
🟦 <Protection>
Element Type | Data Type | Values | Default |
---|---|---|---|
Parent | - | - | No protection included |
The <Protection>
element is used to specify debt protection coverages such as
life, disability, involuntary unemployment, personal property and debt
cancellation. Each type of coverage is specified by its own sub-element, along
with the borrower birthdays. The following attributes apply to this element:
Attributes:
🔹FinanceProt
,🔹LineOfCredit
,🔹Mandatory
,🔹ShowBorrowerInfo
,🔹ShowCaps
🔹 FinanceProt
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
If the computed premiums for single premium debt protection products should be
financed along with the proceeds, then this attribute should be set to true
(which is the default value if not specified). A value of false
indicates that
the computed premiums will not be financed with the proceeds, and hence will be
paid out of pocket by the borrower. Note that this applies to single premium
insurance products only!
🔹 LineOfCredit
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this is an account using TruStage’s MOB insurance, and if this loan is a line
of credit where product term caps should be ignored, then set this attribute to
true
. Otherwise, leave this attribute unspecified or set it to false
.
🔹 Mandatory
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the value of this attribute is set to true
, then any computed payment
protection premium or fee will be considered a mandatory fee which will be
included as a part of the Regulation Z Finance Charge, and hence affect the
Regulation Z APR. In this case, the <Protection>
element in the response will contain a
Mandatory
="true"
attribute indicating this.
If the Mandatory attribute is set to false
, the loan will treat any premiums /
fees as normal.
🔹 ShowBorrowerInfo
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application would like to have data returned for each specified
borrower instead of a single <CovTerm>
element, then
set the value of this attribute to true
. Otherwise, leave this attribute
unspecified or set it to false
. See the <Borrower>
and <CovTerm>
elements defined in the response for
more information.
🔹 ShowCaps
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application would like to have cap information (e.g., maximum
terms, coverage amounts, ages, etc.) returned for each product offered, set the
value of this attribute to true
. Otherwise, leave this attribute unspecified
or set it to false
. See the <Caps>
element for more
information.
🟦 <Protection>
→<Birthday1>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= 1900-01-01 | No birthday specified |
This element contains the date of birth for the primary borrower. All dates must
be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a birthday of
April 9, 1972 would be specified as <Birthday1>1972-04-09</Birthday1>
. Note
that this element must be set if the Covers attribute of any of the four debt
coverage elements is set to borrower1
or both
.
Attributes: None
🟦 <Protection>
→<Birthday2>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= 1900-01-01 | No birthday specified |
This element contains the date of birth of the secondary borrower. All dates
must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a birthday
of May 21, 1969 would be specified as <Birthday2>1969-05-21</Birthday2>
.
Attributes: None
🟦 <Protection>
→<Disability>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No disability coverage |
The <Disability>
element determines what type of disability coverage is
requested for the loan. It also serves double duty as the debt cancellation
coverage element, for accounts set up to compute debt cancellation using the
disability tables. The element itself is empty, with all information needed for
disability coverage request being specified in the following attributes:
🔹 Benefit
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in the appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <Disability>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will assure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user specified coverage terms, then this attribute will be ignored.
🔹 Table
Data Type | Values | Default |
---|---|---|
Integer | [0...19] | 0 |
If the specified account has been set up with multiple disability or debt
cancellation plans, then this attribute determines which plan number will be
used. If no table number is specified, the first table (table zero) will be
used. To find out the number of available plans, use the
<AhSetCount>
element in the
<inINPUT_TOOL>
response.
🟦 <Protection>
→<Life>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No life coverage |
The <Life>
element determines what type of life coverage is requested for the
loan. The element itself is empty, with all information needed for a life
coverage request being specified in the following attributes:
Attributes:
🔹Coverage
,🔹Covers
,🔹CovTerm
,🔹Dismemberment
,🔹Method
,🔹UseLevelRates
🔹 Coverage
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
If you wish to specify a coverage amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum coverage amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified coverage amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in the appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <life>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will assure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user specified coverage terms, then this attribute will be ignored.
🔹 Dismemberment
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the specified account has been set up to offer optional dismemberment coverage to be offered with life coverage (using an increased rate in the premium calculation), then this attribute determines whether or not this additional coverage will be provided.
🔹 Method
Data Type | Values | Default |
---|---|---|
Enum | default , net , gross | default |
If the specified account has been set up to offer single premium life coverage
by default, net or gross coverage, then this attribute can be used to specify
which type of coverage to compute with the loan. For all other accounts, the
default value of default
should be used (or simply do not specify the attribute
at all).
🔹 UseLevelRates
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the account specified has been set up to offer single premium credit life
using level rates instead of the normal decreasing rates, then set this
attribute’s value to true
. Otherwise, use the default value of false
.
🟥 <Term>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | [2...600] * |
The value of this element indicates the number of payments in the loan.
The term must be entered as a number of payments, not a duration of time.
Therefore, <Term>72</Term>
represents 72 payments, not 72 months (or years).
This term is intimately tied to the PPY
(# of payments per year)
attribute of the root element. If the value of the PPY
attribute
was 24
(semimonthly) for this loan, the 72 payments would mean that the
duration of the loan is three years, since years = number of payments / payments
per year = 72 / 24 = 3.
* In general, the term can be no greater than 50 years, so the maximum entry would be 50 *
PPY
. Weekly loans, however, are limited to 30 years, or 1,560 payments.
Attributes: None
🟦 <TILARESPA2015>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No TILA RESPA disclosures |
The presence or absence of this element determines whether or not the TILA RESPA data table is present in the output.
If this element is present in the loan request, then the SCEX will return data for the Integrated Mortgage Disclosures under the Real Estate Settlement Procedures Act (Regulation X) and the Truth In Lending Act (Regulation Z) rule, which is required as of August 1st, 2015. If this element is not present, then the TILA RESPA outputs will not be generated.
Attributes: None
🟦 <TotalDown>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
This optional element represents the total down payment that the borrower has applied to reduce the requested proceeds. It may consist of a cash down payment, net trade-in value, or rebate. You only need to specify a total down payment if the loan needs to disclose a total sale price. Typical examples of these loan types are auto and boat loans.
To generate a total down payment, please see the chapter detailing the SCEX’s Auto Prompts module.
Attributes: None
Skipped and Pickup Payment Loans - Response
Please see the Legend to understand the conventions used to document each element and attribute. Note that for responses, the XML elements are documented in the order that they appear in the response.
🟥 <outSKIPS_PICKUPS>
Element Type | Data Type |
---|---|
Parent | - |
This element is the root element of the response, and contains all of the relevant outputs.
Attributes:
🔹CountryName
🔹 CountryName
Data Type | Values | Default |
---|---|---|
Text | See table | United States of America |
If a valid Country
code was specified as an
attribute of the input module element, the full name of the country associated
with the specified Country code will be reported in this attribute.
🟥 <Results>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which describe the success or failure of the calculation, any warning or error messages, and the most important numerical results for the query.
<Results>
<Description>Successful Calculation</Description>
<Payment>1072.13</Payment>
<Number_of_Skips>3</Number_of_Skips>
<Payments_Specified>4</Payments_Specified>
</Results>
Attributes: None
🟥 <Results>
→<Description>
Element Type | Data Type |
---|---|
Data | Text |
If the calculation was completed successfully, then this element will contain
the value Successful Calculation
. Otherwise, this element will contain a
description of the problem encountered during the attempted computation.
Attributes: None
🟦 <Results>
→<XMLDetail>[]
Element Type | Data Type | Default |
---|---|---|
Data | Text | NULL |
The <XMLDetail>
elements are messages passed back to the calling application
which detail the status of the XML request. If the SCEX issues any warnings
regarding unrecognized elements or attributes, then each warning message will be
displayed in an <XMLDetail>
element.
Attributes: None
🟥 <Results>
→<Payment>
Element Type | Data Type |
---|---|
Data | Currency |
This element is the computed regular payment. This payment amount is used for all payments which are not irregular (a skipped or fixed payment).
Attributes: None
🟥 <Results>
→<Number_of_Skips>
Element Type | Data Type |
---|---|
Data | Integer |
The number of skipped payments occurring during the loan's scheduled payment stream is contained in this element. If no payments are skipped, then this element will hold a value of zero.
Attributes: None
🟥 <Results>
→<Payments_Specified>
Element Type | Data Type |
---|---|
Data | Integer |
The number of skipped and irregular payments during the loan's schedules
payment stream are contained in this element. Using this element and subtracting
the value held in <Number_of_Skips>
will produce the number
of non-skipped irregular payments.
Attributes: None
🟥 <FedBox>
Element Type | Data Type |
---|---|
Parent | - |
Some of the most important compliance related outputs are organized into the
<FedBox>
disclosures.
<FedBox>
<AmtFin>10000.00</AmtFin>
<FinChg>577.04</FinChg>
<TotPmts>10577.04</TotPmts>
<RegZAPR Type="Actuarial">9.999</RegZAPR>
</FedBox>
Attributes: None
🟥 <FedBox>
→<AmtFin>
Element Type | Data Type |
---|---|
Data | Currency |
The Regulation Z Amount Financed, which is defined as the amount of credit provided to you or on your behalf.
Attributes: None
🟥 <FedBox>
→<FinChg>
Element Type | Data Type |
---|---|
Data | Currency |
This element contains the Regulation Z Finance Charge, described as the dollar amount the credit extension will cost you.
Attributes: None
🟥 <FedBox>
→<TotPmts>
Element Type | Data Type |
---|---|
Data | Currency |
The amount which the borrower will have paid when the borrower has made all scheduled payments.
Attributes: None
🟦 <FedBox>
→<TotalSalePrice>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | <TotPmts> |
The sum of the total of payments plus the total down payment. Please note that
if no <TotalDown>
element was specified in the
request, then this element will not be present.
Attributes: None
🟥 <FedBox>
→<RegZAPR>
Element Type | Data Type |
---|---|
Data | Decimal |
The Regulation Z APR, which is the cost of the extension of credit expressed as a yearly rate. The Reg. Z APR element has a few attributes, described below:
Attributes:
🔹Max
,🔹MaxExceeded
,🔸Type
🔹 Max
Data Type | Default |
---|---|
Decimal | n/a |
This attribute specifies the maximum APR as configured in the account's setup files. If no maximum APR has been specified, then this attribute will not be present. The value of this attribute should be displayed as a percentage. As an example, for Max="36.000", you would disclose a maximum APR of 36.000%.
🔹 MaxExceeded
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
If a maximum APR is configured in the account's setup files, then the value of
this attribute indicates whether or not the current loan exceeds the maximum
allowed APR. As an example, if the maximum APR has been set to 36% and the APR
for the returned loan was 37.125%, the <RegZAPR>
element would be:
<RegZAPR Type="Actuarial" Max="36.000" MaxExceeded="true">37.125</RegZAPR>
🔸 Type
Values | |
---|---|
Enum | Actuarial , USRule , EU_APR , Canadian_APR , XIRR , XIRR360 , IRR , YieldIRR , Open_End |
This attribute specifies the method used to compute the reported APR: Actuarial or US Rule The method used is dictated by the setup files for the given account, but may be overridden in the XML input query.
Actuarial
- Governed by Appendix J to Regulation Z. Default US APR.USRule
- Used by large banks to mirror loan amortization.EU_APR
- Default European Union APR.Canadian_APR
- Default APR for Canada.XIRR
- Extended Internal Rate of Return (same as excel function).XIRR360
-XIRR
using a 360 divisor rather than a 365 divisor.YieldIRR
- Canadian mortgages may compute periodic interest using a fractional power of a periodic yield.Open_End
- Simply returns the interest rate.
🟦 <FedBox>
—><MAPR>
Element Type | Data Type |
---|---|
Data | Decimal |
If the military APR has been requested, then this element will be included in the output. The value of the element is the military APR, and the element has a few attributes, described below:
Attributes:
🔸Advance
,🔹Max
,🔹MaxExceeded
🔸 Advance
Data Type |
---|
Currency |
This attribute is the equivalent of the Amount Financed for the Military APR. Specifically, it is the principal balance less any MAPR fees, debt protection, etc.
🔹 Max
Data Type | Default |
---|---|
Decimal | 36.0 |
This attribute specifies the maximum Military APR as specified in the input XML
(see MAPR_Max
). If not specified, a default value
of 36% is assumed. The value of this attribute should be displayed as a
percentage. As an example, for Max="36.0"
, you would disclose a maximum
Military APR of 36.0%.
🔹 MaxExceeded
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
The value of this attribute 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>
element would be:
<MAPR Advance="1350.00" Max="36.000" MaxExceeded="true">37.125</MAPR>
🟦 <TILARESPA2015>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which are of interest to fulfilling the
2015 TILA RESPA rule. It will only be present if the
<TILARESPA2015>
element is present in the
request.
Sample TILARESPA2015 output:
<TILARESPA2015>
<TotalLoanCosts>0</TotalLoanCosts>
<CD_TotPmts>27311.07</CD_TotPmts>
<In5Years PaidTotal="27311" PaidPrincipal="25000"/>
<TIP>9.244</TIP>
<MaxPnIPmt Date="2012-11-01">1636.65</MaxPnIPmt>
<MinRate Idx="1">5.651</MinRate>
<MaxRate Idx="1">5.651</MaxRate>
<ProjectedPayments NumCols="3">
<PPCol Num="1" Title="Year 1">
<Years Start="1" End="1"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
<PPCol Num="2" Title="Year 2">
<Years Start="2" End="2"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
<PPCol Num="3" Title="Year 3">
<Years Start="3" End="3"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
</ProjectedPayments>
</TILARESPA2015>
Attributes: None
🟦 <TILARESPA2015>
→<LoanCost>[]
Element Type | Data Type |
---|---|
Data | Currency |
For every <Fee>
element present in the input which has
its IsLoanCost
attribute 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>
input element), there will be a
corresponding <LoanCost>
element. The value of this element will be the
numerical value of the fee, rounded to the nearest dollar.
🔹 In5Years
Data Type | Default |
---|---|
Currency | <LoanCost> |
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 attribute will be present and disclose the portion of this loan cost that is accrued during the first five years.
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
This attribute will hold the same value as the attribute of the same name for
the <Fee>
element. It is recommended that each fee
have a unique Name
for identification purposes.
🟥 <TILARESPA2015>
→<TotalLoanCosts>
Element Type | Data Type |
---|---|
Data | Currency |
This element holds the sum of all borrower paid loan costs. Since all
<LoanCost>
element values are rounded dollar amounts, the value of this
element will also be a rounded dollar amount.
Attributes: None
🟥 <TILARESPA2015>
→<CD_TotPmts>
Element Type | Data Type |
---|---|
Data | Currency |
This element holds 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 will be the numerical value of the sum.
Attributes: None
🟥 <TILARESPA2015>
→<In5Years>
Element Type | Data Type |
---|---|
Empty | - |
This element is empty, with all important values required for the new "In 5 Years" section returned in the following two attributes of this element.
Attributes:
🔸PaidPrincipal
,🔸PaidTotal
🔸 PaidPrincipal
Data Type |
---|
Currency |
This attribute 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.
🔸 PaidTotal
Data Type |
---|
Currency |
This attribute 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.
🟥 <TILARESPA2015>
→<TIP>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the total interest percentage, rounded to three or fewer decimal places, as required.
Attributes: None
🟥 <TILARESPA2015>
→<MaxPnIPmt>
Element Type | Data Type |
---|---|
Data | Currency |
The value of this element holds the maximum scheduled principal and interest payment during the term of the loan.
Attributes: 🔸
Date
🔸 Date
Data Type |
---|
Date |
This attribute contains 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. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🟥 <TILARESPA2015>
→<MinRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the minimum possible interest rate applied during the term of the loan.
Attributes: 🔸
Idx
🔸 Idx
Data Type |
---|
Integer |
This attribute contains the payment number for which the minimum rate is first applicable.
🟥 <TILARESPA2015>
→<MaxRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the maximum possible interest rate applied during the term of the loan.
Attributes: 🔸
Idx
🔸 Idx
Data Type |
---|
Integer |
This attribute contains the payment number for which the maximum rate is first applicable.
🟥 <TILARESPA2015>
→<ProjectedPayments>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which are of interest to filling the
Projected Payments table. It will only be present if the <TILARESPA2015>
element is present in the XML request for a supported loan type.
Attributes: 🔸
NumCols
🔸 NumCols
Data Type | Values |
---|---|
Integer | [1...4] |
This attribute will hold the number of columns which must be present in the Projected Payments table. It will be a numeric value from 1 to 4.
🟥 <ProjectedPayments>
→<PPCol>[]
Element Type | Data Type |
---|---|
Parent | - |
For every column required in the Projected Payments table, there will be an
associated <PPCol>
element. This element is a parent to child elements which
contain data associated with a single column of the table.
🔸 Num
Data Type | Values |
---|---|
Integer | [1...4] |
This attribute will hold the number of the column to which the following data applies.
🔸 Title
Data Type |
---|
Text |
The value of this attribute 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.
🟥 <ProjectedPayments>
→<PPCol>
→<Years>
Element Type | Data Type |
---|---|
Empty | - |
The attributes of this element hold the beginning and ending year numbers for which this column data applies. The element itself is empty.
🔸 End
Data Type |
---|
Integer |
The ending year associated with this column's data.
🔸 Start
Data Type |
---|
Integer |
The beginning year associated with this column's data.
🟥 <ProjectedPayments>
→<PPCol>
→<PnIPmt>
Element Type | Data Type |
---|---|
Empty | - |
This empty element has several attributes which describe the principal and interest payments associated with this column.
🔸 Balloon
Data Type | Values |
---|---|
Boolean | true , false |
If any of the payments associated with this column are balloon payments (e.g.
isolated payments that are more than twice the value of a regular periodic
payment), then the value of this attribute will be true
.
🔸 IntOnly
Data Type | Values |
---|---|
Enum | all , some , none |
none
- No payments associated with the column are Interest Onlysome
- Some, but not all, of the payments associated with the column are Interest Only.all
- All of the payments associated with the column are Interest Only.
Note that for the purposes of this attribute, 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.
🔸 Max
Data Type |
---|
Currency |
This attribute holds the maximum principal and interest payment for this column.
If this value is not the same as the value of the Min
attribute, then a range of rounded payments must be displayed. If the values are
the same, then only a single value needs to be disclosed.
🔸 Min
Data Type |
---|
Currency |
This attribute holds the minimum principal and interest payment for this column.
🟥 <ProjectedPayments>
→<PPCol>
→<MIPmt>
Element Type | Data Type |
---|---|
Data | Currency |
The value of this element 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.
Attributes: None
🟥 <ProjectedPayments>
→<PPCol>
→<TotalPmt>
Element Type | Data Type |
---|---|
Empty | - |
This empty element has two attributes which describe the estimated total payment or range of payments associated with this column. Note that this value does not include any estimated escrow, as the SCEX does not support escrow calculations. The calling application will need to increase these values by the estimated escrow amounts if any are present.
🔸 Max
Data Type |
---|
Currency |
This attribute holds the maximum estimated total payment for this column. If
this value is not the same as the value of the Min
attribute,
then a range of rounded payments must be displayed. If the values are the same,
then only a single value needs to be disclosed.
🔸 Min
Data Type |
---|
Currency |
This attribute holds the minimum estimated total payment for this column.
🟥 <Moneys>
Element Type | Data Type |
---|---|
Parent | - |
This element groups together those other major cash amounts not disclosed under
the <FedBox>
element, such as the principal balance, interest
change, fee amounts and protection premiums.
<Moneys>
<Principal>10120.00</Principal>
<Interest>1635.80</Interest>
<OddDaysPrepaid OddDayCount="15" DailyCost="2.77">41.55</OddDaysPrepaid>
<FinFees>120.00</FinFees>
<FinChgFees>91.55</FinChgFees>
<PocketFees>65.00</PocketFees>
<MAPRFees>201.55</MAPRFees>
<Protection Category="None" PerPmt="0.00" PerDay="0.00">0.00</Protection>
<Fee Name="FinFee">60.00</Fee>
<Fee Name="Prepaid Fee">50.00</Fee>
</Moneys>
Attributes: None
🟥 <Moneys>
→<Principal>
Element Type | Data Type |
---|---|
Data | Currency |
The principal balance is the amount on which interest is accrued. The principal balance consists of the amount requested by the borrower, any fees which are financed, as well as financed protection premiums.
Attributes: None
🟥 <Moneys>
→<Interest>
Element Type | Data Type |
---|---|
Data | Currency |
This element contains the total interest accrued during the term of the loan, assuming the borrower will make all scheduled payments.
Attributes: None
🟦 <Moneys>
→<ConstructInterest>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If the requested loan is a construction loan with a permanent loan attached and the account specified is set up to compute construction loans via the "Simple" method, then this element 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 <Interest>
element, and
both loans reflected in a single, combined amortization schedule.
If the requested loan was not a construction loan, or if construction loans have not been set up for the given account, then this element will not appear in the results.
Attributes: None
🟦 <Moneys>
→<OddDaysPrepaid>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element, if present, holds the total odd days prepaid finance charge. If no odd days prepaid fee was requested, then this element will not be present in the output.
Attributes:
🔹AddToPmt
,🔹DailyCost
,🔸OddDayCount
,🔹OddMonths
🔹 AddToPmt
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
If the odd days interest has been added to the first payment, this attribute
will be present in the output with a value of true
. If the odd days interest has
been treated as a prepaid finance charge, then this attribute will not be
present and a default value of false
should be assumed.
🔹 DailyCost
Data Type | Default |
---|---|
Currency | n/a |
If the odd days prepaid fee is computed using a rounded daily cost, then the value of this attribute will hold that value. If the odd days prepaid is not computed using a rounded daily cost, then this attribute will not be present.
🔸 OddDayCount
Data Type |
---|
Integer |
This attribute holds the number of odd days computed by the SCE for the requested loan.
🔹 OddMonths
Data Type | Default |
---|---|
Integer | n/a |
This attribute holds the number of odd months computed by the SCE for the
requested loan when using odd days accrual method 250
.
🟦 <Moneys>
→<MinInterestPmt>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | n/a |
The <MinInterestPmt>
element will only appear if the
Metavante
attribute has been set to true
,
and even then only under certain loan conditions. The element itself contains no
data, as all required data is found in the following two attributes:
🔸 Index
Data Type |
---|
Integer |
The Index
attribute specifies the payment number in the payment stream at which
the minimum interest payment is achieved.
🔸 Pmt
Data Type |
---|
Currency |
The interest payment amount for the given Index
.
🟦 <Moneys>
→<MaxInterestPmt>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | n/a |
The <MaxInterestPmt>
element will only appear if the
Metavante
attribute has been set to true
,
and even then only under certain loan conditions. The element itself contains no
data, as all required data is found in the following two attributes:
🔸 Index
Data Type |
---|
Integer |
The Index
attribute specifies the payment number in the payment stream at which
the maximum interest payment is achieved.
🔸 Pmt
Data Type |
---|
Currency |
The interest payment amount for the given Index
.
🟦 <Moneys>
→<FinFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element contains the sum of all financed fees requested for the loan. If no financed fees were requested, then this element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<FinChgFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element contains the sum of all APR affecting fees (those fees which are
added to the <FinChg>
) requested for the loan. If no APR affecting
fees were requested, then this element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<PocketFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element 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 element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<MAPRFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element 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.
Attributes: None
🟦 <Moneys>
→<Protection>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
Contains the total cost of all protection plans included with the computed loan.
For the individual plan costs, see the <ProtectionInfo>
elements described
below. The attributes of this element are as follows:
Attributes:
🔸Category
,🔹IsDp
,🔹Mandatory
,🔸PerDay
,🔸PerPmt
🔸 Category
Data Type | Values |
---|---|
Enum | See below |
This attribute specifies the category under which the computed loan protection falls. The possible values for this attribute are:
None
- No protection catetory has been identified.SP
- Single Premium protection financed at loan closing.MOB
- Monthly outstanding balance (paid on Payments).TrueMOB
- Premiums paid monthly on a date specified in the setup files.PaidSP
- Single premium protection paid at closing.ConstantMOB
- CMOB is a product paid with payments and a constant amount.AddToPmtMOB
- MOB insurance added to a constant P&I payment, resulting in variable payments.
🔹 IsDp
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
This attribute indicates if the specified account’s protection is set up as debt
protection. If this attribute 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).
🔹 Mandatory
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
This attribute should only appear in the response if the value of the attribute
is true
. If this attribute does not appear in the output, then the value of
this attribute should default to false
. If the value of the Mandatory
attribute is true
, then the total premium/fee amount for all insurance/debt
protection products has been treated as a part of the Regulation Z Finance
Charge, and hence will affect the Reg. Z APR.
🔸 PerDay
Data Type |
---|
Currency |
Contains the cost of all loan protection products expressed as dollars per day.
🔸 PerPmt
Data Type |
---|
Currency |
Contains the cost of all loan protection products expressed as dollars per payment.
🟦 <Moneys>
→<MinIntChgAdj>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a minimum interest charge is configured in the account’s setup files and the final payment was adjusted to meet this minimum interest charge, then this element will be returned in the response and will contain the value of the minimum finance charge adjustment.
Attributes: None
🟦 <Moneys>
→<MinFinChgAdj>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a minimum finance charge is configured in the account’s setup files and the final payment was adjusted to meet this minimum finance charge, then this element will be returned in the response and will contain the value of the minimum finance charge adjustment.
Attributes: None
🟦 <Moneys>
→<Fee>[]
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
For each non-zero fee requested in the loan calculation, there will be a <Fee>
element containing the computed fee amount.
Attributes:
🔹Name
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
Contains the value of the Name attribute of the corresponding
<Fee>
element from the request. If no such attribute is
present in the <Fee>
element, then none will be present
in the response element.
🟥 <Accrual>
Element Type | Data Type |
---|---|
Parent | - |
This element groups together interest accrual information, such as the accrual method used, days to the first payment, and the loan’s maturity date.
<Accrual>
<Method>Actual/365 US Rule</Method>
<Days1Pmt DayCount="Actual">74</Days1Pmt>
<Maturity>2015-07-01</Maturity>
</Accrual>
Attributes: None
🟥 <Accrual>
→<Method>
Element Type | Data Type |
---|---|
Data | Text |
The <Method>
element contains a textual description of the interest accrual
method used to compute the loan (e.g. "Unit Period 365 Simple").
Attributes: None
🟥 <Accrual>
→<Days1Pmt>
Element Type | Data Type |
---|---|
Data | Integer |
This element contains the number of days to the first payment, computed by one of two methods as specified in this element’s sole attribute.
Attributes:
🔸DayCount
🔸 DayCount
Data Type | Values |
---|---|
Enum | Actual , True360 |
Actual
- The actual number of days between these two dates are used.31
would be the day count for the 2024-01-01 to 2024-02-01.True360
- All months have 30 days.30
would be the day count for 2024-01-01 to 2024-02-01.
🟥 <Accrual>
→<Maturity>
(YYYY-MM-DD)
Element Type | Data Type |
---|---|
Data | Date |
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. Hence, a maturity date of February 15, 2020 would be specified as
<Maturity>2020-02-15</Maturity>
.
Attributes: None
🟥 <PmtStream>[]
Element Type | Data Type |
---|---|
Empty | - |
The <PmtStream>
element(s) describe the scheduled stream of payments for the
computed loan in the order paid. Instead of disclosing each and every payment
individually (which can be done with the <AmTable>
element), the
payment streams group together consecutive equal payments to produce a
compressed output view.
The following code translates to "Twelve consecutive payments of $879.31 computed at 10.000% begin on January 22nd, 2024".
<PmtStream Term="12" Pmt="879.31" Rate="10.000" Begin="2024-01-22"/>
Each element describes a single stream of equal payments, using the following attributes to define the important properties of each resulting payment stream:
🔸 Begin
Data Type |
---|
Date |
This attribute contains 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. In the example above, the first payment stream
is scheduled to begin on September 18, 2005. Hence, the Begin attribute for the
first payment stream element would be specified as Begin="2005-09-18"
.
🔸 Pmt
Data Type |
---|
Currency |
The Pmt
attribute contains the computed payment amount for this payment stream.
For the sample payment stream above, the payment amount is 879.31.
🔸 Rate
Data Type |
---|
Decimal |
Contains the interest rate used for the duration of this payment stream. Usually, the interest rate will remain fixed for the duration of the loan unless you are computing an adjustable rate loan or you are computing a LaserPro construction loan with permanent loan attached.
🔸 Term
Data Type |
---|
Integer |
The Term
attribute holds the number of contiguous payments that make up the
given payment stream. In the example payment stream above, the term for the
stream is 12.
🟦 <ProtectionInfo>[]
Element Type | Data Type |
---|---|
Parent | - |
These elements (there may be more than one if more than one type of protection was requested) contain information related to the various protection products requested on the given loan. Each element group provides complete results for each requested product (decreasing life, level life, disability/debt cancellation, involuntary unemployment, or personal property).
🔸 Formula
Data Type | Values |
---|---|
Enum | see Protection Formulas |
The Formula
attribute contains an abbreviated description of the formula used
to compute the desired protection product. The formula codes are described
here.
🔸 Product
Data Type | Values |
---|---|
Enum | Life , Level , Disability , Unemployment , Property |
This attribute informs the calling application to which type of protection product this element refers: decreasing life, level life, disability/debt cancellation, involuntary unemployment or personal property.
🔹 RateType
Data Type | Values |
---|---|
Enum | Fixed , Variable |
Fixed
- Protection rate stays constant during the calculations.Variable
- Protection rate changed from Joint to Single as the loan evolves.
🟥 <ProtectionInfo>
→<CalcResult>
Element Type | Data Type |
---|---|
Data | Text |
This element 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 child elements
of <ProtectionInfo>
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 child elements of
<ProtectionInfo>
, as the product was not computed.
<CalcResult>Valid Calculation</CalcResult>
Attributes: None
🟥 <ProtectionInfo>
→<Cost>
Element Type | Data Type |
---|---|
Empty | - |
Attributes of this empty element 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.
The only time there will be two <Cost>
elements to parse is when the account
has been set up to use Plateau’s Uniguard product, and the user has requested
joint coverage. If this is the case, then two <Cost>
elements are provided to
disclose two premiums instead of a single aggregate joint premium.
<Cost Premium="827.26" PerPmt="19.28" PerDay="0.63" Factor="1.0154"/>
🔸 Factor
Data Type |
---|
Decimal |
The rate factor used to compute the premium for the requested protection product.
🔸 PerDay
Data Type |
---|
Currency |
The daily cost of coverage, expressed in dollars.
🔸 PerPmt
Data Type |
---|
Currency |
The cost of coverage expressed as dollars per payment.
🔸 Premium
Data Type |
---|
Currency |
The total cost for this protection over the term of the loan.
🟥 <ProtectionInfo>
→<Coverage>
Element Type | Data Type |
---|---|
Empty | - |
The aggregate coverage amount and note are provided in the following attributes of this empty element:
<Coverage Amount="75000.00" Note="Partial Coverage of $75,000"/>
🔸 Amount
Data Type |
---|
Currency |
This attribute contains the aggregate coverage amount for this protection product.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🟥 <ProtectionInfo>
→<Benefit>
Element Type | Data Type |
---|---|
Empty | - |
This empty element will only show up for the disability and involuntary unemployment products.
<Benefit Amount="1000.00" Note="Partial Benefit of $1,000"/>
🔸 Amount
Data Type |
---|
Currency |
Attribute which contains the monthly benefit amount for this protection product.
🔸 Note
Data Type |
---|
Text |
This Note
will describe 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.
🔹 Periodic
Data Type | Default |
---|---|
Currency | n/a |
If the account has been configured to disclose periodic benefits (as opposed to
monthly benefit amounts, which are returned in the Amount
attribute described above), and if the specified payment frequency is other than
monthly, then this attribute will be present and will hold the periodic benefit
amount.
🟦 <ProtectionInfo>
→<CovTerm>
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the term of coverage for the requested product. If the request has specified the coverage term, then this element will be populated with that term.
<CovTerm InMonths="75" InPmts="75" Maturity="2018-09-22" Note="Truncated: Keep Benefit"/>
🔹 InDays
Data Type | Default |
---|---|
Integer | n/a |
Attribute which expresses the term of coverage in days. This attribute will only be present for the level life product, and even then only if needed (for example, when covering single payment notes).
🔸 InMonths
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of months.
🔸 InPmts
Data Type |
---|
Integer |
Contains the number of payments covered.
🔸 Maturity
(YYYY-MM-DD)
Data Type |
---|
Date |
This attribute contains the maturity date for the requested coverage. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🟦 <ProtectionInfo>
→<Borrower>[]
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the term of
coverage of a specified borrower, for the requested product. Note that this
element will only be present if the input XML request has specified
ShowBorrowerInfo
= "true"
, and a valid
birthdate was provided. The following attributes are defined for this purpose:
Attributes:
🔸AgeAtIssue
,🔸AgeAtMaturity
,🔸Birthday
,🔸Maturity
,🔸Months
,🔸Note
,🔸Pmts
🔸 AgeAtIssue
Data Type |
---|
Special - see below |
If coverage is written on this borrower, then the value of this attribute 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.
🔸 AgeAtMaturity
Data Type |
---|
Special - see below |
If coverage is written on this borrower, then the value of this attribute 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.
🔸 Birthday
Data Type |
---|
Date |
This attribute contains the birthday associated with the borrower, as specified in the request. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🔸 Maturity
Data Type |
---|
Date |
The value of this attribute contains the coverage maturity date for this particular borrower.
🔸 Months
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of months.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🔸 Pmts
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of payments.
🟦 <ProtectionInfo>
→<Caps>
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the maximum
terms, amounts, and ages associated with the requested product. This element
will only be present if the ShowCaps
attribute
of the <Protection>
element is set to true
.
<Caps Cov="75000" Ben="1000" Term="84" InceptAge="65" AttainAge="66"/>
Attributes:
🔸AttainAge
,🔸Ben
,🔸Cov
,🔸InceptAge
,🔸Term
🔸 AttainAge
Data Type |
---|
Integer |
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.
🔸 Ben
Data Type |
---|
Currency |
Contains the maximum monthly benefit amount, expressed in dollars. If no cap is present or applicable, then a value of zero is returned.
🔸 Cov
Data Type |
---|
Currency |
Contains the maximum aggregate coverage amount, expressed in dollars. If no cap is present or applicable, then a value of zero is returned.
🔸 InceptAge
Data Type |
---|
Integer |
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.
🔸 Term
Data Type |
---|
Integer |
Contains the maximum coverage term, expressed in months. If no cap is present or applicable, then a value of zero is returned.
🟦 <AmTable>
Element Type | Data Type |
---|---|
Parent | - |
This element (if present) contains child elements which describe the loan's
amortization information. This element (and all of its child elements) will only
be present if the HideAmort
property of the
root element of the input query is set to false
.
<AmTable>
Attributes will only occur as feedback data for Canadian APR's.
🔹 AvgBal
Data Type | Default |
---|---|
Currency | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute is the average balance of the loan used in the Canadian APR calculation.
🔹 Months
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🔹 OddDays
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🔹 Weeks
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🟦 <AmTable>
→<GrandTotals>[]
Element Type | Data Type |
---|---|
Empty | - |
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 the following attributes:
<GrandTotals PmtTot="10551.72" IntTot="551.68" PrinTot="10000.04"/>
🔹 AHTot
Data Type | Default |
---|---|
Currency | 0 |
The AHTot
attribute 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 over the duration
of the loan.
🔹 CLTot
Data Type | Default |
---|---|
Currency | 0 |
The CLTot
attribute 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.
🔸 IntTot
Data Type |
---|
Currency |
Contains the sum of all interest attributes in the AmLine
elements.
This amount will be different from the <Interest>
element if
there is a nonzero EndBal
for the final line of
amortization. The two will differ by this non-zero EndBal
.
🔸 PmtTot
Data Type |
---|
Currency |
Contains the total of payments scheduled for the computed loan.
🔸 PrinTot
Data Type |
---|
Currency |
Like IntTot
above, this attribute contains the total
amount paid to principal during the loan term, assuming all payments are made as
scheduled.
🟦 <AmTable>
→<SubTotals>[]
Element Type | Data Type |
---|---|
Empty | - |
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 <SubTotals>
element present. The element itself is empty, as all the
interesting categories are found in the following attributes:
<SubTotals Year="2024" Start="1" Events="12" PmtSub="10551.72" IntSub="551.68" PrinSub="10000.04"/>
Attributes:
🔹AHSub
,🔹CLSub
,🔸Events
,🔸IntSub
,🔸PmtSub
,🔸PrinSub
,🔸Start
,🔸Year
🔹 AHSub
Data Type | Default |
---|---|
Currency | 0 |
The AHSub
attribute 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
.
🔹 CLSub
Data Type | Default |
---|---|
Currency | 0 |
The CLSub
attribute 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
.
🔸 Events
Data Type |
---|
Integer |
This attribute defines the number of amortization events (contained in
<AmLine>
elements which are defined below) which belong to this
calendar Year
.
🔸 IntSub
Data Type |
---|
Currency |
Holds the total amount paid to interest over the Year
in
question, assuming all payments are made as scheduled.
🔸 PmtSub
Data Type |
---|
Currency |
Contains the total of payments scheduled for the Year
in
question.
🔸 PrinSub
Data Type |
---|
Currency |
Like IntSub
above, this attribute contains the total
amount paid to principal during the Year
in question,
assuming all payments are made as scheduled.
🔸 Start
Data Type |
---|
Integer |
This attribute defines the first amortization event which falls in the specified
calendar Year
. To find the <AmLine>
element
which corresponds to this value, match the Idx attribute of the
<AmLine>
element with the integer value reported by this attribute.
🔸 Year
Data Type |
---|
Integer |
The given calendar year for which the subtotal data is applicable.
🟥 <AmTable>
→<AmLine>[]
Element Type | Data Type |
---|---|
Empty | - |
There is one <AmLine>
element 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.) However, some loan protection methods (TruStage's monthly
renewable product, to be exact) have amortization events which correspond to
loan protection premiums being added to the loan balance on specific dates.
<AmLine Idx="1" Date="2024-01-01" BegBal="10000.00" Pmt="879.31" Int="84.93" Prin="794.38" EndBal="9205.62"/>
As with the <GrandTotals>
and <SubTotals>
elements, this element is empty and contains all of the useful information for a
given point in the amortization of a loan in the following attributes.
Attributes:
🔹AH
,🔸BegBal
,🔹CL
,🔸Date
,🔸EndBal
,🔸Idx
,🔸Int
,🔸Pmt
,🔸Prin
,🔹UnpaidInt
🔹 AH
Data Type | Default |
---|---|
Currency | 0 |
The AH
attribute 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.
🔸 BegBal
Data Type |
---|
Currency |
The principal balance before the amortization event occurs.
🔹 CL
Data Type | Default |
---|---|
Currency | 0 |
The CL
attribute 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.
🔸 Date
Data Type |
---|
Currency |
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.
🔸 EndBal
Data Type |
---|
Currency |
The principal balance amount, after the amortization event has taken place.
🔸 Idx
Data Type |
---|
Integer |
The index of the amortization event, which is either the payment number, or zero. A value of zero designates a protection premium that was charged on a date other than a payment date. (Occurs with protection category "TrueMOB").
🔸 Int
Data Type |
---|
Currency |
The amount of the payment which goes to pay interest.
🔸 Pmt
Data Type |
---|
Currency |
The amount of the payment (or zero if the event is a "TrueMOB" protection premium).
🔸 Prin
The amount of the payment which goes to reduce the principal balance.
🔹 UnpaidInt
Data Type | Default |
---|---|
Currency or Decimal | 0 |
This attribute 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 places. If rounded, then the unpaid interest is displayed to two (2) decimal places.
🟦 <Metavante>
Element Type | Data Type |
---|---|
Empty | - |
This element will only be present if the
Metavante
attribute of the root element is
set to true
. The element itself is empty, as all of the useful information is
in the following attributes:
Attributes:
🔸FormsTerm
,🔸HostTerm
🔸 FormsTerm
Data Type |
---|
Integer |
The number of months in the loan, as computed using the Metavante FORMS method.
🔸 HostTerm
Data Type |
---|
Integer |
The number of months in the loan, as computed using the Metavante HOST method.
Adjustable Rate Mortgage
An adjustable rate mortgage is a loan whose interest rate varies during the repayment term. These types of loans are most often found in the real estate market, hence their name. In this chapter, we will refer to adjustable rate mortgages as ARMs.
Sample Request
The example below starts off with a teaser rate of 4% for 12 months. After the teaser term expires, the loan quotation will move the rate towards the sum of the index + margin (10%) as constrained by the specified annual rate increase of 2% per year.
<inARM AccrualCode="320">
<!-- Loan Terms -->
<LoanDate>2024-12-01</LoanDate>
<PmtDate>2025-01-01</PmtDate>
<Proceeds>500000.00</Proceeds>
<Term>60</Term>
<!-- Basic ARM Prompts -->
<TeaserRate>4.000</TeaserRate>
<TeaserTerm>12</TeaserTerm>
<Index>6.00</Index>
<Margin>4.00</Margin>
<!-- Rate Evolution -->
<TermStep>12</TermStep>
<AnnualRateIncrease>2.00</AnnualRateIncrease>
<!-- Ceiling and Floor Rates -->
<MinRate>4.00</MinRate>
<MaxRate>12.00</MaxRate>
</inARM>
Sample Response
The following response is returned from the SCEX when provided with the sample request above.
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE outARM SYSTEM "outARM.dtd">
<outARM>
<Results>
<Description>Successful Calculation</Description>
<Number_of_Groups>4</Number_of_Groups>
</Results>
<FedBox>
<AmtFin>500000.00</AmtFin>
<FinChg>85428.16</FinChg>
<TotPmts>585428.16</TotPmts>
<RegZAPR Type="Actuarial">6.270</RegZAPR>
</FedBox>
<Moneys>
<Principal>500000.00</Principal>
<Interest>85428.16</Interest>
<Protection Category="None" PerPmt="0.00" PerDay="0.00">0.00</Protection>
</Moneys>
<Accrual>
<Method>Actual/365 US Rule</Method>
<Days1Pmt DayCount="Actual">31</Days1Pmt>
<Maturity>2029-12-01</Maturity>
</Accrual>
<PmtStream Term="12" Pmt="9208.40" Rate="4.000" Begin="2025-01-01"/>
<PmtStream Term="12" Pmt="9577.98" Rate="6.000" Begin="2026-01-01"/>
<PmtStream Term="12" Pmt="9866.06" Rate="8.000" Begin="2027-01-01"/>
<PmtStream Term="24" Pmt="10066.62" Rate="10.000" Begin="2028-01-01"/>
<AmTable>
<GrandTotals PmtTot="585428.16" IntTot="85428.11" PrinTot="500000.05"/>
<SubTotals Year="2025" Start="1" Events="12" PmtSub="110500.80" IntSub="18319.66" PrinSub="92181.14"/>
<SubTotals Year="2026" Start="13" Events="12" PmtSub="114935.76" IntSub="21935.29" PrinSub="93000.47"/>
<SubTotals Year="2027" Start="25" Events="12" PmtSub="118392.72" IntSub="21685.11" PrinSub="96707.61"/>
<SubTotals Year="2028" Start="37" Events="12" PmtSub="120799.44" IntSub="17197.99" PrinSub="103601.45"/>
<SubTotals Year="2029" Start="49" Events="12" PmtSub="120799.44" IntSub="6290.06" PrinSub="114509.38"/>
<AmLine Idx="1" Date="2025-01-01" BegBal="500000.00" Pmt="9208.40" Int="1698.63" Prin="7509.77" EndBal="492490.23"/>
<AmLine Idx="2" Date="2025-02-01" BegBal="492490.23" Pmt="9208.40" Int="1673.12" Prin="7535.28" EndBal="484954.95"/>
<AmLine Idx="3" Date="2025-03-01" BegBal="484954.95" Pmt="9208.40" Int="1488.08" Prin="7720.32" EndBal="477234.63"/>
<AmLine Idx="4" Date="2025-04-01" BegBal="477234.63" Pmt="9208.40" Int="1621.29" Prin="7587.11" EndBal="469647.52"/>
<AmLine Idx="5" Date="2025-05-01" BegBal="469647.52" Pmt="9208.40" Int="1544.05" Prin="7664.35" EndBal="461983.17"/>
<AmLine Idx="6" Date="2025-06-01" BegBal="461983.17" Pmt="9208.40" Int="1569.48" Prin="7638.92" EndBal="454344.25"/>
<AmLine Idx="7" Date="2025-07-01" BegBal="454344.25" Pmt="9208.40" Int="1493.73" Prin="7714.67" EndBal="446629.58"/>
<AmLine Idx="8" Date="2025-08-01" BegBal="446629.58" Pmt="9208.40" Int="1517.32" Prin="7691.08" EndBal="438938.50"/>
<AmLine Idx="9" Date="2025-09-01" BegBal="438938.50" Pmt="9208.40" Int="1491.19" Prin="7717.21" EndBal="431221.29"/>
<AmLine Idx="10" Date="2025-10-01" BegBal="431221.29" Pmt="9208.40" Int="1417.71" Prin="7790.69" EndBal="423430.60"/>
<AmLine Idx="11" Date="2025-11-01" BegBal="423430.60" Pmt="9208.40" Int="1438.50" Prin="7769.90" EndBal="415660.70"/>
<AmLine Idx="12" Date="2025-12-01" BegBal="415660.70" Pmt="9208.40" Int="1366.56" Prin="7841.84" EndBal="407818.86"/>
<AmLine Idx="13" Date="2026-01-01" BegBal="407818.86" Pmt="9577.98" Int="2078.20" Prin="7499.78" EndBal="400319.08"/>
<AmLine Idx="14" Date="2026-02-01" BegBal="400319.08" Pmt="9577.98" Int="2039.98" Prin="7538.00" EndBal="392781.08"/>
<AmLine Idx="15" Date="2026-03-01" BegBal="392781.08" Pmt="9577.98" Int="1807.87" Prin="7770.11" EndBal="385010.97"/>
<AmLine Idx="16" Date="2026-04-01" BegBal="385010.97" Pmt="9577.98" Int="1961.97" Prin="7616.01" EndBal="377394.96"/>
<AmLine Idx="17" Date="2026-05-01" BegBal="377394.96" Pmt="9577.98" Int="1861.13" Prin="7716.85" EndBal="369678.11"/>
<AmLine Idx="18" Date="2026-06-01" BegBal="369678.11" Pmt="9577.98" Int="1883.84" Prin="7694.14" EndBal="361983.97"/>
<AmLine Idx="19" Date="2026-07-01" BegBal="361983.97" Pmt="9577.98" Int="1785.13" Prin="7792.85" EndBal="354191.12"/>
<AmLine Idx="20" Date="2026-08-01" BegBal="354191.12" Pmt="9577.98" Int="1804.92" Prin="7773.06" EndBal="346418.06"/>
<AmLine Idx="21" Date="2026-09-01" BegBal="346418.06" Pmt="9577.98" Int="1765.31" Prin="7812.67" EndBal="338605.39"/>
<AmLine Idx="22" Date="2026-10-01" BegBal="338605.39" Pmt="9577.98" Int="1669.83" Prin="7908.15" EndBal="330697.24"/>
<AmLine Idx="23" Date="2026-11-01" BegBal="330697.24" Pmt="9577.98" Int="1685.20" Prin="7892.78" EndBal="322804.46"/>
<AmLine Idx="24" Date="2026-12-01" BegBal="322804.46" Pmt="9577.98" Int="1591.91" Prin="7986.07" EndBal="314818.39"/>
<AmLine Idx="25" Date="2027-01-01" BegBal="314818.39" Pmt="9866.06" Int="2139.04" Prin="7727.02" EndBal="307091.37"/>
<AmLine Idx="26" Date="2027-02-01" BegBal="307091.37" Pmt="9866.06" Int="2086.54" Prin="7779.52" EndBal="299311.85"/>
<AmLine Idx="27" Date="2027-03-01" BegBal="299311.85" Pmt="9866.06" Int="1836.87" Prin="8029.19" EndBal="291282.66"/>
<AmLine Idx="28" Date="2027-04-01" BegBal="291282.66" Pmt="9866.06" Int="1979.13" Prin="7886.93" EndBal="283395.73"/>
<AmLine Idx="29" Date="2027-05-01" BegBal="283395.73" Pmt="9866.06" Int="1863.42" Prin="8002.64" EndBal="275393.09"/>
<AmLine Idx="30" Date="2027-06-01" BegBal="275393.09" Pmt="9866.06" Int="1871.16" Prin="7994.90" EndBal="267398.19"/>
<AmLine Idx="31" Date="2027-07-01" BegBal="267398.19" Pmt="9866.06" Int="1758.23" Prin="8107.83" EndBal="259290.36"/>
<AmLine Idx="32" Date="2027-08-01" BegBal="259290.36" Pmt="9866.06" Int="1761.75" Prin="8104.31" EndBal="251186.05"/>
<AmLine Idx="33" Date="2027-09-01" BegBal="251186.05" Pmt="9866.06" Int="1706.69" Prin="8159.37" EndBal="243026.68"/>
<AmLine Idx="34" Date="2027-10-01" BegBal="243026.68" Pmt="9866.06" Int="1597.98" Prin="8268.08" EndBal="234758.60"/>
<AmLine Idx="35" Date="2027-11-01" BegBal="234758.60" Pmt="9866.06" Int="1595.07" Prin="8270.99" EndBal="226487.61"/>
<AmLine Idx="36" Date="2027-12-01" BegBal="226487.61" Pmt="9866.06" Int="1489.23" Prin="8376.83" EndBal="218110.78"/>
<AmLine Idx="37" Date="2028-01-01" BegBal="218110.78" Pmt="10066.62" Int="1852.45" Prin="8214.17" EndBal="209896.61"/>
<AmLine Idx="38" Date="2028-02-01" BegBal="209896.61" Pmt="10066.62" Int="1782.68" Prin="8283.94" EndBal="201612.67"/>
<AmLine Idx="39" Date="2028-03-01" BegBal="201612.67" Pmt="10066.62" Int="1601.85" Prin="8464.77" EndBal="193147.90"/>
<AmLine Idx="40" Date="2028-04-01" BegBal="193147.90" Pmt="10066.62" Int="1640.43" Prin="8426.19" EndBal="184721.71"/>
<AmLine Idx="41" Date="2028-05-01" BegBal="184721.71" Pmt="10066.62" Int="1518.26" Prin="8548.36" EndBal="176173.35"/>
<AmLine Idx="42" Date="2028-06-01" BegBal="176173.35" Pmt="10066.62" Int="1496.27" Prin="8570.35" EndBal="167603.00"/>
<AmLine Idx="43" Date="2028-07-01" BegBal="167603.00" Pmt="10066.62" Int="1377.56" Prin="8689.06" EndBal="158913.94"/>
<AmLine Idx="44" Date="2028-08-01" BegBal="158913.94" Pmt="10066.62" Int="1349.68" Prin="8716.94" EndBal="150197.00"/>
<AmLine Idx="45" Date="2028-09-01" BegBal="150197.00" Pmt="10066.62" Int="1275.65" Prin="8790.97" EndBal="141406.03"/>
<AmLine Idx="46" Date="2028-10-01" BegBal="141406.03" Pmt="10066.62" Int="1162.24" Prin="8904.38" EndBal="132501.65"/>
<AmLine Idx="47" Date="2028-11-01" BegBal="132501.65" Pmt="10066.62" Int="1125.36" Prin="8941.26" EndBal="123560.39"/>
<AmLine Idx="48" Date="2028-12-01" BegBal="123560.39" Pmt="10066.62" Int="1015.56" Prin="9051.06" EndBal="114509.33"/>
<AmLine Idx="49" Date="2029-01-01" BegBal="114509.33" Pmt="10066.62" Int="972.54" Prin="9094.08" EndBal="105415.25"/>
<AmLine Idx="50" Date="2029-02-01" BegBal="105415.25" Pmt="10066.62" Int="895.31" Prin="9171.31" EndBal="96243.94"/>
<AmLine Idx="51" Date="2029-03-01" BegBal="96243.94" Pmt="10066.62" Int="738.31" Prin="9328.31" EndBal="86915.63"/>
<AmLine Idx="52" Date="2029-04-01" BegBal="86915.63" Pmt="10066.62" Int="738.19" Prin="9328.43" EndBal="77587.20"/>
<AmLine Idx="53" Date="2029-05-01" BegBal="77587.20" Pmt="10066.62" Int="637.70" Prin="9428.92" EndBal="68158.28"/>
<AmLine Idx="54" Date="2029-06-01" BegBal="68158.28" Pmt="10066.62" Int="578.88" Prin="9487.74" EndBal="58670.54"/>
<AmLine Idx="55" Date="2029-07-01" BegBal="58670.54" Pmt="10066.62" Int="482.22" Prin="9584.40" EndBal="49086.14"/>
<AmLine Idx="56" Date="2029-08-01" BegBal="49086.14" Pmt="10066.62" Int="416.90" Prin="9649.72" EndBal="39436.42"/>
<AmLine Idx="57" Date="2029-09-01" BegBal="39436.42" Pmt="10066.62" Int="334.94" Prin="9731.68" EndBal="29704.74"/>
<AmLine Idx="58" Date="2029-10-01" BegBal="29704.74" Pmt="10066.62" Int="244.15" Prin="9822.47" EndBal="19882.27"/>
<AmLine Idx="59" Date="2029-11-01" BegBal="19882.27" Pmt="10066.62" Int="168.86" Prin="9897.76" EndBal="9984.51"/>
<AmLine Idx="60" Date="2029-12-01" BegBal="9984.51" Pmt="10066.62" Int="82.06" Prin="9984.56" EndBal="-0.05"/>
</AmTable>
</outARM>
Adjustable Rate Mortgage - Request
Please see the Legend to understand the conventions used to document each element and attribute. Note that for requests, the XML elements are documented in alphabetical order by parent element.
🟥 <inARM>
Element Type | Data Type |
---|---|
Parent | - |
This element is the root element for the request. It is a parent element that has no data, but does have several attributes that offer a wide variety of adjustments.
Attributes:
🔹Account
,🔹AccrualCode
,🔹AprType
,🔹CalcType
,🔹Country
,🔹DataDirPath
,🔹ForceReload
,🔹HideAmort
,🔹Lastday
,🔹MAPR_Max
,🔹Metavante
,🔹OddFinal
,🔹PmtDollarRound
,🔹PmtRound
,🔹PPY
,🔹UseMAPR
,🔹YieldPPY
🔹 Account
Data Type | Values | Default |
---|---|---|
Integer | [1...9999] | 1 |
This attribute specifies which account should be used to compute the requested
loan. Each account is numbered from 1 to 9,999, and each account corresponds to
a set of setup files which define numerous settings which may affect the loan
calculation, such as the accrual method, insurance methods and rates, etc. If
this attribute is not specified, a default value of 1
will be used.
🔹 AccrualCode
Data Type | Values | Default |
---|---|---|
Enum | See table | default |
This property allows an accrual method to be used other than the accrual method dictated by the setup file for the given account. If no accrual code attribute is specified, the method defined in the setup file will be used. The Accrual Code Table lists all valid accrual codes available. Note that for the split rate accrual codes (i.e. those above 500), the split rate tiers must be defined in the setup file.
🔹 AprType
Data Type | Values | Default |
---|---|---|
Enum | See below | default |
This attribute allows the calling application to specify an APR calculation method which will override the default value found in the setup file for the given account. If this attribute is set to a valid value, then the specified method will be used to compute the APR for this loan calculation.
If the Country
attribute has been set by the calling
application and this attribute is not set, then the APR method used will be
determined by the specified country. For the United States of America, the
default APR method is actuarial
. For a country in the European Union, the
default value is eu
(European Union APR). For Canada, the default APR method
is ca
(Canadian APR).
default
- Use setup file value.actuarial
- Appendix J Actuarial APRusrule
- US Rule APReu
- European Union APRca
- Canadian APRxirr
- Extended Internal Rate of Return (same as excel function)xirr360
- XIRR using a 360 divisor rather than a 365 divisorirr
- Simple Internal Rate of Return (same as excel function)
If this attribute is not specified and the Country
attribute
is not specified, then the value of default
will be used which informs the SCE
to use the APR method defined in the setup file for the specified
Account
.
🔹 CalcType
Data Type | Values | Default |
---|---|---|
Enum | Payments , Balloon | Payments |
This attribute specifies how the payment stream is adjusted for rate changes
during the term of the loan. If this attribute holds a value of Payments
, then
the disclosed payment will change with each rate change. A value of Balloon
indicates that the payment computed for the teaser term will be used for all but
the last payment, with the final payment equal to the amount needed to pay off
the loan.
🔹 Country
Data Type | Values | Default |
---|---|---|
Alpha-2 or Numeric-3 code | See table | US |
This attribute allows the calling application to specify a two (2) character or
three (3) digit country code. If none is provided, then a default value of US
will be used. Please see the Country Codes Table for the
list of supported countries and their associated codes.
Currently, the country code is used to determine the default value of the
AprType
attribute (see above).
🔹 DataDirPath
Data Type | Values | Default |
---|---|---|
Text | See below | See below |
If this attribute is set, the SCE will look for a data folder containing the
setup files in the path specified. Thus, if the DataDirPath
is set to
C:\SCEX\
, the SCE will look for the setup files in C:\SCEX\data
.
If the calling application wishes to specify the data directory path in its
entirety (e.g. the calling app does not want the SCE to append \data
to the
provided path), then simply terminate the specified DataDirPath
with an
asterisk (*
). Thus, if the DataDirPath
is set to C:\SCEX\bank1\*
, the SCE
will look for the setup files in C:\SCEX\bank1\
.
If this attribute is not set, the SCE will attempt to locate the data folder in
the default data directory path location, which can be retrieved using the
<inVERSION>
module query, and set via the SCE API.
This attribute is useful if you wish to use only a single installation of the
SCE, but have many different setup file groupings. By specifying a different
DataDirPath
for each grouping, you can easily separate the groups from one
another instead of grouping them all together in a single directory.
🔹 ForceReload
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
The SCE caches setup files previously used. This improves performance for
subsequent loan requests using one of the cached accounts. However, if you need
the SCE to reload the setup files for a given request (e.g. you just copied
over new setup files), then you can set this attribute to true
and the setup
files will be forced to reload. If left at the default value of false
, then
setup files are only reloaded when the SCE notices that one of the setup files
has been modified.
🔹 HideAmort
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
This attribute determines whether or not an amortization schedule will be
included in the response, given a successful loan calculation. If you do not
require the use of the amortization schedule, then setting this attribute to
true
will suppress its output. The default value of false
will return the
amortization schedule as part of the response.
🔹 Lastday
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If present, this attribute overrides the Last Day setting in the setup files, which only applies to loans computed with an actual day interest accrual calendar where the first payment date falls at the end of a month with fewer than 31 days. As an example, if the first payment date is on April 30, should the following payment dates be made on the 30th of each month, or on the last day of the month?
If no value is specified for this attribute, then the setup file setting will be
used. If true
is specified, then conditions triggering a last day situation
will result in payments which fall at the end of the month. A value of false
indicates that when dictated, subsequent payment dates will not be moved to the
last day of the month.
🔹 MAPR_Max
Data Type | Values | Default |
---|---|---|
Decimal | [-99.999...600] | 36.0 |
If you are computing the Military APR (see UseMAPR
below) and
wish to override the default maximum APR value of 36
%, then specify the
desired maximum as the value of this attribute.
🔹 Metavante
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to a value of true
, then the
<Metavante>
element will be included in the
response. Also, some loans will also disclose
<MinInterestPmt>
and
<MaxInterestPmt>
elements.
🔹 OddFinal
Data Type | Values | Default |
---|---|---|
Enum | default , true , false , 1 , 0 | default |
This attribute allows the calling application to specify an odd final payment
calculation method which will override the default value found in the setup file
for the given account. If not specified, then the value of default
will be used.
Odd final payments are sometimes desired to produce perfect amortization (i.e. an ending balance of zero after the final payment is made).
🔹 PmtDollarRound
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Payments are normally rounded to the penny, according to the method specified by
the PmtRound attribute (see below). If the payment should be rounded to the
dollar instead of the penny, then set the value of this attribute to true
.
Note that for some loans (such as those with longer terms or relatively small proceeds), rounding the payment up or to the nearest dollar may require a shortened loan term to prevent one or more negative payments at the end of the loan.
🔹 PmtRound
Data Type | Values | Default |
---|---|---|
Enum | default , nearest , up , down , best | default |
This attribute allows the calling application to specify a payment rounding
option which will override the value found in the setup file. If not specified,
then the value of default
will be used.
default
- Use method specified in setup file.nearest
- Round computed payment to the nearest penny, using 5/4 rounding. e.g. 300.242 = 300.24, 300.245 = 300.25.up
- Round computed payment up to the next penny. e.g. 300.241 = 300.25.down
- Round computed payment down to the previous penny. e.g. 300.249 = 300.24.best
- Once the unrounded payment has been computed, amortize the loan using the rounded down and rounded up payment, and then return the payment which amortizes the loan’s ending balance closest to zero.
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | See below | monthly |
PPY is an abbreviation for payments per year, and as one might surmise,
determines the payment frequency for the loan. The default value of monthly
will
result in a loan with 12 payments per year. If you require a loan with a payment
frequency other than monthly, specify it using this attribute.
Value | Translation | Description |
---|---|---|
1 | Annual | Once Per Year |
2 | SemiAnnual | Twice Per year (every six months) |
4 | Quarterly | Four per year (every three months) |
6 | Bimonthly | Six per year (every two months) |
12 | Monthly | Twelve per year (every month) |
24 | Semimonthly | Twice Per Month* |
26 | Biweekly | Every two weeks |
52 | Weekly | Every week |
* Semimonthly loans are characterized by making two payments per month on the same days. A common semimonthly schedule is to make payments every 1st and 16th of the month. Another common schedule is the 15th and the end of every month.
🔹 UseMAPR
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to a value of true
, the SCE will compute the Military
APR in addition to the Regulation Z APR. The <MAPR>
element will be included in the XML loan response.
🔹 YieldPPY
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 , 4 , 6 , 12 | 0 |
Canadian mortgages may compute periodic interest using a fractional power of a
periodic yield. If set to a value other than 0
, this value determines the
period. Please contact us for further information if you support mortgage
calculations in Canada. Note that when using this attribute with a value other
than zero, the calling application must include an odd days prepaid fee in the
request.
🟦 <AmortTerm>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | see below |
To specify a balloon payment for the ARM loan using a specified amortization
term (similar to an <inBALLOON_SPECIFY_AMORT>
request),
then set the contents of this element to a value greater than that found in
<Term>
.
Attributes: None
🟥 <AnnualRateIncrease>
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | [-99.999...600] |
Just how much the interest rate increases when a rate increase is due depends
upon this element, in conjunction with the <TermStep>
element. In
our sample request the annual rate increase is specified as
2%, with rate adjustments every 12 monthly payments. Thus, each rate adjustment
will see the interest rate increase by 2%.
Attributes: None
🟦 <ARM_Tweaks>
Element Type | Data Type |
---|---|
Empty | - |
This optional element itself contains no data. Instead, all of the information used to "tweak" various ARM loan settings is contained in the following attributes of the element.
Attributes:
🔹ForceTeaserSegment
,🔹StarStepDown
🔹 ForceTeaserSegment
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the ARM loan has a constant rate over the term of the loan, should the teaser term portion of the loan be disclosed as a separate payment stream?
🔹 StarStepDown
Data Type | Values | Default |
---|---|---|
Enum | default , true , false , 1 , 0 | default |
If the final rate is less than the teaser rate, a value of false
will keep the
rate at the teaser rate for the duration of the loan. If your institution allows
the rate to decrease below the teaser rate over the term of the loan, then set
the value of this attribute to true
. A default
value instructs the SCE to
use the value stored in the setup file.
🟦 <Construction>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | Not a construction loan |
Include the <Construction>
element to configure a construction period on a
loan. The use of this element requires setup files configured to support
construction loans, or specification of the Method
to be used.
If the specified account is not set up to support construction loans, this
element will be ignored.
Attributes:
🔹Accrual
,🔹Active
,🔹HalfCommitment
,🔹Method
,🔹PermanentAttached
,🔹PPY
,🔸Rate
,🔸Term
,🔹UnitOddDayDivisor
🔹 Accrual
Data Type | Values | Default |
---|---|---|
Enum | default , unitperiod , actual360 , actual365 | default |
If the loan request is a construction loan with no permanent loan attached, this attribute allows the calling application to specify the accrual method used.
default
- The setup files determine the default value for interest accrual.unitperiod
- Compute periodic interest using a 1/PPY factor.actual360
- Compute periodic interest using the actual # of days between payments/360.actual365
- Compute periodic interest using the actual # of days between payments/365.
🔹 Active
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this loan request includes a construction loan, then set this attribute to
true
. If no construction loan is desired, either do not specify the
<Construction>
element or set this attribute to false
.
🔹 HalfCommitment
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
During the term of the construction loan, the estimated interest for disclosure
purposes may be either computed on the full or half commitment amounts. By
setting this attribute to true
, interest will be estimated using half of the
initial commitment amount (i.e. the principal balance). The default value of
false
will cause interest to be estimated using the entire initial commitment
amount.
🔹 Method
Data Type | Values | Default |
---|---|---|
Enum | default , simple , laserpro , intonly | default |
There are three methods used to define how construction loans are computed and
disclosed. A method of default
tells the SCE to use the method
configured in the setup file. The meaning of the three methods are as follows:
simple
- Compute an aggregate construction interest amount for the entire construction period for both pure construction loans and construction to permanent loans.laserpro
- Compute an aggregate construction interest amount for the entire construction period for pure construction loans. For construction to permanent loans, compute and disclose discrete interest-only payments during the construction period.intonly
- Compute and disclose discrete interest-only payments during the construction period for both pure construction loans and construction to permanent loans.
🔹 PermanentAttached
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Construction loans may be computed on their own, or they may be attached to a
permanent loan which begins at the conclusion of the construction loan. If a
permanent loan is attached to the construction loan, then set this attribute’s
value to true
and set up the permanent loan information in the request
elements.
The default value of false
indicates that this is solely a construction loan
with no permanent attached. In this case, you still need to set up the
<LoanDate>
, <PmtDate>
and <Proceeds>
elements.
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | 1 , 2 , 4 , 6 , 12 , 24 , 26 , 52 | 12 |
The PPY
attribute allows the calling application to specify the payment
frequency during the construction period. The default value of monthly will
result in a construction loan with 12 payments per year. If you require a
payment frequency during the construction period other than monthly, then
specify it using this attribute. Note that if a permanent loan is attached to
the construction loan, that the permanent loan's payment frequency may differ
from the construction period’s payment frequency.
🔸 Rate
Data Type | Values | Default |
---|---|---|
Decimal | [-99.999...600] | 0 |
This attribute determines the rate applied to the appropriate commitment amount during the term of the construction loan.
🔸 Term
Data Type | Values | Default |
---|---|---|
Integer | [1...60] * | 0 |
The term of the construction loan (in payments) is specified using this attribute. Please note that the term may not exceed five years.
* 60 is the maximum number of months in the Construction period. In general, the maximum entry is 5 *
PPY
, where the PPY is the payments per year attribute of the<Construction>
element.
🔹 UnitOddDayDivisor
(enum, [], Ignore)
Data Type | Values | Default |
---|---|---|
Enum | ignore , 360 , 365 , vardpy | ignore |
When specifying an Accrual
method of type unitperiod
, this
attribute allows the calling application to specify how odd days between the
loan and first payment dates are taken into account.
ignore
means that all odd days are ignored, and the calculation will assume
one full unit period. 360
and 365
will compute the actual number of days
between the loan date and first payment date, and then use either a 360 or 365
divisor to determine the amount of interest accrued during that period. vardpy
accrues interest in the same manner as accrual code 250/350.
🟦 <Fee>[]
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No fee |
Unlike most other elements, any number of fees may be defined, or none at all. All of the information used to compute a fee is contained in its attributes.
Attributes:
🔹AddToFinChg
,🔹AddToPrin
,🔹Adjust
,🔹CalcType
,🔸Entry
,🔹IsLoanCost
,🔹MAPR
,🔹MaxValue
,🔹MinValue
,🔹Name
🔹 AddToFinChg
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
If this fee should be included in the Reg. Z Finance Charge (and hence, affect
the APR), then set this attribute to true
. The default value of false
indicates that the fee does not affect the Finance Charge nor APR.
🔹 AddToPrin
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this fee should be added to the principal balance (e.g. the fee is financed
along with the amount requested), then set this attribute to true
. If set to
false
, then the fee is paid up front out of the borrower’s pocket.
🔹 Adjust
Data Type | Values | Default |
---|---|---|
Currency | any | 0 |
The optional attribute Adjust
allows the calling application to increase or
decrease the base amount on which a fee is calculated. If a negative value is
specified and this adjustment would produce a negative base amount, then a value
of zero is returned for the given fee. This attribute has no effect on fees with
a CalcType
of Dollar
.
As an example, in Tennessee you may need to define a financed, non-APR affecting fee to be computed by decreasing the amount financed by $2,000, and then multiplying this reduced amount by 0.115. The way to accomplish this in the SCEX is as follows:
<Fee CalcType="OnAmtFin" Entry="0.115" Adjust="-2000" AddToPrin="true" AddToFinChg="false" />
🔹 CalcType
Data Type | Values | Default |
---|---|---|
Enum | Dollar , OnProceeds , OnAmtFin , OnPrin , DocStamp | Dollar |
The value of this attribute determines how the fee is to be computed, as described below:
Dollar
- TheEntry
attribute is understood as a flat dollar amount.OnProceeds
- TheEntry
attribute is understood as a percentage value, to be applied to the loan’s proceeds. AnEntry
of1.0
would represent a fee of 1.0% of proceeds.OnAmtFin
- TheEntry
attribute is understood as a percentage value, to be applied to the Amount Financed. AnEntry
of0.5
would represent a fee of 0.5% of Amount Financed.OnPrin
- TheEntry
attribute is understood as a percentage value, to be applied to the loan’s principal balance. AnEntry
of0.125
would represent a fee of 0.125% of principal balance.DocStamp
- TheEntry
attribute is understood as a Florida doc stamp rate, to be applied to the loan’s principal balance. AnEntry
of0.35
would represent a fee of 0.35% of the principal balance. You must set the AddToFinChg attribute to false, otherwise the doc stamp fee will return a value of zero.
🔸 Entry
Data Type | Values |
---|---|
Decimal or Currency | >= 0 |
The Entry
is the basic starting point fee value that determines the dollar
value of the resulting fee computation. How this attribute is interpreted
depends upon the CalcType
attribute, described above. This
value is either a dollar value or a percentage (aka "points").
🔹 IsLoanCost
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
When requesting the new TILA RESPA outputs (via the
<TILARESPA2015>
element), the SCE needs to know which fees need
to be considered borrower paid loan costs, as defined in the rule. Please note
that if the fee is paid by a lender or other third party, then the fee does not
affect the loan calculation and should not be sent to the SCE. If it is sent,
then the value of this attribute should be set to false
.
🔹 MAPR
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If you wish to compute the Military APR, then certain fees may not be considered
Regulation Z APR affecting fees, but are considered Military APR affecting fees.
In this case, you will need to set the value of this attribute to true
.
Fees which are added to the finance charge (e.g.
AddToFinChg
="true"
) are always considered MAPR fees,
regardless of the stated value of this attribute.
Note that debt protection products are automatically included in the calculation of the Military APR, no matter what method is used for payment (e.g. single premium vs. monthly outstanding balance).
🔹 MaxValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If a maximum value for the fee is specified and is greater than zero, then if the computed fee exceeds this maximum value, then this maximum value will be used instead. If no maximum value is specified or is set to a value of zero, then no maximum will be enforced. Please note that this attribute is applied to all fee types documented.
🔹 MinValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If a minimum value for the fee is specified and is greater than zero, and if the
Entry
attribute holds a value greater than zero, then if the
computed fee is less than this minimum value, then this minimum value will be
used instead. If no minimum value is specified or is set to a value of zero,
then no minimum will be enforced. If a specified minimum value exceeds a
specified maximum value, then the minimum value will be ignored. Please note
that this attribute is applied to all fee types documented.
🔹 Name
Data Type | Values | Default |
---|---|---|
Text | any | n/a |
This attribute is for convenience purposes only, and does not affect the
calculation of the fee in any manner. If a Name
attribute is specified for the
<Fee>
element, then the corresponding <Fee>
element in the XML output will have a Name
attribute with the same value. This allows you to easily differentiate fees in
the response.
🟦 <FirstRateIncrease>
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | [-99.999...600] |
If the value contained in this element is greater than zero and less than or
equal to ten, then the first rate adjustment (which occurs at the conclusion of
the teaser term) for the first <TermStep>
number of payments will
be in this amount. After that, the rate will adjust as described in
<AnnualRateIncrease>
. Note that this adjustment is
always from the teaser rate towards the sum of the specified <Index>
and <Margin>
. Thus, if the sum of the index and margin is greater
than the teaser rate, then the teaser rate will increase by the specified value.
Similarly, if the sum of the index and margin is less than the teaser rate (and
if rates are allowed to stair step down [see the <ARM_Tweaks>
element]), then the rate will decrease by the specified value.
Note that the calling application may specify either the <FirstRateIncrease>
or the <PostTeaserRate>
, but not both.
Attributes: None
🟦 <Format>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | See attributes |
The <Format>
element is one of the first elements parsed from a request, as the
attributes of this empty element affect how date and numeric values are parsed
and validated.
Attributes:
🔹CurrencyDecimals
,🔹DateFormat
,🔹DateSeparator
,🔹DecimalSeparator
,🔹StrictDP
,🔹ThousandSeparator
🔹 CurrencyDecimals
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 | 2 |
When displaying and parsing Currency values, the value of this attribute
determines the maximum number of decimal places allowed after the
DecimalSeparator
.
🔹 DateFormat
Data Type | Values | Default |
---|---|---|
Enum | YMD , MDY , DMY | YMD |
When displaying and parsing Date values, this field determines the expected
format for all Date fields. The following DateFormat
options are allowed:
YMD
- All dates should be formatted as YYYY-MM-DD.MDY
- All dates should be formatted as MM-DD-YYYY.DMY
- All dates should be formatted as DD-MM-YYYY.
Note that the character which separates the individual month, day, and year
portions of the date is configurable via the
DateSeparator
attribute.
🔹 DateSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | - |
When displaying and parsing Date values, this attribute determines the character used to separate the individual month, day, and year portions of a date.
🔹 DecimalSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | . |
When displaying and parsing Currency or Decimal numeric values, this attribute determines the character used to separate the fractional part from the whole.
🔹 StrictDP
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 , | false |
If the value of this attribute is true
, then the SCE will strictly verify the
number of decimal places allowed for currency input values. Thus, if the calling
application sends in a request with a currency amount of 1000.005
, the SCE
will return an error code.
If the value of this attribute is false
, then currency values sent in with an
invalid number of decimal places will be rounded to the correct number of
decimal places by the SCE (using five/four rounding), and a warning message with
this information will be returned with the response.
🔹 ThousandSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | , |
When displaying numeric values, this attribute determines the character used to separate the thousands places from the hundreds. Note that when parsing numeric values, the value of this attribute is ignored.
🟥 <Index>
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | [-99.999...600] |
This element holds the current value of the rate index at loan closing. When
added together with the <Margin>
, it produces the target interest
rate to adjust towards after the <TeaserTerm>
has expired.
Attributes: None
🟦 <InterestPmtRate>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Decimal | [-99.999...600] | 0 |
If this loan has interest only payments preceding the ARM loan (i.e. the value
contained in <InterestPmts>
is greater than zero), then this
element contains the interest rate charged during the interest only payment
stream unless the interest only payments are configured to use the rates
dictated by the ARM rate schedule (see Blended
).
If no interest only payments precede the ARM loan, or if the interest only
payments are configured to use the rates dictated by the ARM rate schedule (see
Blended
), then this element may be omitted.
Attributes: None
🟦 <InterestPmts>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Integer | > 0 | 0 |
If present, this element determines the number of interest only payments made at the start of the ARM loan. After the specified number of interest only payments are made, then the loan continues with principal and interest payments. If this element is not present in the request, then no interest only payments will precede the ARM loan calculation.
Attributes: None
🔹 Blended
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Blended interest only payments do not consider the initial stream of interest
payments to be outside the scheme of rate increases. For example, if the
Blended
attribute is set to true
with <InterestPmts>
specified as 12
and the <TeaserTerm>
is set to 48
, then the
payment stream resulting will be 12 interest only payments followed by 36
principal and interest payments (and the rest of the tiered P&I payments). If
the Blended
attribute was set to false
, then the payment stream would be 12
interest only payments followed by 48 P&I payments at the teaser rate, etc.
If the Blended
attribute is set to true
, then the
<InterestPmtRate>
element is ignored. Please note that
blended interest only payments are not allowed with ARM loans computed using a
CalcType
of Balloon
.
🟦 <IntStartDate>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= <LoanDate> and <= <PmtDate> | <LoanDate> |
This element contains the date on which interest begins to accrue on the loan’s
principal balance. If this element is not specified, then the interest start
date is defaulted to be the <LoanDate>
. Also note that the
interest start date must be equal to the loan date when computing a construction
loan. The interest start date (when specified) must be on or after the loan
date, as well as on or before the <PmtDate>
. All dates must be in
the form of YYYY-MM-DD, and be 10 characters long. Hence, an interest start date
April 27, 2024 would be specified as:
<IntStartDate>2024-04-27</IntStartDate>
Attributes: None
🟥 <LoanDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= 1900-01-01 |
This element determines when interest begins to accrue. If interest begins on a
later date, use the <IntStartDate>
element to define the date
on which interest begins to accrue.
This element contains the date on which the loan amount is disbursed and interest begins to accrue. All dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a loan date of March 4, 2024 would be specified as:
<LoanDate>2024-03-04</LoanDate>
Attributes: None
🟦 <Margin>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Decimal | [-99.999...600] | 0 |
This element is closely tied to the <Index>
element, and represents
the difference between the target interest rate and index rate. The lender
determines the margin at the time of loan closing, and it remains fixed for the
duration of the loan.
Attributes:
🔹UseAsMin
🔹 UseAsMin
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If a <MinRate>
element is not present in the request and the value
of this attribute is set to true
, then the value of the <Margin>
element will be treated as a specified minimum rate for all purposes, including
the TILA RESPA 2015 disclosures.
🟦 <MaxRate>
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | [-99.999...600] |
This optional element allows the calling application to specify an absolute interest rate maximum during the term of the ARM. If the interest rate ever exceeds this rate maximum, then it will be capped at this value. If left unspecified (or zero), then no absolute rate maximum will be checked.
Note that there are three different ways to specify interest rate maximums:
<Index>
+<Margin>
<TeaserRate>
+<MaxRateIncrease>
<MaxRate>
Attributes:
🔹ExemptPostTeaser
,🔹ExemptTeaser
🔹 ExemptPostTeaser
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
This attribute determines whether or not the post teaser rate (if one has been
specified) is excluded from the maximum rate constraint. If the value of this
attribute is set to true
, then the post teaser rate may be greater than the
specified maximum rate. If the value of this attribute is set to false
, then
the rate during the post teaser term can not be greater than the specified
maximum rate.
🔹 ExemptTeaser
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
This attribute determines whether or not the teaser rate is excluded from the
maximum rate constraint. If the value of this attribute is set to true
, then
the teaser rate may be greater than the specified maximum rate. If the value of
this attribute is set to false
, then rate during the teaser term can not be
greater than the specified maximum rate.
🟦 <MaxRateIncrease>
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | [-99.999...600] |
This optional element allows the calling application to specify a maximum value that the interest rate may increase from the specified teaser rate, during the term of the loan. If an interest rate adjustment would exceed the maximum rate increase, then the interest rate will be capped at a value equal to the teaser rate plus the maximum rate increase. If left unspecified (or zero), then no maximum rate increase will be checked.
Attributes: None
🟦 <MinRate>
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | [-99.999...600] |
The contents of this optional element allow you to specify a minimum interest rate for the ARM. Should the interest rate ever dip below this value, then the minimum rate specified will be used instead. If left unspecified (or zero), then no rate minimum will be checked.
Attributes:
🔹ExemptPostTeaser
,🔹ExemptTeaser
🔹 ExemptPostTeaser
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
This attribute determines whether or not the post teaser rate (if one has been
specified) is excluded from the minimum rate constraint. If the value of this
attribute is set to true
, then the post teaser rate may be less than the
specified minimum rate. If the value of this attribute is set to false
, then
the rate during the post teaser term can not be less than the specified minimum
rate.
🔹 ExemptTeaser
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
This attribute determines whether or not the teaser rate is excluded from the
minimum rate constraint. If the value of this attribute is set to true
, then
the teaser rate may be less than the specified minimum rate. If the value of
this attribute is set to false
, then the rate during the teaser term can not
be less than the specified minimum rate.
🟦 <Mortgage_Insurance>
Element Type | Data Type | Values | Default |
---|---|---|---|
Parent | - | - | No mortgage insurance |
The <Mortgage_Insurance>
element determines if this loan includes one of the
supported types of mortgage insurance (MI) - PMI or FHA. This element contains
child elements which further specify mortgage insurance options.
NOTE: Mortgage insurance is only supported on equal, balloon, and interest only loan builder requests at this time.
Attributes:
🔹CashDown
,🔹LoanAmt
,🔸PropertyValue
,🔹Type
🔹 CashDown
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
The CashDown
attribute represents a cash down payment made at closing. If
specified and greater than zero, this amount will be deducted from the principal
balance. If not specified, the cash down payment will default to zero.
🔹 LoanAmt
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | Principal balance |
The LoanAmt
attribute represents the amount by which the PMI rates are
multiplied to produce a level PMI premium. If not specified, then the principal
balance will be used to compute the annual premium.
🔹 PropertyValue
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
This attribute’s value represents the appraised property value, and will be used in the calculation of the loan to value ratio.
🔹 Type
Data Type | Values | Default |
---|---|---|
Enum | pmi , fha | pmi |
This attribute determines the type of mortgage insurance to include with the
loan. If the Type
attribute is set to FHA
, a different MI premium is
computed every twelve months based upon the average outstanding principal
balance during that same term. The MI calculation adheres strictly to the HUD
regulation.
🟥 <Mortgage_Insurance>
→<MI_Rate>[]
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | >= 0 |
The value of this element specifies the cost of mortgage insurance per $100 of
the loan amount. Note that there may be more than one <MI_Rate>
element
defined in an XML loan request (see the Switch
attribute
below).
As an example, a loan computed with a MI rate of $1.50 per $100 would be
specified as <MI_Rate>1.50</MI_Rate>
.
Attributes:
🔸Switch
🔹 Switch
Data Type | Values | Default |
---|---|---|
Integer | > 0 | 0 |
This optional attribute defines the payment number beyond which the associated MI rate will apply. If not specified, the value will default to zero.
Thus, if there is only a single MI rate, one may omit this attribute. Single rate example (use a rate of $1.50 for the entire term of MI coverage):
<MI_Rate>1.50</MI_Rate>
Multiple rate example (use a rate of $1.50 for the first 10 years, with a rate of $0.20 for coverage beyond 10 years):
<MI_Rate>1.50</MI_Rate>
<MI_Rate Switch="120">0.20</MI_Rate>
🟦 <Mortgage_Insurance>
→<Periodic>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Integer | >= 0 | 0 |
The value of this element represents the term beyond which MI is no longer
included. As an example, if mortgage insurance must be removed after the 180th
payment, then the calling application should specify <Periodic>180</Periodic>
in the XML loan request. 0
means no term removal is in effect.
🔹 DropLTV
Data Type | Values | Default |
---|---|---|
Decimal | >= 0 and <= 100 | 0 |
The value of this attribute determines the loan to value ratio at which MI
should be removed, and is expressed as a percentage. For example, if you wish to
automatically drop MI when the loan to value ratio first equals or falls below
78%, then you would specify DropLTV="78.0"
.
🔹 WarnLTV
Data Type | Values | Default |
---|---|---|
Decimal | >= 0 and <= 100 | 0 |
The value of this attribute determines the loan to value ratio at which a
warning should be issued, and is expressed as a percentage of LTV (loan to
value). For example,if you wish to know when the loan to value ratio first
equals or falls below 80%, then you would specify WarnLTV="80.0"
.
🟦 <Mortgage_Insurance>
→<UpFront>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Decimal | >= 0 | 0 |
This element determines the up front fee for mortgage insurance, as disclosed in
the <PMI_Fee>
element in the results. If this element is not
specified, no up front fee will be computed. Note that ZOMP (zero option monthly
premium) products do not have an up front fee, which means that this element can
be omitted or set to zero.
The following attributes define how the fee is computed and disclosed.
🔹 Paid
Data Type | Values | Default |
---|---|---|
Enum | Financed , AtClosing , ByLender | AtClosing |
If the value of this attribute is set to Financed,
then the computed up front
fee will be added to the principal balance and the finance charge. A value of
AtClosing
will cause the value of the fee to be added to the finance charge
alone. Finally, a value of ByLender
means that the up front fee is to be paid by
the lender; hence, the value of the fee is a Pocket Fee that is not added to
either the principal balance nor the finance charge.
🔹 Units
Data Type | Values | Default |
---|---|---|
Enum | Months , Points , Years | Months |
If the Units attribute is set to Months
, the value of the
<UpFront>
element represents the number of periodic MI premiums to
be paid at closing.
If the Units attribute is set to Years
, the value of the
<UpFront>
element represents the number of annual MI premiums to
be paid at closing.
Many single premium products define the up front fee as a number of years of MI to be paid up front.
Finally, if the Units attribute is set to Points
, the value of the
<UpFront>
element represents the percentage of principal to be
paid up front. As of October 3, 2011, FHA loans use points.
🟦 <OddDaysPrepaid>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No odd days prepaid interest |
If odd days interest should be treated as a prepaid finance charge or added to the first payment, then include this empty element in the request. The attributes of this element determine how odd days interest is computed and handled.
Attributes:
🔹AccrualCode
,🔹AddToPmt
,🔹AddToPrin
,🔹AnchorDate
,🔹ForceUnitPeriod
,🔹NoCap
,🔹UseDailyCost
,🔹UseNegODI
🔹 AccrualCode
Data Type | Values | Default |
---|---|---|
Enum | See below | 220 |
The accrual code defines how the odd days interest is computed.
Note that accrual code 250
("Variable Days Per Year") defines the basis divisor
days to be equal to 12 multiplied by the number of days in the month of the date
on which interest begins to accrue. Thus, if the interest start date falls in
November, then the number of basis days is 360. If the interest start date falls
in a month with 31 days, then the number of basis days is 372. For an interest
start date in February, the number of basis days will either be 336 or 348,
depending upon whether or not it is a leap year.
AccrualCode | Description |
---|---|
204 | Unit period simple w/ true 360 calendar and 360 day divisor |
205 | Unit period simple w/ true 360 calendar and 365 day divisor |
210 | Actual / 360 simple |
211 | True 365 / 360 simple |
220 | Actual / 365 simple |
221 | True 365 / 365 simple |
230 | Actual / Actual simple |
231 | Midnight 366 simple |
250 | Unit period simple w/ variable DPY divisor |
🔹 AddToPmt
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application wants the odd days interest to be added to the first
payment, then set the value of this attribute to true
. A value of false
indicates that the odd days interest will be treated as a prepaid fee.
🔹 AddToPrin
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If any odd days interest should be treated as a financed prepaid fee, then set
the value of this attribute to true
. Note that if both
AddToPmt
and AddToPrin
are set to true
, then a warning
message will be returned by the SCEX and the value of AddToPrin
will be set to
false
.
🔹 AnchorDate
Data Type | Values | Default |
---|---|---|
Enum | BackUnitPeriod , BackDaysPerPeriod | BackUnitPeriod |
The computed number of odd days is the number of days between the loan date and the anchor date. This attribute determines how to arrive at the anchor date.
BackUnitPeriod
- The anchor date is one unit period prior to the specified first payment date.BackDaysPerPeriod
- The anchor date is the number of days per period prior to the first payment date.
Please note that for both of these methods, the period used will be that associated with the payment stream in which the first payment occurs.
🔹 ForceUnitPeriod
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the loan's interest accrual is unit period, this attribute forces the period
to the first payment to be 1/12 (or 1/(PmtsPerYear) in general). Without this
attribute an accrual code of 202
(Unit Period /365) would use a factor of
Days/365 rather than the expected 1/12.
🔹 NoCap
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
When an odd days interest fee is present and financed, the value of this
attribute determines if the ODI fee is added to the principal balance for the
purposes of computing the ODI fee (e.g. if it is capitalized). If this value is
true
, the ODI is computed on the true principal balance less the ODI; false
means "compute ODI on the true principal balance.
🔹 UseDailyCost
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the total odd days prepaid fee is computed by first generating a rounded (to
the nearest penny) daily cost and then multiplying this value by the computed
number of odd days, then set the value of this property to true
.
A value of false
means that the daily cost is left unrounded, and the total
prepaid fee is rounded after the computation is complete.
🔹 UseNegODI
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If there are negative odd days in the loan, then the value of this attribute
determines if a negative odd days interest fee is computed. If the value of this
attribute is false
, then negative odd days fees are not allowed, the SCEX will
return a value of zero in this situation, and the computed payment will be
adjusted to take into account the negative odd days. A value of true
will
return a negative odd days interest fee (in effect, it then becomes an odd days
interest credit) when there are negative odd days in a loan.
🟥 <PmtDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= <LoanDate> and >= <IntStartDate> |
This element contains the date on which the first payment of the loan is made, and must be on or after the loan date.
All dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a first payment date of April 4, 2024 would be specified as:
<PmtDate>2005-04-04</PmtDate>
Attributes: None
🟦 <PostTeaserRate>
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | [-99.999...600] |
Instead of specifying a first rate adjustment using the
<FirstRateIncrease>
element, the calling application can
instead specify an interest rate that applies following the teaser term. This
will allow for loans with a teaser rate, followed by a post teaser rate less
than the teaser rate, which will then adjust to the sum of the index and margin
greater than the teaser rate.
Note that the calling application may specify either the
<FirstRateIncrease>
or the <PostTeaserRate>
, but not
both.
Attributes: None
🟥 <Proceeds>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | >= 0 |
The proceeds specifies the amount the customer has frequested to borrow, ignoring every other financed quantity. Proceeds of up to one billion dollars are accepted.
The amount should be expressed as a number. For example, a request including
<Proceeds>10000.00</Proceeds>
indicates an amount requested of 10,000.
Attributes: None
🟦 <Protection>
Element Type | Data Type | Values | Default |
---|---|---|---|
Parent | - | - | No protection included |
The <Protection>
element is used to specify debt protection coverages such as
life, disability, involuntary unemployment, personal property and debt
cancellation. Each type of coverage is specified by its own sub-element, along
with the borrower birthdays. The following attributes apply to this element:
Attributes:
🔹FinanceProt
,🔹LineOfCredit
,🔹Mandatory
,🔹ShowBorrowerInfo
,🔹ShowCaps
🔹 FinanceProt
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
If the computed premiums for single premium debt protection products should be
financed along with the proceeds, then this attribute should be set to true
(which is the default value if not specified). A value of false
indicates that
the computed premiums will not be financed with the proceeds, and hence will be
paid out of pocket by the borrower. Note that this applies to single premium
insurance products only!
🔹 LineOfCredit
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this is an account using TruStage’s MOB insurance, and if this loan is a line
of credit where product term caps should be ignored, then set this attribute to
true
. Otherwise, leave this attribute unspecified or set it to false
.
🔹 Mandatory
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the value of this attribute is set to true
, then any computed payment
protection premium or fee will be considered a mandatory fee which will be
included as a part of the Regulation Z Finance Charge, and hence affect the
Regulation Z APR. In this case, the <Protection>
element in the response will contain a
Mandatory
="true"
attribute indicating this.
If the Mandatory attribute is set to false
, the loan will treat any premiums /
fees as normal.
🔹 ShowBorrowerInfo
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application would like to have data returned for each specified
borrower instead of a single <CovTerm>
element, then
set the value of this attribute to true
. Otherwise, leave this attribute
unspecified or set it to false
. See the <Borrower>
and <CovTerm>
elements defined in the response for
more information.
🔹 ShowCaps
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application would like to have cap information (e.g., maximum
terms, coverage amounts, ages, etc.) returned for each product offered, set the
value of this attribute to true
. Otherwise, leave this attribute unspecified
or set it to false
. See the <Caps>
element for more
information.
🟦 <Protection>
→<Birthday1>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= 1900-01-01 | No birthday specified |
This element contains the date of birth for the primary borrower. All dates must
be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a birthday of
April 9, 1972 would be specified as <Birthday1>1972-04-09</Birthday1>
. Note
that this element must be set if the Covers attribute of any of the four debt
coverage elements is set to borrower1
or both
.
Attributes: None
🟦 <Protection>
→<Birthday2>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= 1900-01-01 | No birthday specified |
This element contains the date of birth of the secondary borrower. All dates
must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a birthday
of May 21, 1969 would be specified as <Birthday2>1969-05-21</Birthday2>
.
Attributes: None
🟦 <Protection>
→<Disability>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No disability coverage |
The <Disability>
element determines what type of disability coverage is
requested for the loan. It also serves double duty as the debt cancellation
coverage element, for accounts set up to compute debt cancellation using the
disability tables. The element itself is empty, with all information needed for
disability coverage request being specified in the following attributes:
🔹 Benefit
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in the appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <Disability>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will assure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user specified coverage terms, then this attribute will be ignored.
🔹 Table
Data Type | Values | Default |
---|---|---|
Integer | [0...19] | 0 |
If the specified account has been set up with multiple disability or debt
cancellation plans, then this attribute determines which plan number will be
used. If no table number is specified, the first table (table zero) will be
used. To find out the number of available plans, use the
<AhSetCount>
element in the
<inINPUT_TOOL>
response.
🟦 <Protection>
→<Life>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No life coverage |
The <Life>
element determines what type of life coverage is requested for the
loan. The element itself is empty, with all information needed for a life
coverage request being specified in the following attributes:
Attributes:
🔹Coverage
,🔹Covers
,🔹CovTerm
,🔹Dismemberment
,🔹Method
,🔹UseLevelRates
🔹 Coverage
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
If you wish to specify a coverage amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum coverage amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified coverage amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in the appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <life>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will assure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user specified coverage terms, then this attribute will be ignored.
🔹 Dismemberment
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the specified account has been set up to offer optional dismemberment coverage to be offered with life coverage (using an increased rate in the premium calculation), then this attribute determines whether or not this additional coverage will be provided.
🔹 Method
Data Type | Values | Default |
---|---|---|
Enum | default , net , gross | default |
If the specified account has been set up to offer single premium life coverage
by default, net or gross coverage, then this attribute can be used to specify
which type of coverage to compute with the loan. For all other accounts, the
default value of default
should be used (or simply do not specify the attribute
at all).
🔹 UseLevelRates
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the account specified has been set up to offer single premium credit life
using level rates instead of the normal decreasing rates, then set this
attribute’s value to true
. Otherwise, use the default value of false
.
🟦 <Protection>
→<Unemployment>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No unemployment coverage |
The <Unemployment>
element determines what type of involuntary unemployment
coverage is requested for the loan. The element itself is empty, with all
information needed for a coverage request being specified in the following
attributes:
🔹 Benefit
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If you wish to specify a benefit amount less than the maximum allowed, then do so with this attribute. Leaving this attribute unspecified will assure that the maximum benefit amount allowed will be used in the loan calculation. Note that if the specified account has not been set up to allow for user specified benefit amounts, then this attribute will be ignored.
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of coverage is being requested on the loan.
The values borrower1
and borrower2
represent single coverage on the
appropriate borrower (whose birthdays are contained in the appropriate
<Birthday>
elements). A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
or omit the <Unemployment>
element entirely.
🔹 CovTerm
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
If you need to specify a coverage term (number of payments) less than the maximum allowed, then do so using this attribute. Leaving this attribute unspecified will ensure that the loan is covered for the maximum term allowed. Note that if the specified account has not been set up to allow for user-specified coverage terms, then this attribute will be ignored.
🟦 <RoundRate>
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | >= 0 |
If the value of this element is greater than zero, then the sum of the specified
index and margin (i.e. the sum of the unrounded values specified in the request)
will be rounded according to this value and the Round
attribute defined below.
As an example, if the sum of the specified index and margin is 5.01 and the
value of this element is 0.125
(1/8th of a percent), then the computed index +
margin will be rounded to either 5.0 or 5.125 depending upon the value of the
Round
attribute specified.
If no value is specified for this element, then no rounding of the index plus margin (nor any other rates) will occur.
Attributes:
🔹Round
🔹 Round
Data Type | Values | Default |
---|---|---|
Enum | up , down , nearest | nearest |
If a value is specified for the <RoundRate>
element, then the
value of this attribute determines how the rounding will be performed.
🟥 <TeaserRate>
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | [-99.999...600] |
The teaser rate is the interest rate initially applied to the loan. These rates
are in effect for a given number of payments (see <TeaserTerm>
below), after which regular rate adjustments will take place during the life of
the loan.
Attributes: None
🟥 <TeaserTerm>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | [2...600] * |
This element specifies the number of payments that the
<TeaserRate>
is in effect. No interest rate increase will take
place during the teaser term.
Attributes: None
🟥 <Term>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | [2...600] * |
The value of this element indicates the number of payments in the loan.
The term must be entered as a number of payments, not a duration of time.
Therefore, <Term>72</Term>
represents 72 payments, not 72 months (or years).
This term is intimately tied to the PPY
(# of payments per year)
attribute of the root element. If the value of the PPY
attribute
was 24
(semimonthly) for this loan, the 72 payments would mean that the
duration of the loan is three years, since years = number of payments / payments
per year = 72 / 24 = 3.
* In general, the term can be no greater than 50 years, so the maximum entry would be 50 *
PPY
. Weekly loans, however, are limited to 30 years, or 1,560 payments.
Attributes: None
🟥 <TermStep>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | > 0 |
This element specifies the number of payments between interest rate increases after the teaser term has passed. In our sample request the teaser term is 12 months, with a term step of 12 months. This means that the first 12 months will use the teaser rate as the interest rate. Then, the next 12 months will use an increased rate, with the next 12 months increasing the rate again, etc.
If the value of this element is greater than the number of payments per year, then any value is valid, and the rate increase per step is equal to the annual rate increase.
If the value of this element is less than or equal to the number of payments per
year, then the value of the <TermStep>
element must evenly divide the number
of payments per year. In this case, the rate increase per step is equal to the
annual rate increase multiplied by the term step divided by the number of
payments per year.
Attributes:
🔹AdjFirstInc
🔹 AdjFirstInc
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the value of this attribute is false
, then the first rate increase
following the teaser term is equal to annual rate increase. If true, then the
first rate increase following the teaser term is equal to periodic rate increase
defined above.
🟦 <TILARESPA2015>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No TILA RESPA disclosures |
The presence or absence of this element determines whether or not the TILA RESPA data table is present in the output.
If this element is present in the loan request, then the SCEX will return data for the Integrated Mortgage Disclosures under the Real Estate Settlement Procedures Act (Regulation X) and the Truth In Lending Act (Regulation Z) rule, which is required as of August 1st, 2015. If this element is not present, then the TILA RESPA outputs will not be generated.
Attributes:
🔹MaxPnIDetails
,🔹MinPnIDetails
🔹 MaxPnIDetails
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the ARM loan specified a maximum lifetime interest rate (see
<MaxRate>
), and if the calling application requires the principal
and interest breakdown for each MaxPnI
payment
returned in the amortization schedule, then set the value of this attribute to
true
.
🔹 MinPnIDetails
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the ARM loan specified a minimum lifetime interest rate (see
<MinRate>
), and if the calling application requires the principal
and interest breakdown for each MinPnI
payment
returned in the amortization schedule, then set the value of this attribute to
true
.
🟦 <TotalDown>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
This optional element represents the total down payment that the borrower has applied to reduce the requested proceeds. It may consist of a cash down payment, net trade-in value, or rebate. You only need to specify a total down payment if the loan needs to disclose a total sale price. Typical examples of these loan types are auto and boat loans.
To generate a total down payment, please see the chapter detailing the SCEX’s Auto Prompts module.
Attributes: None
Adjustable Rate Mortgage - Response
Please see the Legend to understand the conventions used to document each element and attribute. Note that for responses, the XML elements are documented in the order that they appear in the response.
🟥 <outARM>
Element Type | Data Type |
---|---|
Parent | - |
This element is the root element of the response, and contains all of the relevant outputs.
Attributes:
🔹CountryName
🔹 CountryName
Data Type | Values | Default |
---|---|---|
Text | See table | United States of America |
If a valid Country
code was specified as an
attribute of the input module element, the full name of the country associated
with the specified Country code will be reported in this attribute.
🟥 <Results>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which describe the success or failure of the calculation, any warning or error messages, and the most important numerical results for the query.
<Results>
<Description>Successful Calculation</Description>
<Number_of_Groups>4</Number_of_Groups>
</Results>
Attributes: None
🟥 <Results>
→<Description>
Element Type | Data Type |
---|---|
Data | Text |
If the calculation was completed successfully, then this element will contain
the value Successful Calculation
. Otherwise, this element will contain a
description of the problem encountered during the attempted computation.
Attributes: None
🟦 <Results>
→<XMLDetail>[]
Element Type | Data Type | Default |
---|---|---|
Data | Text | NULL |
The <XMLDetail>
elements are messages passed back to the calling application
which detail the status of the XML request. If the SCEX issues any warnings
regarding unrecognized elements or attributes, then each warning message will be
displayed in an <XMLDetail>
element.
Attributes: None
🟥 <Results>
→<Number_of_Groups>
Element Type | Data Type |
---|---|
Data | Integer |
This element's value is the number of payment groups found in the computed loan.
This value is equivalent to the number of <PmtStream>
elements
found in the XML result.
Attributes: None
🟥 <FedBox>
Element Type | Data Type |
---|---|
Parent | - |
Some of the most important compliance related outputs are organized into the
<FedBox>
disclosures.
<FedBox>
<AmtFin>500000.00</AmtFin>
<FinChg>85428.16</FinChg>
<TotPmts>585428.16</TotPmts>
<RegZAPR Type="Actuarial">6.270</RegZAPR>
</FedBox>
Attributes: None
🟥 <FedBox>
→<AmtFin>
Element Type | Data Type |
---|---|
Data | Currency |
The Regulation Z Amount Financed, which is defined as the amount of credit provided to you or on your behalf.
Attributes: None
🟥 <FedBox>
→<FinChg>
Element Type | Data Type |
---|---|
Data | Currency |
This element contains the Regulation Z Finance Charge, described as the dollar amount the credit extension will cost you.
Attributes: None
🟥 <FedBox>
→<TotPmts>
Element Type | Data Type |
---|---|
Data | Currency |
The amount which the borrower will have paid when the borrower has made all scheduled payments.
Attributes: None
🟦 <FedBox>
→<TotalSalePrice>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | <TotPmts> |
The sum of the total of payments plus the total down payment. Please note that
if no <TotalDown>
element was specified in the
request, then this element will not be present.
Attributes: None
🟥 <FedBox>
→<RegZAPR>
Element Type | Data Type |
---|---|
Data | Decimal |
The Regulation Z APR, which is the cost of the extension of credit expressed as a yearly rate. The Reg. Z APR element has a few attributes, described below:
Attributes:
🔹Max
,🔹MaxExceeded
,🔸Type
🔹 Max
Data Type | Default |
---|---|
Decimal | n/a |
This attribute specifies the maximum APR as configured in the account's setup files. If no maximum APR has been specified, then this attribute will not be present. The value of this attribute should be displayed as a percentage. As an example, for Max="36.000", you would disclose a maximum APR of 36.000%.
🔹 MaxExceeded
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
If a maximum APR is configured in the account's setup files, then the value of
this attribute indicates whether or not the current loan exceeds the maximum
allowed APR. As an example, if the maximum APR has been set to 36% and the APR
for the returned loan was 37.125%, the <RegZAPR>
element would be:
<RegZAPR Type="Actuarial" Max="36.000" MaxExceeded="true">37.125</RegZAPR>
🔸 Type
Values | |
---|---|
Enum | Actuarial , USRule , EU_APR , Canadian_APR , XIRR , XIRR360 , IRR , YieldIRR , Open_End |
This attribute specifies the method used to compute the reported APR: Actuarial or US Rule The method used is dictated by the setup files for the given account, but may be overridden in the XML input query.
Actuarial
- Governed by Appendix J to Regulation Z. Default US APR.USRule
- Used by large banks to mirror loan amortization.EU_APR
- Default European Union APR.Canadian_APR
- Default APR for Canada.XIRR
- Extended Internal Rate of Return (same as excel function).XIRR360
-XIRR
using a 360 divisor rather than a 365 divisor.YieldIRR
- Canadian mortgages may compute periodic interest using a fractional power of a periodic yield.Open_End
- Simply returns the interest rate.
🟦 <FedBox>
—><MAPR>
Element Type | Data Type |
---|---|
Data | Decimal |
If the military APR has been requested, then this element will be included in the output. The value of the element is the military APR, and the element has a few attributes, described below:
Attributes:
🔸Advance
,🔹Max
,🔹MaxExceeded
🔸 Advance
Data Type |
---|
Currency |
This attribute is the equivalent of the Amount Financed for the Military APR. Specifically, it is the principal balance less any MAPR fees, debt protection, etc.
🔹 Max
Data Type | Default |
---|---|
Decimal | 36.0 |
This attribute specifies the maximum Military APR as specified in the input XML
(see MAPR_Max
). If not specified, a default value
of 36% is assumed. The value of this attribute should be displayed as a
percentage. As an example, for Max="36.0"
, you would disclose a maximum
Military APR of 36.0%.
🔹 MaxExceeded
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
The value of this attribute 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>
element would be:
<MAPR Advance="1350.00" Max="36.000" MaxExceeded="true">37.125</MAPR>
🟦 <TILARESPA2015>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which are of interest to fulfilling the
2015 TILA RESPA rule. It will only be present if the
<TILARESPA2015>
element is present in the
request.
Sample TILARESPA2015 output:
<TILARESPA2015>
<TotalLoanCosts>0</TotalLoanCosts>
<CD_TotPmts>27311.07</CD_TotPmts>
<In5Years PaidTotal="27311" PaidPrincipal="25000"/>
<TIP>9.244</TIP>
<MaxPnIPmt Date="2012-11-01">1636.65</MaxPnIPmt>
<MinRate Idx="1">5.651</MinRate>
<MaxRate Idx="1">5.651</MaxRate>
<ProjectedPayments NumCols="3">
<PPCol Num="1" Title="Year 1">
<Years Start="1" End="1"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
<PPCol Num="2" Title="Year 2">
<Years Start="2" End="2"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
<PPCol Num="3" Title="Year 3">
<Years Start="3" End="3"/>
<PnIPmt Min="636.65" Max="1636.65" IntOnly="none" Balloon="false"/>
<MIPmt>0.00</MIPmt>
<TotalPmt Min="636.65" Max="1636.65"/>
</PPCol>
</ProjectedPayments>
</TILARESPA2015>
Attributes: None
🟦 <TILARESPA2015>
→<LoanCost>[]
Element Type | Data Type |
---|---|
Data | Currency |
For every <Fee>
element present in the input which has
its IsLoanCost
attribute 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>
input element), there will be a
corresponding <LoanCost>
element. The value of this element will be the
numerical value of the fee, rounded to the nearest dollar.
🔹 In5Years
Data Type | Default |
---|---|
Currency | <LoanCost> |
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 attribute will be present and disclose the portion of this loan cost that is accrued during the first five years.
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
This attribute will hold the same value as the attribute of the same name for
the <Fee>
element. It is recommended that each fee
have a unique Name
for identification purposes.
🟥 <TILARESPA2015>
→<TotalLoanCosts>
Element Type | Data Type |
---|---|
Data | Currency |
This element holds the sum of all borrower paid loan costs. Since all
<LoanCost>
element values are rounded dollar amounts, the value of this
element will also be a rounded dollar amount.
Attributes: None
🟥 <TILARESPA2015>
→<CD_TotPmts>
Element Type | Data Type |
---|---|
Data | Currency |
This element holds 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 will be the numerical value of the sum.
Attributes: None
🟥 <TILARESPA2015>
→<In5Years>
Element Type | Data Type |
---|---|
Empty | - |
This element is empty, with all important values required for the new "In 5 Years" section returned in the following two attributes of this element.
Attributes:
🔸PaidPrincipal
,🔸PaidTotal
🔸 PaidPrincipal
Data Type |
---|
Currency |
This attribute 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.
🔸 PaidTotal
Data Type |
---|
Currency |
This attribute 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.
🟥 <TILARESPA2015>
→<TIP>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the total interest percentage, rounded to three or fewer decimal places, as required.
Attributes: None
🟥 <TILARESPA2015>
→<MaxPnIPmt>
Element Type | Data Type |
---|---|
Data | Currency |
The value of this element holds the maximum scheduled principal and interest payment during the term of the loan.
Attributes: 🔸
Date
🔸 Date
Data Type |
---|
Date |
This attribute contains 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. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🟥 <TILARESPA2015>
→<MinRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the minimum possible interest rate applied during the term of the loan.
Attributes: 🔸
Idx
🔸 Idx
Data Type |
---|
Integer |
This attribute contains the payment number for which the minimum rate is first applicable.
🟥 <TILARESPA2015>
→<MaxRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The value of this element holds the maximum possible interest rate applied during the term of the loan.
Attributes: 🔸
Idx
🔸 Idx
Data Type |
---|
Integer |
This attribute contains the payment number for which the maximum rate is first applicable.
🟥 <TILARESPA2015>
→<ProjectedPayments>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which are of interest to filling the
Projected Payments table. It will only be present if the <TILARESPA2015>
element is present in the XML request for a supported loan type.
Attributes: 🔸
NumCols
🔸 NumCols
Data Type | Values |
---|---|
Integer | [1...4] |
This attribute will hold the number of columns which must be present in the Projected Payments table. It will be a numeric value from 1 to 4.
🟥 <ProjectedPayments>
→<PPCol>[]
Element Type | Data Type |
---|---|
Parent | - |
For every column required in the Projected Payments table, there will be an
associated <PPCol>
element. This element is a parent to child elements which
contain data associated with a single column of the table.
🔸 Num
Data Type | Values |
---|---|
Integer | [1...4] |
This attribute will hold the number of the column to which the following data applies.
🔸 Title
Data Type |
---|
Text |
The value of this attribute 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.
🟥 <ProjectedPayments>
→<PPCol>
→<Years>
Element Type | Data Type |
---|---|
Empty | - |
The attributes of this element hold the beginning and ending year numbers for which this column data applies. The element itself is empty.
🔸 End
Data Type |
---|
Integer |
The ending year associated with this column's data.
🔸 Start
Data Type |
---|
Integer |
The beginning year associated with this column's data.
🟥 <ProjectedPayments>
→<PPCol>
→<PnIPmt>
Element Type | Data Type |
---|---|
Empty | - |
This empty element has several attributes which describe the principal and interest payments associated with this column.
🔸 Balloon
Data Type | Values |
---|---|
Boolean | true , false |
If any of the payments associated with this column are balloon payments (e.g.
isolated payments that are more than twice the value of a regular periodic
payment), then the value of this attribute will be true
.
🔸 IntOnly
Data Type | Values |
---|---|
Enum | all , some , none |
none
- No payments associated with the column are Interest Onlysome
- Some, but not all, of the payments associated with the column are Interest Only.all
- All of the payments associated with the column are Interest Only.
Note that for the purposes of this attribute, 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.
🔸 Max
Data Type |
---|
Currency |
This attribute holds the maximum principal and interest payment for this column.
If this value is not the same as the value of the Min
attribute, then a range of rounded payments must be displayed. If the values are
the same, then only a single value needs to be disclosed.
🔸 Min
Data Type |
---|
Currency |
This attribute holds the minimum principal and interest payment for this column.
🟥 <ProjectedPayments>
→<PPCol>
→<MIPmt>
Element Type | Data Type |
---|---|
Data | Currency |
The value of this element 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.
Attributes: None
🟥 <ProjectedPayments>
→<PPCol>
→<TotalPmt>
Element Type | Data Type |
---|---|
Empty | - |
This empty element has two attributes which describe the estimated total payment or range of payments associated with this column. Note that this value does not include any estimated escrow, as the SCEX does not support escrow calculations. The calling application will need to increase these values by the estimated escrow amounts if any are present.
🔸 Max
Data Type |
---|
Currency |
This attribute holds the maximum estimated total payment for this column. If
this value is not the same as the value of the Min
attribute,
then a range of rounded payments must be displayed. If the values are the same,
then only a single value needs to be disclosed.
🔸 Min
Data Type |
---|
Currency |
This attribute holds the minimum estimated total payment for this column.
🟥 <Moneys>
Element Type | Data Type |
---|---|
Parent | - |
This element groups together those other major cash amounts not disclosed under
the <FedBox>
element, such as the principal balance, interest
change, fee amounts and protection premiums.
<Moneys>
<Principal>10120.00</Principal>
<Interest>1635.80</Interest>
<OddDaysPrepaid OddDayCount="15" DailyCost="2.77">41.55</OddDaysPrepaid>
<FinFees>120.00</FinFees>
<FinChgFees>91.55</FinChgFees>
<PocketFees>65.00</PocketFees>
<MAPRFees>201.55</MAPRFees>
<Protection Category="None" PerPmt="0.00" PerDay="0.00">0.00</Protection>
<Fee Name="FinFee">60.00</Fee>
<Fee Name="Prepaid Fee">50.00</Fee>
</Moneys>
Attributes: None
🟥 <Moneys>
→<Principal>
Element Type | Data Type |
---|---|
Data | Currency |
The principal balance is the amount on which interest is accrued. The principal balance consists of the amount requested by the borrower, any fees which are financed, as well as financed protection premiums.
Attributes: None
🟥 <Moneys>
→<Interest>
Element Type | Data Type |
---|---|
Data | Currency |
This element contains the total interest accrued during the term of the loan, assuming the borrower will make all scheduled payments.
Attributes: None
🟦 <Moneys>
→<ConstructInterest>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If the requested loan is a construction loan with a permanent loan attached and the account specified is set up to compute construction loans via the "Simple" method, then this element 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 <Interest>
element, and
both loans reflected in a single, combined amortization schedule.
If the requested loan was not a construction loan, or if construction loans have not been set up for the given account, then this element will not appear in the results.
Attributes: None
🟦 <Moneys>
→<OddDaysPrepaid>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element, if present, holds the total odd days prepaid finance charge. If no odd days prepaid fee was requested, then this element will not be present in the output.
Attributes:
🔹AddToPmt
,🔹DailyCost
,🔸OddDayCount
,🔹OddMonths
🔹 AddToPmt
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
If the odd days interest has been added to the first payment, this attribute
will be present in the output with a value of true
. If the odd days interest has
been treated as a prepaid finance charge, then this attribute will not be
present and a default value of false
should be assumed.
🔹 DailyCost
Data Type | Default |
---|---|
Currency | n/a |
If the odd days prepaid fee is computed using a rounded daily cost, then the value of this attribute will hold that value. If the odd days prepaid is not computed using a rounded daily cost, then this attribute will not be present.
🔸 OddDayCount
Data Type |
---|
Integer |
This attribute holds the number of odd days computed by the SCE for the requested loan.
🔹 OddMonths
Data Type | Default |
---|---|
Integer | n/a |
This attribute holds the number of odd months computed by the SCE for the
requested loan when using odd days accrual method 250
.
🟦 <Moneys>
→<MinInterestPmt>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | n/a |
The <MinInterestPmt>
element will only appear if the
Metavante
attribute has been set to true
,
and even then only under certain loan conditions. The element itself contains no
data, as all required data is found in the following two attributes:
🔸 Index
Data Type |
---|
Integer |
The Index
attribute specifies the payment number in the payment stream at which
the minimum interest payment is achieved.
🔸 Pmt
Data Type |
---|
Currency |
The interest payment amount for the given Index
.
🟦 <Moneys>
→<MaxInterestPmt>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | n/a |
The <MaxInterestPmt>
element will only appear if the
Metavante
attribute has been set to true
,
and even then only under certain loan conditions. The element itself contains no
data, as all required data is found in the following two attributes:
🔸 Index
Data Type |
---|
Integer |
The Index
attribute specifies the payment number in the payment stream at which
the maximum interest payment is achieved.
🔸 Pmt
Data Type |
---|
Currency |
The interest payment amount for the given Index
.
🟦 <Moneys>
→<FinFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element contains the sum of all financed fees requested for the loan. If no financed fees were requested, then this element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<FinChgFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element contains the sum of all APR affecting fees (those fees which are
added to the <FinChg>
) requested for the loan. If no APR affecting
fees were requested, then this element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<PocketFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element 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 element will not show up in the response.
Attributes: None
🟦 <Moneys>
→<MAPRFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element 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.
Attributes: None
🟦 <Moneys>
→<Protection>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
Contains the total cost of all protection plans included with the computed loan.
For the individual plan costs, see the <ProtectionInfo>
elements described
below. The attributes of this element are as follows:
Attributes:
🔸Category
,🔹IsDp
,🔹Mandatory
,🔸PerDay
,🔸PerPmt
🔸 Category
Data Type | Values |
---|---|
Enum | See below |
This attribute specifies the category under which the computed loan protection falls. The possible values for this attribute are:
None
- No protection catetory has been identified.SP
- Single Premium protection financed at loan closing.MOB
- Monthly outstanding balance (paid on Payments).TrueMOB
- Premiums paid monthly on a date specified in the setup files.PaidSP
- Single premium protection paid at closing.ConstantMOB
- CMOB is a product paid with payments and a constant amount.AddToPmtMOB
- MOB insurance added to a constant P&I payment, resulting in variable payments.
🔹 IsDp
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
This attribute indicates if the specified account’s protection is set up as debt
protection. If this attribute 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).
🔹 Mandatory
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
This attribute should only appear in the response if the value of the attribute
is true
. If this attribute does not appear in the output, then the value of
this attribute should default to false
. If the value of the Mandatory
attribute is true
, then the total premium/fee amount for all insurance/debt
protection products has been treated as a part of the Regulation Z Finance
Charge, and hence will affect the Reg. Z APR.
🔸 PerDay
Data Type |
---|
Currency |
Contains the cost of all loan protection products expressed as dollars per day.
🔸 PerPmt
Data Type |
---|
Currency |
Contains the cost of all loan protection products expressed as dollars per payment.
🟦 <Moneys>
→<MinIntChgAdj>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a minimum interest charge is configured in the account’s setup files and the final payment was adjusted to meet this minimum interest charge, then this element will be returned in the response and will contain the value of the minimum finance charge adjustment.
Attributes: None
🟦 <Moneys>
→<MinFinChgAdj>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a minimum finance charge is configured in the account’s setup files and the final payment was adjusted to meet this minimum finance charge, then this element will be returned in the response and will contain the value of the minimum finance charge adjustment.
Attributes: None
🟦 <Moneys>
→<Fee>[]
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
For each non-zero fee requested in the loan calculation, there will be a <Fee>
element containing the computed fee amount.
Attributes:
🔹Name
🔹 Name
Data Type | Default |
---|---|
Text | NULL |
Contains the value of the Name attribute of the corresponding
<Fee>
element from the request. If no such attribute is
present in the <Fee>
element, then none will be present
in the response element.
🟦 <Moneys>
→<PMI_Fee>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If PMI has been requested on the loan, and if a number of up front payments have been specified, then this element will hold the total PMI fee for all upfront payments.
Attributes: None
🟥 <Accrual>
Element Type | Data Type |
---|---|
Parent | - |
This element groups together interest accrual information, such as the accrual method used, days to the first payment, and the loan’s maturity date.
<Accrual>
<Method>Actual/365 US Rule</Method>
<Days1Pmt DayCount="Actual">74</Days1Pmt>
<Maturity>2015-07-01</Maturity>
</Accrual>
Attributes: None
🟥 <Accrual>
→<Method>
Element Type | Data Type |
---|---|
Data | Text |
The <Method>
element contains a textual description of the interest accrual
method used to compute the loan (e.g. "Unit Period 365 Simple").
Attributes: None
🟥 <Accrual>
→<Days1Pmt>
Element Type | Data Type |
---|---|
Data | Integer |
This element contains the number of days to the first payment, computed by one of two methods as specified in this element’s sole attribute.
Attributes:
🔸DayCount
🔸 DayCount
Data Type | Values |
---|---|
Enum | Actual , True360 |
Actual
- The actual number of days between these two dates are used.31
would be the day count for the 2024-01-01 to 2024-02-01.True360
- All months have 30 days.30
would be the day count for 2024-01-01 to 2024-02-01.
🟥 <Accrual>
→<Maturity>
(YYYY-MM-DD)
Element Type | Data Type |
---|---|
Data | Date |
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. Hence, a maturity date of February 15, 2020 would be specified as
<Maturity>2020-02-15</Maturity>
.
Attributes: None
🟦 <PMI>
Element Type | Data Type |
---|---|
Empty | - |
The PMI element 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
<Payment>
element, the <PmtStream>
element(s), the
<TotPmts>
element, nor the Pmt
attribute of the
<AmLine>
element.
<PMI Rate="1.00" LTV="100.00" PremiumPerYear="964.08" PremiumPerPeriod="80.34"/>
The element itself contains no data, as all associated PMI data is found in the following attributes:
Attributes:
🔹IndexToRemove
,🔹IndexToWarn
,🔸LTV
,🔸PremiumPerPeriod
,🔸PremiumPerYear
,🔸Rate
🔹 IndexToRemove
Data Type | Default |
---|---|
Integer | 0 |
This attribute only appears if the PercentToRemove PMI input attribute 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.
In the sample above, after four payments are made, the ending principal balance to home value ratio drops below 70%, and hence the calculation engine returns IndexToRemove="4". Note that no PMI is included in the amortization schedule for payment numbers four or greater.
🔹 IndexToWarn
Data Type | Default |
---|---|
Integer | 0 |
This attribute only appears if the PercentToWarn PMI input attribute is specified, and indicates that the payment index on which the remaining principal balance to home value ratio drops below the specified percentage. In the sample above, after three payments are made, the ending principal balance to home value ratio drops below 80%, and hence the calculation engine returns IndexToWarn="3".
🔸 LTV
Data Type |
---|
Decimal |
The loan to value ratio of the computed loan, expressed as a percentage.
🔸 PremiumPerPeriod
Data Type |
---|
Currency |
The periodic PMI premium amount.
🔸 PremiumPerYear
Data Type |
---|
Currency |
The annual PMI premium amount
🔸 Rate
Data Type |
---|
Decimal |
The percentage rate used in the PMI calculation.
🟥 <PmtStream>[]
Element Type | Data Type |
---|---|
Empty | - |
The <PmtStream>
element(s) describe the scheduled stream of payments for the
computed loan in the order paid. Instead of disclosing each and every payment
individually (which can be done with the <AmTable>
element), the
payment streams group together consecutive equal payments to produce a
compressed output view.
The following code translates to "Twelve consecutive payments of $879.31 computed at 10.000% begin on January 22nd, 2024".
<PmtStream Term="12" Pmt="879.31" Rate="10.000" Begin="2024-01-22"/>
Each element describes a single stream of equal payments, using the following attributes to define the important properties of each resulting payment stream:
🔸 Begin
Data Type |
---|
Date |
This attribute contains 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. In the example above, the first payment stream
is scheduled to begin on September 18, 2005. Hence, the Begin attribute for the
first payment stream element would be specified as Begin="2005-09-18"
.
🔸 Pmt
Data Type |
---|
Currency |
The Pmt
attribute contains the computed payment amount for this payment stream.
For the sample payment stream above, the payment amount is 879.31.
🔸 Rate
Data Type |
---|
Decimal |
Contains the interest rate used for the duration of this payment stream. Usually, the interest rate will remain fixed for the duration of the loan unless you are computing an adjustable rate loan or you are computing a LaserPro construction loan with permanent loan attached.
🔸 Term
Data Type |
---|
Integer |
The Term
attribute holds the number of contiguous payments that make up the
given payment stream. In the example payment stream above, the term for the
stream is 12.
🟦 <ProtectionInfo>[]
Element Type | Data Type |
---|---|
Parent | - |
These elements (there may be more than one if more than one type of protection was requested) contain information related to the various protection products requested on the given loan. Each element group provides complete results for each requested product (decreasing life, level life, disability/debt cancellation, involuntary unemployment, or personal property).
🔸 Formula
Data Type | Values |
---|---|
Enum | see Protection Formulas |
The Formula
attribute contains an abbreviated description of the formula used
to compute the desired protection product. The formula codes are described
here.
🔸 Product
Data Type | Values |
---|---|
Enum | Life , Level , Disability , Unemployment , Property |
This attribute informs the calling application to which type of protection product this element refers: decreasing life, level life, disability/debt cancellation, involuntary unemployment or personal property.
🔹 RateType
Data Type | Values |
---|---|
Enum | Fixed , Variable |
Fixed
- Protection rate stays constant during the calculations.Variable
- Protection rate changed from Joint to Single as the loan evolves.
🟥 <ProtectionInfo>
→<CalcResult>
Element Type | Data Type |
---|---|
Data | Text |
This element 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 child elements
of <ProtectionInfo>
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 child elements of
<ProtectionInfo>
, as the product was not computed.
<CalcResult>Valid Calculation</CalcResult>
Attributes: None
🟥 <ProtectionInfo>
→<Cost>
Element Type | Data Type |
---|---|
Empty | - |
Attributes of this empty element 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.
The only time there will be two <Cost>
elements to parse is when the account
has been set up to use Plateau’s Uniguard product, and the user has requested
joint coverage. If this is the case, then two <Cost>
elements are provided to
disclose two premiums instead of a single aggregate joint premium.
<Cost Premium="827.26" PerPmt="19.28" PerDay="0.63" Factor="1.0154"/>
🔸 Factor
Data Type |
---|
Decimal |
The rate factor used to compute the premium for the requested protection product.
🔸 PerDay
Data Type |
---|
Currency |
The daily cost of coverage, expressed in dollars.
🔸 PerPmt
Data Type |
---|
Currency |
The cost of coverage expressed as dollars per payment.
🔸 Premium
Data Type |
---|
Currency |
The total cost for this protection over the term of the loan.
🟥 <ProtectionInfo>
→<Coverage>
Element Type | Data Type |
---|---|
Empty | - |
The aggregate coverage amount and note are provided in the following attributes of this empty element:
<Coverage Amount="75000.00" Note="Partial Coverage of $75,000"/>
🔸 Amount
Data Type |
---|
Currency |
This attribute contains the aggregate coverage amount for this protection product.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🟥 <ProtectionInfo>
→<Benefit>
Element Type | Data Type |
---|---|
Empty | - |
This empty element will only show up for the disability and involuntary unemployment products.
<Benefit Amount="1000.00" Note="Partial Benefit of $1,000"/>
🔸 Amount
Data Type |
---|
Currency |
Attribute which contains the monthly benefit amount for this protection product.
🔸 Note
Data Type |
---|
Text |
This Note
will describe 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.
🔹 Periodic
Data Type | Default |
---|---|
Currency | n/a |
If the account has been configured to disclose periodic benefits (as opposed to
monthly benefit amounts, which are returned in the Amount
attribute described above), and if the specified payment frequency is other than
monthly, then this attribute will be present and will hold the periodic benefit
amount.
🟦 <ProtectionInfo>
→<CovTerm>
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the term of coverage for the requested product. If the request has specified the coverage term, then this element will be populated with that term.
<CovTerm InMonths="75" InPmts="75" Maturity="2018-09-22" Note="Truncated: Keep Benefit"/>
🔹 InDays
Data Type | Default |
---|---|
Integer | n/a |
Attribute which expresses the term of coverage in days. This attribute will only be present for the level life product, and even then only if needed (for example, when covering single payment notes).
🔸 InMonths
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of months.
🔸 InPmts
Data Type |
---|
Integer |
Contains the number of payments covered.
🔸 Maturity
(YYYY-MM-DD)
Data Type |
---|
Date |
This attribute contains the maturity date for the requested coverage. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🟦 <ProtectionInfo>
→<Borrower>[]
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the term of
coverage of a specified borrower, for the requested product. Note that this
element will only be present if the input XML request has specified
ShowBorrowerInfo
= "true"
, and a valid
birthdate was provided. The following attributes are defined for this purpose:
Attributes:
🔸AgeAtIssue
,🔸AgeAtMaturity
,🔸Birthday
,🔸Maturity
,🔸Months
,🔸Note
,🔸Pmts
🔸 AgeAtIssue
Data Type |
---|
Special - see below |
If coverage is written on this borrower, then the value of this attribute 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.
🔸 AgeAtMaturity
Data Type |
---|
Special - see below |
If coverage is written on this borrower, then the value of this attribute 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.
🔸 Birthday
Data Type |
---|
Date |
This attribute contains the birthday associated with the borrower, as specified in the request. All dates are in the form of YYYY-MM-DD, and must be 10 characters long.
🔸 Maturity
Data Type |
---|
Date |
The value of this attribute contains the coverage maturity date for this particular borrower.
🔸 Months
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of months.
🔸 Note
Data Type |
---|
Text |
This Note
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.
🔸 Pmts
Data Type |
---|
Integer |
Contains the term of coverage expressed as a number of payments.
🟦 <ProtectionInfo>
→<Caps>
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the maximum
terms, amounts, and ages associated with the requested product. This element
will only be present if the ShowCaps
attribute
of the <Protection>
element is set to true
.
<Caps Cov="75000" Ben="1000" Term="84" InceptAge="65" AttainAge="66"/>
Attributes:
🔸AttainAge
,🔸Ben
,🔸Cov
,🔸InceptAge
,🔸Term
🔸 AttainAge
Data Type |
---|
Integer |
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.
🔸 Ben
Data Type |
---|
Currency |
Contains the maximum monthly benefit amount, expressed in dollars. If no cap is present or applicable, then a value of zero is returned.
🔸 Cov
Data Type |
---|
Currency |
Contains the maximum aggregate coverage amount, expressed in dollars. If no cap is present or applicable, then a value of zero is returned.
🔸 InceptAge
Data Type |
---|
Integer |
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.
🔸 Term
Data Type |
---|
Integer |
Contains the maximum coverage term, expressed in months. If no cap is present or applicable, then a value of zero is returned.
🟦 <AmTable>
Element Type | Data Type |
---|---|
Parent | - |
This element (if present) contains child elements which describe the loan's
amortization information. This element (and all of its child elements) will only
be present if the HideAmort
property of the
root element of the input query is set to false
.
<AmTable>
Attributes will only occur as feedback data for Canadian APR's.
🔹 AvgBal
Data Type | Default |
---|---|
Currency | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute is the average balance of the loan used in the Canadian APR calculation.
🔹 Months
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🔹 OddDays
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🔹 Weeks
Data Type | Default |
---|---|
Integer | n/a |
This attribute will only appear if a Canadian APR is disclosed for the computed loan. The value of this attribute 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.
🟦 <AmTable>
→<GrandTotals>[]
Element Type | Data Type |
---|---|
Empty | - |
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 the following attributes:
<GrandTotals PmtTot="10551.72" IntTot="551.68" PrinTot="10000.04"/>
Attributes:
🔹AHTot
,🔹CLTot
,🔸IntTot
,🔹IUTot
,🔹PMITot
,🔸PmtTot
,🔸PrinTot
,
🔹 AHTot
Data Type | Default |
---|---|
Currency | 0 |
The AHTot
attribute 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 over the duration
of the loan.
🔹 CLTot
Data Type | Default |
---|---|
Currency | 0 |
The CLTot
attribute 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.
🔸 IntTot
Data Type |
---|
Currency |
Contains the sum of all interest attributes in the AmLine
elements.
This amount will be different from the <Interest>
element if
there is a nonzero EndBal
for the final line of
amortization. The two will differ by this non-zero EndBal
.
🔹 IUTot
Data Type | Default |
---|---|
Currency | 0 |
The IUTot
attribute 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 over the
duration of the loan.
🔹 PMITot
Data Type | Default |
---|---|
Currency | 0 |
The PMITot
attribute 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.
🔸 PmtTot
Data Type |
---|
Currency |
Contains the total of payments scheduled for the computed loan.
🔸 PrinTot
Data Type |
---|
Currency |
Like IntTot
above, this attribute contains the total
amount paid to principal during the loan term, assuming all payments are made as
scheduled.
🟦 <AmTable>
→<SubTotals>[]
Element Type | Data Type |
---|---|
Empty | - |
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 <SubTotals>
element present. The element itself is empty, as all the
interesting categories are found in the following attributes:
<SubTotals Year="2024" Start="1" Events="12" PmtSub="10551.72" IntSub="551.68" PrinSub="10000.04"/>
Attributes:
🔹AHSub
,🔹CLSub
,🔸Events
,🔸IntSub
,🔹IUSub
,🔹PMISub
,🔸PmtSub
,🔸PrinSub
,🔸Start
,🔸Year
🔹 AHSub
Data Type | Default |
---|---|
Currency | 0 |
The AHSub
attribute 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
.
🔹 CLSub
Data Type | Default |
---|---|
Currency | 0 |
The CLSub
attribute 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
.
🔸 Events
Data Type |
---|
Integer |
This attribute defines the number of amortization events (contained in
<AmLine>
elements which are defined below) which belong to this
calendar Year
.
🔸 IntSub
Data Type |
---|
Currency |
Holds the total amount paid to interest over the Year
in
question, assuming all payments are made as scheduled.
🔹 IUSub
Data Type | Default |
---|---|
Currency | 0 |
The IUSub
attribute 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
.
🔹 PMISub
Data Type | Default |
---|---|
Currency | 0 |
The PMISub
attribute 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 upfront periodic PMI premiums) for PMI during
the Year
.
🔸 PmtSub
Data Type |
---|
Currency |
Contains the total of payments scheduled for the Year
in
question.
🔸 PrinSub
Data Type |
---|
Currency |
Like IntSub
above, this attribute contains the total
amount paid to principal during the Year
in question,
assuming all payments are made as scheduled.
🔸 Start
Data Type |
---|
Integer |
This attribute defines the first amortization event which falls in the specified
calendar Year
. To find the <AmLine>
element
which corresponds to this value, match the Idx attribute of the
<AmLine>
element with the integer value reported by this attribute.
🔸 Year
Data Type |
---|
Integer |
The given calendar year for which the subtotal data is applicable.
🟥 <AmTable>
→<AmLine>[]
Element Type | Data Type |
---|---|
Empty | - |
There is one <AmLine>
element 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.) However, some loan protection methods (TruStage's monthly
renewable product, to be exact) have amortization events which correspond to
loan protection premiums being added to the loan balance on specific dates.
<AmLine Idx="1" Date="2024-01-01" BegBal="10000.00" Pmt="879.31" Int="84.93" Prin="794.38" EndBal="9205.62"/>
As with the <GrandTotals>
and <SubTotals>
elements, this element is empty and contains all of the useful information for a
given point in the amortization of a loan in the following attributes.
Attributes:
🔹AH
,🔸BegBal
,🔹CL
,🔸Date
,🔸EndBal
,🔸Idx
,🔸Int
,🔹MaxInt
,🔹MaxPnI
,🔹MaxPrin
,🔹MinInt
,🔹MinPnI
,🔹MinPrin
,🔹PMI
,🔸Pmt
,🔸Prin
,🔹UnpaidInt
🔹 AH
Data Type | Default |
---|---|
Currency | 0 |
The AH
attribute 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.
🔸 BegBal
Data Type |
---|
Currency |
The principal balance before the amortization event occurs.
🔹 CL
Data Type | Default |
---|---|
Currency | 0 |
The CL
attribute 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.
🔸 Date
Data Type |
---|
Currency |
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.
🔸 EndBal
Data Type |
---|
Currency |
The principal balance amount, after the amortization event has taken place.
🔸 Idx
Data Type |
---|
Integer |
The index of the amortization event, which is either the payment number, or zero. A value of zero designates a protection premium that was charged on a date other than a payment date. (Occurs with protection category "TrueMOB").
🔸 Int
Data Type |
---|
Currency |
The amount of the payment which goes to pay interest.
🔹 IU
Data Type | Default |
---|---|
Currency | 0 |
The IU
attribute 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.
🔹 MaxInt
Data Type | Default |
---|---|
Currency | - |
The value of this attribute represents the amount of the
MaxPnI
payment which has been used to pay interest. This
attribute will only be present if the MaxPnI
attribute is
present and if the request included <TILARESPA2015
MaxPnIDetails
= "true" />
.
🔹 MaxPnI
Data Type | Default |
---|---|
Currency | - |
If the ARM loan specified a maximum lifetime interest rate (see
<MaxRate>
), and if TILA RESPA data has been requested
(using the <TILARESPA2015>
element), then this attribute
will be present in each <AmLine>
element that represents a payment.
The value of this attribute represents the maximum principal and interest
payment possible, should the index + margin rate trend towards the maximum
lifetime rate after the teaser term has expired.
🔹 MaxPrin
Data Type | Default |
---|---|
Currency | - |
The value of this attribute represents the amount of the
MaxPnI
payment which has been used to pay down the principal
balance. This attribute will only be present if the MaxPnI
attribute is present and if the request included
<TILARESPA2015
MaxPnIDetails
= "true" />
.
🔹 MinInt
Data Type | Default |
---|---|
Currency | - |
The value of this attribute represents the amount of the
MinPnI
payment which has been used to pay interest. This
attribute will only be present if the MinPnI
attribute is
present and if the request included <TILARESPA2015
MinPnIDetails
= "true" />
.
🔹 MinPnI
Data Type | Default |
---|---|
Currency | - |
If the ARM loan specified a minimum lifetime interest rate (see
<MinRate>
), and if TILA RESPA data has been requested
(using the <TILARESPA2015>
element), then this attribute
will be present in each <AmLine>
element that represents a payment.
The value of this attribute represents the minimum principal and interest
payment possible, should the index + margin rate trend towards the minimum
lifetime rate after the teaser term has expired.
🔹 MinPrin
Data Type | Default |
---|---|
Currency | - |
The value of this attribute represents the amount of the
MinPnI
payment which has been used to pay down the principal
balance. This attribute will only be present if the MinPnI
attribute is present and if the request included
<TILARESPA2015
MinPnIDetails
= "true" />
.
🔹 PMI
Data Type | Default |
---|---|
Currency | 0 |
This attribute contains the PMI premium for this payment.
🔸 Pmt
Data Type |
---|
Currency |
The amount of the payment (or zero if the event is a "TrueMOB" protection premium).
🔸 Prin
The amount of the payment which goes to reduce the principal balance.
🔹 UnpaidInt
Data Type | Default |
---|---|
Currency or Decimal | 0 |
This attribute 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 places. If rounded, then the unpaid interest is displayed to two (2) decimal places.
🟦 <Metavante>
Element Type | Data Type |
---|---|
Empty | - |
This element will only be present if the
Metavante
attribute of the root element is
set to true
. The element itself is empty, as all of the useful information is
in the following attributes:
Attributes:
🔸FormsTerm
,🔸HostTerm
🔸 FormsTerm
Data Type |
---|
Integer |
The number of months in the loan, as computed using the Metavante FORMS method.
🔸 HostTerm
Data Type |
---|
Integer |
The number of months in the loan, as computed using the Metavante HOST method.
Auto Prompts
The Auto Prompts module allows the calling application to build up a final proceeds amount based upon the usual elements found in an auto or boat sale. Thus, the price, down payment, trade in value, and taxes are just some of the elements taken into consideration.
Sample Request
The following is a sample request for an Auto Prompts calculation:
<inAUTO>
<Price>55000.00</Price>
<CashDown>10000.00</CashDown>
<GrossTrade>5000.00</GrossTrade>
<Lien>225</Lien>
<Rebate ApplyToBalance="true">500.00</Rebate>
<ServiceContract>150.00</ServiceContract>
<TaxedFees>50.00</TaxedFees>
<NonTaxedFees>75.00</NonTaxedFees>
<Tax Method="PriceTrade" Rate="7.250" RebateReduce="true"></Tax>
<LuxTax Rate="10.000" Threshold="50000.00" />
</inAUTO>
Sample Response
The following is a sample response generated by the previous sample request:
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE outAUTO SYSTEM "outAUTO.dtd">
<outAUTO>
<Results>
<Description>Valid Calculation</Description>
<Proceeds>44092.38</Proceeds>
</Results>
<Auto>
<Price>55000.00</Price>
<Tax Rate="7.25" Method="PriceTrade">3592.38</Tax>
<LuxTax Rate="10.000" Threshold="50000.00">500.00</LuxTax>
<PricePlusTax>49550.00</PricePlusTax>
<CashDown>10000.00</CashDown>
<GrossTrade>5000.00</GrossTrade>
<Lien>225.00</Lien>
<Rebate ApplyToBalance="true">500.00</Rebate>
<TotalDown>15275.00</TotalDown>
<ServiceContract>150.00</ServiceContract>
<TaxedFees>50.00</TaxedFees>
<NonTaxedFees>75.00</NonTaxedFees>
<TotalVehicleFees>275.00</TotalVehicleFees>
</Auto>
</outAUTO>
Auto Prompts - Request
Please see the Legend to understand the conventions used to document each element and attribute. Note that for requests, the XML elements are documented in alphabetical order by parent element.
Element | Attributes |
---|---|
<inAUTO> | |
<CashDown> | |
<Format> | 🔹CurrencyDecimals ,🔹DateFormat , 🔹DateSeparator , 🔹DecimalSeparator ,🔹StrictDP ,🔹ThousandSeparator |
<GrossTrade> | |
<Lien> | |
<LuxTax> | 🔸Rate , 🔸Threshold |
<NonTaxedFees> | |
<Price> | |
<Rebate> | 🔹ApplyToBalance |
<ServiceContract> | |
<Tax> | 🔹Method , 🔸Rate , 🔹RebateReduce |
<TaxedFees> |
🟥 <inAUTO>
Element Type | Data Type |
---|---|
Parent | - |
This is the root element of the XML auto prompts request, and is required. This element is empty, and thus contains neither data nor child elements.
Attributes: None
🟦 <CashDown>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
The value of this element represents a cash down payment made at closing. If specified and greater than zero, this amount will be deducted from the Price, reducing the principal balance. If not specified, the cash down payment will default to zero.
Attributes: None
🟦 <Format>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | see attribute defaults |
The <Format>
element is one of the first elements parsed from a request, as the
attributes of this empty element affect how date and numeric values are parsed
and validated.
Attributes:
🔹CurrencyDecimals
,🔹DateFormat
,🔹DateSeparator
,🔹DecimalSeparator
,🔹StrictDP
,🔹ThousandSeparator
🔹 CurrencyDecimals
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 | 2 |
When displaying and parsing Currency values, the value of this attribute
determines the maximum number of decimal places allowed after the
DecimalSeparator
.
🔹 DateFormat
Data Type | Values | Default |
---|---|---|
Enum | YMD , MDY , DMY | YMD |
When displaying and parsing Date values, this field determines the expected
format for all Date fields. The following DateFormat
options are allowed:
YMD
- All dates should be formatted as YYYY-MM-DD.MDY
- All dates should be formatted as MM-DD-YYYY.DMY
- All dates should be formatted as DD-MM-YYYY.
Note that the character which separates the individual month, day, and year
portions of the date is configurable via the
DateSeparator
attribute.
🔹 DateSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | - |
When displaying and parsing Date values, this attribute determines the character used to separate the individual month, day, and year portions of a date.
🔹 DecimalSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | . |
When displaying and parsing Currency or Decimal numeric values, this attribute determines the character used to separate the fractional part from the whole.
🔹 StrictDP
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the value of this attribute is true
, then the SCE will strictly verify the
number of decimal places allowed for currency input values. Thus, if the calling
application sends in a request with a currency amount of 1000.005
, the SCE
will return an error code.
If the value of this attribute is false
, then currency values sent in with an
invalid number of decimal places will be rounded to the correct number of
decimal places by the SCE (using five/four rounding), and a warning message with
this information will be returned with the response.
🔹 ThousandSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | , |
When displaying numeric values, this attribute determines the character used to separate the thousands places from the hundreds. Note that when parsing numeric values, the value of this attribute is ignored.
🟦 <GrossTrade>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
The gross dollar value of the trade in. If specified and greater than zero, this amount will be deducted from the price, reducing the principal balance. If not specified, the gross trade value will default to zero.
Attributes: None
🟦 <Lien>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
The value of this element should hold any payoff amount required for the trade-in. If specified and greater than zero, this amount will be added to the price, increasing the principal balance. If not specified, then the lien amount will default to zero.
Attributes: None
🟦 <LuxTax>
Element Type | Data Type |
---|---|
Empty | - |
A luxury tax is a tax on non-essential goods (such as expensive cars, boats, etc.). The element itself is empty, and if not present, the luxury tax will be set to zero. To compute the luxury tax, the following attributes need to be specified:
Attributes:
🔸Rate
,🔸Threshold
🔸 Rate
Data Type | Values |
---|---|
Decimal | >= 0 |
This attribute specifies the rate to be used to compute the luxury tax.
🔸 Threshold
Data Type | Values |
---|---|
Currency | > 0 |
If the vehicle price exceeds this threshold amount, then luxury tax is computed on the difference between the vehicle price and the threshold amount. If the vehicle price is less than or equal to the threshold amount, then there will be no luxury tax.
🟦 <NonTaxedFees>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
This element represents the sum of all financed fees on which tax will not be computed. If specified and greater than zero, then this amount will be added to the principal balance and total vehicle fees amount. If not specified, this amount will default to zero.
Attributes: None
🟥 <Price>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | > 0 |
This element specifies the cost of a vehicle. The dollar amount should be
expressed as a number. For example, if a vehicle costs $55,000, then you would
include <Price>55000.00</Price>
in the XML request.
Attributes: None
🟦 <Rebate>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
This element represents a rebate amount given to the customer at time of
purchase. If specified and greater than zero, this amount will either be
deducted from the price plus tax amount, or may be considered as a separate
amount returned to the borrower (see the ApplyToBalance
attribute definition
below for further information). If not specified, the rebate amount will default
to zero. This element has a single possible attribute:
Attributes:
🔹ApplyToBalance
🔹 ApplyToBalance
(#rebate.applytobalance)
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
If set to true, then the rebate amount specified above is applied o the, balance, l, wering it by the rebate amount. If false, then the rebate does not decrease the balance and is assumed to be given directly to the borrower.
🟦 <ServiceContract>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
This element represents the cost of an extended warranty or service contract sold at the time of closing. If specified and greater than zero, this amount will be added to the principal balance and added to the total vehicle fees. If not specified, the service contract amount will default to zero.
Attributes: None
🟦 <Tax>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
The Tax element determines how and if sales tax is computed. If a precomputed tax amount is being sent to the SCEX, then the value of this element should contain the tax amount. If this element is not present, then a tax amount of zero will be assumed. The following attributes determine how tax is computed:
Attributes:
🔹Method
,🔸Rate
,🔹RebateReduce
🔹 Method
Data Type | Values | Default |
---|---|---|
Enum | PromptTax , Price , PriceTrade , PriceTradeLien | PromptTax |
This attribute determines whether or not the SCEX will accept a precomputed tax amount, or if it needs to compute the tax. PromptTax means that the tax amount has already been computed, and this value is contained in the element. The other three values indicate that tax will be computed by the SCEX, and each specified the base amount on which the tax will be computed.
PromptTax
- Tax has already been computed as a side-calculation, and is directly entered as input.Price
- Base amount is entered vehicle price.PriceTrade
- Base amount is entered vehicle price less gross trade value.PriceTradeLien
- Base amount is entered vehicle price less gross trade value- any lien.
🔸 Rate
Data Type | Values |
---|---|
Decimal | > 0 |
This attribute specifies the rate to be used to compute the tax, should the
value of the Method
attribute above be anything other than PromptTax.
🔹 RebateReduce
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
The value of this attribute determines if any rebate amount specified reduces the amount on which tax is computed. A value of true will reduce the taxable amount by the specified rebate amount, whereas a value of false will not change the taxable amount.
🟦 <TaxedFees>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
The value of this element holds the sum of all financed fees which are taxable. If specified and greater than zero, then this amount will be added to the principal balance, price plus tax amount, and total vehicle fees amount. If not specified, this amount will default to zero.
Attributes: None
Auto Prompts - Response
Please see the Legend to understand the conventions used to document each element and attribute. Note that for responses, the XML elements are documented in the order that they appear in the response.
Element | Attributes |
---|---|
<outAUTO> | |
<Results> | |
<Description> | |
<XMLDetail>[] | |
<Proceeds> | |
<Auto> | |
<Price> | |
<Tax> | |
<LuxTax> | |
<PricePlusTax> | |
<CashDown> | |
<GrossTrade> | |
<Lien> | |
<Rebate> | |
<TotalDown> | |
<ServiceContract> | |
<TaxedFees> | |
<NonTaxedFees> | |
<TotalVehicleFees> |
🟥 <outAUTO>
Element Type | Data Type |
---|---|
Parent | - |
This is the root element of the XML response, and is required. This element simply acts as a container for all of the result child elements.
Attributes: None
🟥 <Results>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which describe the success or failure of the calculation, as well as any XML messages.
Attributes: None
🟥 <Results>
→<Description>
Element Type | Data Type |
---|---|
Data | Text |
If the calculation was completed successfully, then this element will contain
the value Successful Calculation
. Otherwise, this element will contain a
description of the problem encountered during the attempted computation.
Attributes: None
🟦 <Results>
→<XMLDetail>[]
Element Type | Data Type | Default |
---|---|---|
Data | Text | NULL |
The <XMLDetail>
elements are messages passed back to the calling application
which detail the status of the XML request. If the SCEX issues any warnings
regarding unrecognized elements or attributes, then each warning message will be
displayed in an <XMLDetail>
element.
Attributes: None
🟥 <Results>
→<Proceeds>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | >0 |
The computed number which represents the dollar amount remaining after taking into account the vehicle price, down payment, trade-in, taxes, etc. This value could then be used as the proceeds amount for a loan calculation request.
Attributes: None
🟥 <Auto>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which contain the results of the auto prompts calculation.
Attributes: None
🟥 <Auto>
→<Price>
Element Type | Data Type |
---|---|
Data | Currency |
The vehicle price, as specified in the request.
Attributes: None
🟦 <Auto>
→<Tax>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If the input requested that tax be computed, this element will contain the tax amount. Note that the two attributes Rate and Method will contain the same values as found in the input XML request.
Attributes: None
🟦 <Auto>
→<LuxTax>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If luxury tax was calculated, then this element will contain the luxury tax amount. Note that the two attributes Rate and Threshold will contain the same values as found in the input XML request.
Attributes: None
🟥 <Auto>
→<PricePlusTax>
Element Type | Data Type |
---|---|
Data | Currency |
The vehicle price plus all computed taxes.
Attributes: None
🟦 <Auto>
→<CashDown>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a cash down payment was specified in the XML input request, then this element will hold its value. Otherwise, this element will not be displayed.
Attributes: None
🟦 <Auto>
→<GrossTrade>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a gross trade-in value was specified in the XML input request, then this element will hold its value. Otherwise, this element will not be displayed.
Attributes: None
🟦 <Auto>
→<Lien>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a lien amount was specified in the XML input request, then this element will hold its value. Otherwise, this element will not be displayed.
Attributes: None
🟦 <Auto>
→<Rebate>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a rebate amount was specified in the XML input request, then this element will hold its value. Otherwise, this element will not be displayed. Note that the ApplyToBalance attribute will contain the same value as found in the input XML request.
Attributes: None
🟦 <Auto>
→<TotalDown>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This value of this element represents the total down payment for the vehicle. It is equal to the cash down plus gross trade-in, less the lien amount, and plus any rebate if it is applied to the balance.
Attributes: None
🟦 <Auto>
→<ServiceContract>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If a service contract amount was specified in the XML input request, then this element will hold its value. Otherwise, this element will not be displayed.
Attributes: None
🟦 <Auto>
→<TaxedFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If any taxed fees were included in the XML input request, then this element will hold its value. Otherwise, this element will not be displayed.
Attributes: None
🟦 <Auto>
→<NonTaxedFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If any non-taxed fees were included in the XML input request, then this element will hold its value. Otherwise, this element will not be displayed.
Attributes: None
🟦 <Auto>
→<TotalVehicleFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
If present, this element holds the sum of the vehicle service contract, taxable fees, and non-taxable fees. If not present, the total of vehicle fees is zero.
Attributes: None
Dealer Reserve
Banks will sometimes use auto dealers as intermediaries to acquire customers in need of financing. Dealer Reserve refers to an amount given as a commission or payment to a dealer or other indirect loan source as compensation for generating the loan.
Sample Request
The following is a sample request for a dealer reserve calculation:
<inDEALER_RESERVE Account="1" AccrualCode="201"
DataDirPath="C:\Work\WinLoan32\compile\"
Method="DifferenceInRates" PPY="12">
<LoanDate>2003-06-06</LoanDate>
<PmtDate>2003-07-06</PmtDate>
<Term>36</Term>
<AmtFin>10000.00</AmtFin>
<Payment>322.67</Payment>
<Final>322.67</Final>
<FinChg>0.00</FinChg>
<ProcFee>25</ProcFee>
<BuyRate>8.000</BuyRate>
<NoteRate>10.000</NoteRate>
<ReservePercent>95.000</ReservePercent>
<FlatFee>0.0</FlatFee>
</inDEALER_RESERVE>
Sample Response
The following is a sample response generated by the previous sample request:
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE outACCOUNT SYSTEM "outACCOUNT.dtd" >
<outDEALER_RESERVE>
<Results>
<Description>Successful Calculation</Description>
</Results>
<GrossReserve>1000.00</GrossReserve>
<DealerReserve FlatFeeUsed="false">800.00</DealerReserve>
<BankReserve>200.00</BankReserve>
<RegZAPR APRCheck="pass">10.021</RegZAPR>
</outDEALER_RESERVE>
Dealer Reserve - Request
Please see the Legend to understand the conventions used to document each element and attribute. Note that for requests, the XML elements are documented in alphabetical order by parent element.
Element | Attributes |
---|---|
<inDEALER_RESERVE> | 🔹Account , 🔹AccrualCode , 🔹DataDirPath , 🔹Method , 🔹PPY |
<AmtFin> | |
<BuyRate> | |
<Final> | |
<FinChg> | |
<FlatFee> | |
<Format> | 🔹CurrencyDecimals ,🔹DateFormat , 🔹DateSeparator , 🔹DecimalSeparator ,🔹StrictDP ,🔹ThousandSeparator |
<LoanDate> | |
<NoteRate> | |
<Payment> | |
<PmtDate> | |
<ProcFee> | |
<ReservePercent> | |
<Term> |
🟥 <inDEALER_RESERVE>
Element Type | Data Type |
---|---|
Parent | - |
This is the root element of the XML Dealer Reserve message, and is required.
This contains child elements which specify the particulars of the requested
calculation, as well as calculation results. Many of the attributes for this
element are identical in function and name as those defined in the chapter on
Equal Payment loans. The following new attributes of the <inDEALER_RESERVE>
element are:
Attributes:
🔹Account
,🔹AccrualCode
,🔹DataDirPath
,🔹Method
,🔹PPY
🔹 Account
Data Type | Values | Default |
---|---|---|
Integer | [1...9999] | 1 |
This attribute specifies which account should be used to compute the requested
loan. Each account is numbered from 1 to 9,999, and each account corresponds to
a set of setup files which define numerous settings which may affect the loan
calculation, such as the accrual method, insurance methods and rates, etc. If
this attribute is not specified, a default value of 1
will be used.
🔹 AccrualCode
Data Type | Values | Default |
---|---|---|
Enum | See table | default |
This property allows an accrual method to be used other than the accrual method dictated by the setup file for the given account. If no accrual code attribute is specified, the method defined in the setup file will be used. The Accrual Code Table lists all valid accrual codes available. Note that for the split rate accrual codes (i.e. those above 500), the split rate tiers must be defined in the setup file.
🔹 DataDirPath
Data Type | Values | Default |
---|---|---|
Text | See below | See below |
If this attribute is set, the SCE will look for a data folder containing the
setup files in the path specified. Thus, if the DataDirPath
is set to
C:\SCEX\
, the SCE will look for the setup files in C:\SCEX\data
.
If the calling application wishes to specify the data directory path in its
entirety (e.g. the calling app does not want the SCE to append \data
to the
provided path), then simply terminate the specified DataDirPath
with an
asterisk (*
). Thus, if the DataDirPath
is set to C:\SCEX\bank1\*
, the SCE
will look for the setup files in C:\SCEX\bank1\
.
If this attribute is not set, the SCE will attempt to locate the data folder in
the default data directory path location, which can be retrieved using the
<inVERSION>
module query, and set via the SCE API.
This attribute is useful if you wish to use only a single installation of the
SCE, but have many different setup file groupings. By specifying a different
DataDirPath
for each grouping, you can easily separate the groups from one
another instead of grouping them all together in a single directory.
🔹 Method
Data Type | Values | Default |
---|---|---|
Enum | RatioOfRates , DifferenceInRates , DifferenceInFinCharges | RatioOfRates |
This attribute defines how the reserve is to be computed.
-
RatioOfRates
- Compute the gross reserve factor as the ratio of the difference between the Note Rate and the Buy Rate to the Note rate: Gross reserve factor = (NoteRate - BuyRate) / NoteRate. If the Finance Charge is entered as data, apply the factor to the Finance Charge. If the Finance Charge is not entered, apply the factor to the computed Finance Charge = (<Term>
- 1) *<Payment>
+<Final>
-<AmtFin>
. -
DifferenceInRates
- Compute a loan based on accrual settings using a rate equal to the NoteRate - Buy Rate, and set the Gross Reserve equal to the computed Finance Charge. -
DifferenceInFinCharges
- Compute a loan based on the Buy Rate. If the Finance Charge is entered as data, set the Gross Reserve equal to the entered Finance Charge minus the Finance Charge computed at the Buy Rate. If the Finance Charge is not entered, compute the Finance Charge at the Note Rate as (<Term>
- 1) *<Payment>
+<Final>
-<AmtFin>
. Take the difference between this Finance Charge and the Finance Charge at the Buy Rate, and set the Gross Reserve equal this amount.
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | See below | monthly |
PPY is an abbreviation for payments per year, and as one might surmise,
determines the payment frequency for the loan. The default value of monthly
will
result in a loan with 12 payments per year. If you require a loan with a payment
frequency other than monthly, specify it using this attribute.
Value | Translation | Description |
---|---|---|
1 | Annual | Once Per Year |
2 | SemiAnnual | Twice Per year (every six months) |
4 | Quarterly | Four per year (every three months) |
6 | Bimonthly | Six per year (every two months) |
12 | Monthly | Twelve per year (every month) |
24 | Semimonthly | Twice Per Month* |
26 | Biweekly | Every two weeks |
52 | Weekly | Every week |
* Semimonthly loans are characterized by making two payments per month on the same days. A common semimonthly schedule is to make payments every 1st and 16th of the month. Another common schedule is the 15th and the end of every month.
🟥 <AmtFin>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | > 0 |
The Amount Financed value of the transaction. This amount is assumed to be the amount earning interest (i.e. no prepaid charges).
Attributes: None
🟥 <BuyRate>
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | [-99.999...600] |
The rate at which the dealer made his or her purchase (must be less than the
<NoteRate>
). The buy rate should be expressed as a percentage.
For example, a buy rate of 8% would be specified as <BuyRate>8.000</BuyRate>
.
Attributes: None
🟦 <Final>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
The final payment computed for the customer at the Dealer Rate. If this element
is not used, the <Payment>
will be used as the final payment. If
the <Final>
is different from the <Payment>
, the loan is
considered a balloon loan.
Attributes: None
🟦 <FinChg>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
The finance charge computed at the Note Rate. If this element is zero or not
used, the Finance Charge is computed as (<Term>
- 1) *
<Payment>
+ <Final>
- <AmtFin>
.
Attributes: None
🟦 <FlatFee>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
If a flat fee is used instead of a computed reserve amount, that amount is entered here. In this case, a reserve amount is not computed. This flat fee is registered as the Dealer Reserve in the output.
Attributes: None
🟦 <Format>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | see attribute defaults |
The <Format>
element is one of the first elements parsed from a request, as the
attributes of this empty element affect how date and numeric values are parsed
and validated.
Attributes:
🔹CurrencyDecimals
,🔹DateFormat
,🔹DateSeparator
,🔹DecimalSeparator
,🔹StrictDP
,🔹ThousandSeparator
🔹 CurrencyDecimals
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 | 2 |
When displaying and parsing Currency values, the value of this attribute
determines the maximum number of decimal places allowed after the
DecimalSeparator
.
🔹 DateFormat
Data Type | Values | Default |
---|---|---|
Enum | YMD , MDY , DMY | YMD |
When displaying and parsing Date values, this field determines the expected
format for all Date fields. The following DateFormat
options are allowed:
YMD
- All dates should be formatted as YYYY-MM-DD.MDY
- All dates should be formatted as MM-DD-YYYY.DMY
- All dates should be formatted as DD-MM-YYYY.
Note that the character which separates the individual month, day, and year
portions of the date is configurable via the
DateSeparator
attribute.
🔹 DateSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | - |
When displaying and parsing Date values, this attribute determines the character used to separate the individual month, day, and year portions of a date.
🔹 DecimalSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | . |
When displaying and parsing Currency or Decimal numeric values, this attribute determines the character used to separate the fractional part from the whole.
🔹 StrictDP
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the value of this attribute is true
, then the SCE will strictly verify the
number of decimal places allowed for currency input values. Thus, if the calling
application sends in a request with a currency amount of 1000.005
, the SCE
will return an error code.
If the value of this attribute is false
, then currency values sent in with an
invalid number of decimal places will be rounded to the correct number of
decimal places by the SCE (using five/four rounding), and a warning message with
this information will be returned with the response.
🔹 ThousandSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | , |
When displaying numeric values, this attribute determines the character used to separate the thousands places from the hundreds. Note that when parsing numeric values, the value of this attribute is ignored.
🟥 <LoanDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= 1900-01-01 |
This element contains the date on which interest begins to accrue. All dates
must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a loan date
of June 6, 2003 would be specified as <LoanDate>2003-06-06</LoanDate>
.
Attributes: None
🟥 <NoteRate>
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | `[-99.999...600] |
The rate at which the dealer sold the unit. The note rate should be expressed as
a percentage. For example, a note rate of 10% would be specified as
<NoteRate>10.000</NoteRate>
. This rate is assumed to be equal to the
Regulation Z APR for purposes of APR verification.
Attributes: None
🟥 <Payment>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | > 0 |
The regular payment computed for the customer at the Dealer Rate.
Attributes: None
🟥 <PmtDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= <LoanDate> |
This element contains the date on which the first payment of the loan is made,
and must be on or after the loan date. All dates must be in the form of
YYYY-MM-DD, and be 10 characters long. Hence, a first payment date of July 6,
2003 would be specified as <PmtDate>2003-07-06</PmtDate>
.
Attributes: None
🟦 <ProcFee>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
If a processing fee is charged (which diminishes the net Dealer Reserve), it should be placed in this element.
Attributes: None
🟥 <ReservePercent>
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | [0..100] |
The distribution of the Gross Reserve between the dealer and the original
lender. The reserve percent should be expressed as a percentage. For example, if
the dealer should receive 95% of the gross revenue (less any processing fees),
then it would be specified as <ReservePercent>95.000</ReservePercent>
.
Attributes: None
🟥 <Term>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | > 0 |
The term indicates the number of payments to be made at the specified payment frequency, after which the loan is scheduled to be paid off.
Attributes: None
Dealer Reserve - Response
Please see the Legend to understand the conventions used to document each element and attribute. Note that for responses, the XML elements are documented in the order that they appear in the response.
Element | Attributes |
---|---|
<outDEALER_RESERVE> | |
<Results> | |
<Description> | |
<XMLDetail>[] | |
<GrossReserve> | |
<DealerReserve> | 🔸FlatFeeUsed |
<BankReserve> | |
<RegZAPR> | 🔸APRCheck |
🟥 <outDEALER_RESERVE>
Element Type | Data Type |
---|---|
Parent | - |
This is the root element of the XML response, and is required. This element simply acts as a container for all of the result child elements.
Attributes: None
🟥 <Results>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which describe the success or failure of the calculation, as well as any XML messages.
Attributes: None
🟥 <Results>
→<Description>
Element Type | Data Type |
---|---|
Data | Text |
If the calculation was completed successfully, then this element will contain
the value Successful Calculation
. Otherwise, this element will contain a
description of the problem encountered during the attempted computation.
Attributes: None
🟦 <Results>
→<XMLDetail>[]
Element Type | Data Type | Default |
---|---|---|
Data | Text | NULL |
The <XMLDetail>
elements are messages passed back to the calling application
which detail the status of the XML request. If the SCEX issues any warnings
regarding unrecognized elements or attributes, then each warning message will be
displayed in an <XMLDetail>
element.
Attributes: None
🟥 <GrossReserve>
Element Type | Data Type |
---|---|
Data | Currency |
The Gross Dealer Reserve is returned in this element. This reserve represents the total reserve before being distributed between the bank and the dealer.
Attributes: None
🟥 <DealerReserve>
Element Type | Data Type |
---|---|
Data | Currency |
The portion of the gross reserve dedicated to the dealer is reported in this element. The calculation is as follows: Dealer Reserve = GrossReserve * ReservePercent - ProcFee.
Attributes:
🔸FlatFeeUsed
🔸 FlatFeeUsed
Data Type | Values |
---|---|
Boolean | true , false |
This attribute of the Dealer Reserve element informs the calling application if the disclosed Dealer Reserve is the result of a calculation (false or 0) or a flat fee passed as input (true or 1).
🟥 <BankReserve>
Element Type | Data Type |
---|---|
Data | Currency |
This element discloses the amount of the Gross Reserve owed to the Bank.
Attributes: None
🟥 <RegZAPR>
Element Type | Data Type |
---|---|
Data | Decimal |
The computed Regulation Z APR of the original loan made to the borrower.
Attributes:
🔸APRCheck
🔸 APRCheck
Data Type | Values |
---|---|
Enum | pass , fail , untested |
If the APR entered during input (see <NoteRate>
) is
within compliance of Regulation Z, this attribute value will be set to pass
;
otherwise, fail
will be reported. If an error was reported during the
calculation and the data was not adequate to make the test, untested
will be
reported.
Open End Lending
An open end loan (also known as a line of credit) is a type of credit arrangement issued by a financial institution which offers an individual immediate access to a predetermined amount of cash upon demand without having to apply for a loan. Each month, a periodic disclosure is provided, which usually contains a minimum payment which is computed based upon the amount of funds drawn from the credit line (the balance) at the time of the calculation. As with closed end loans, protection products may be included with the calculation.
Sample Request
The following is a sample XML request for an open end loan calculation:
<inOpenEnd Account="2" BCPY="12" UseMAPR="true">
<BeginDate>2001-01-01</BeginDate>
<TimeToPmt TimeUnits="Days">30</TimeToPmt>
<Balance>1000</Balance>
<IntRate AccrualCode="220">9.000</IntRate>
<Payment FloorPmt="0" PmtType="IntOnly">0</Payment>
<Fee Name="ProcFee" Entry="5" AddToFinChg="true" MAPR="true" />
<Protection ShowCaps="false">
<Life Covers="both" />
<Dis Plan="0" Covers="borrower1" />
<Birthday1>1966-01-01</Birthday1>
<Birthday2>1966-04-01</Birthday2>
</Protection>
</inOpenEnd>
Sample Response
The following is a sample XML result generated by the previous sample request:
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE outOpenEnd SYSTEM "outOpenEnd.dtd" >
<outOpenEnd>
<Results>
<Description>Successful Calculation</Description>
</Results>
<RegZAPR FinChg="32.40">38.880</RegZAPR>
<MAPR FinChg="34.70" Max="36.000" MaxExceeded="true">41.640</MAPR>
<FinChgFees>25.00</FinChgFees>
<MAPRFees>27.30</MAPRFees>
<Fee Name="ProcFee">25.00</Fee>
<PaymentInfo>
<Interest Method="Actual/365 Simple">7.40</Interest>
<PrinReduction>0.00</PrinReduction>
<TotProtection PerDay="0.08">2.30</TotProtection>
<Payment Warning="None" Days="30" Date="2001-01-31">9.70</Payment>
<Payoff>1009.70</Payoff>
</PaymentInfo>
<ProtectionInfo Age="35" Product="Life">
<CalcResult>Valid Calculation</CalcResult>
<Cost Premium="1.50" PerDay="0.05" Factor="1.500"/>
<Coverage Amount="1000.00" Note="Full protection"/>
</ProtectionInfo>
<ProtectionInfo Age="35" Product="Disability">
<CalcResult>Valid Calculation</CalcResult>
<Cost Premium="0.80" PerDay="0.03" Factor="0.800"/>
<Benefit Amount="9.70" Note="Full protection"/>
</ProtectionInfo>
</outOpenEnd>
Open End Lending - Request
Please see the Legend to understand the conventions used to document each element and attribute. Note that for requests, the XML elements are documented in alphabetical order by parent element.
Element | Attributes |
---|---|
<inOpenEnd> | 🔹Account , 🔹APRDec , 🔹BCPY , 🔹DataDirPath , 🔹MAPR_Max , 🔹UseMAPR |
<BeginDate> | |
<Balance> | |
<Fee>[] | 🔹AddToFinChg , 🔸Entry , 🔹MAPR , 🔹Name |
<IntRate> | 🔹AccrualCode |
<Limit> | 🔸PercentForBal |
<Payment> | 🔹FloorPmt , 🔹Lastday , 🔹PayoffPercent , 🔹PmtType |
<Protection> | 🔹ShowCaps |
<Birthday1> | |
<Birthday2> | |
<Dis> | 🔹Covers , 🔹Plan |
<Job> | 🔹Covers |
<Lif> | 🔹Covers |
<Term> | |
<TimeToPmt> | 🔹TimeUnits |
🟥 <inOpenEnd>
Element Type | Data Type |
---|---|
Parent | - |
This is the root element of the XML open end query input message, and is
required. This contains child elements which specify the particulars of the
requested calculation. The following attributes of the <inOpenEnd>
element are
defined:
Attributes:
🔹Account
🔹APRDec
🔹BCPY
🔹DataDirPath
🔹MAPR_Max
🔹UseMAPR
🔹 Account
(1..9999)
Data Type | Values | Default |
---|---|---|
Integer | [1...9999] | 1 |
This attribute specifies which account should be used to compute the requested
open end loan. Each account is numbered from 1 to 9,999, and each account
corresponds to a set of setup files which define numerous settings which may
affect the open end calculation, such as insurance rates, etc. If this attribute
is not specified, a default value of 1
will be used.
🔹 APRDec
Data Type | Values | Default |
---|---|---|
Integer | [1...5] | 3 |
The number of decimal places of accuracy for the disclosed APR is determined by this attribute. The default value of this attribute is three (3). Note that for the APR to be computed and disclosed, the BCPY attribute (see below) must be specified.
🔹 BCPY
Data Type | Values | Default |
---|---|---|
Enum | 1 , 2 , 4 , 6 , 12 , 24 , 26 , 52 , 365 , annual , semiannual , quarterly , bi-monthly , monthly , semimonthly , biweekly , weekly , daily , none | none |
The value of this attribute specifies the number of billing cycles per year, and is required to compute the effective annual percentage rate (APR) and MAPR. To remain backwards compatible with previous versions of the SCEX, this attribute is optional. If left unspecified, the value of BCPY is undetermined and the APR and MAPR will not be computed nor disclosed.
🔹 DataDirPath
Data Type | Values | Default |
---|---|---|
Text | See below | See below |
If this attribute is set, the SCE will look for a data folder containing the
setup files in the path specified. Thus, if the DataDirPath
is set to
C:\SCEX\
, the SCE will look for the setup files in C:\SCEX\data
.
If the calling application wishes to specify the data directory path in its
entirety (e.g. the calling app does not want the SCE to append \data
to the
provided path), then simply terminate the specified DataDirPath
with an
asterisk (*
). Thus, if the DataDirPath
is set to C:\SCEX\bank1\*
, the SCE
will look for the setup files in C:\SCEX\bank1\
.
If this attribute is not set, the SCE will attempt to locate the data folder in
the default data directory path location, which can be retrieved using the
<inVERSION>
module query, and set via the SCE API.
This attribute is useful if you wish to use only a single installation of the
SCE, but have many different setup file groupings. By specifying a different
DataDirPath
for each grouping, you can easily separate the groups from one
another instead of grouping them all together in a single directory.
🔹 MAPR_Max
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Decimal | >= 0 | 36 |
If you are computing the Military APR (see UseMAPR below) and wish to override the default maximum APR value of 36%, then specify the desired maximum as the value of this attribute.
🔹 UseMAPR
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this attribute is set to a value of true
or 1
, then the SCEX will compute
the Military APR in addition to the Regulation Z effective APR. The <MAPR>
element will be included in the XML loan response. Note that for the MAPR to be
computed and disclosed, the BCPY attribute (see above) must be specified.
🟥 <BeginDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= 1900-01-01 |
This element contains the date on which interest begins accruing for the
scheduled payment. As an example, assuming that interest should begin accruing
on March 15, 2009, then we would pass in a begin date of
<BeginDate>2009-03-15</BeginDate>
.
Attributes: None
🟦 <Balance>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Decimal | >=0 | 0 |
Contains the outstanding principal balance of the open end loan, on which
interest will be accrued. If the <Balance>
is not specified, then the
<Limit>
must be specified.
Attributes: None
🟦 <Fee>[]
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | No fee |
The <Fee>
element itself contains no data. Instead, all of the information
used to compute the fee is contained in the following attributes of the element:
Attributes:
🔹AddToFinChg
,🔸Entry
,🔹MAPR
,🔹Name
🔹 AddToFinChg
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If this fee should be included in the Reg. Z Finance Charge (and hence, affect the APR), then set this attribute to true. The default value of false indicates that the fee does not affect the Finance Charge nor APR.
🔸 Entry
Data Type | Values |
---|---|
Currency | >= 0 |
The fee amount, expressed in dollars and cents.
🔹 MAPR
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If you wish to compute the Military APR, then certain fees may not be considered Regulation Z APR affecting fees, but are considered Military APR affecting fees. In this case, you will need to set the value of this attribute to true.
Fees which are added to the finance charge (e.g. AddToFinChg="true") are always considered MAPR fees, regardless of the stated value of this attribute.
Note that debt protection products are automatically included in the calculation of the Military APR.
🔹 Name
Data Type | Values | Default |
---|---|---|
Text | any | empty |
This attribute is for convenience purposes only, and does not affect the
calculation of the fee in any manner. If a Name attribute is specified for the
<Fee>
element, then the corresponding <Fee>
element in the XML output will have a Name attribute with the same value. This
allows you to easily differentiate fees in the output XML.
🟥 <IntRate>
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | >=0 |
The rate at which interest will accrue on the outstanding principal balance.
Attributes:
🔹AccrualCode
🔹 AccrualCode
Data Type | Values | Default |
---|---|---|
Enum | See table Below | 220 |
This attribute allows the calling application to specify an accrual method for
use during the open end calculation. If no accrual code attribute is specified,
then a value of 220
is assumed. Please reference the table below for a
description of the numeric accrual codes.
Accrual Code | Description |
---|---|
201 | Unit period simple w/ 360 day divisor |
202 | Unit period simple w/ 365 day divisor |
204 | Unit period simple w/ true 360 calendar and 360 day divisor. |
205 | Unit period simple w/ true 360 calendar and 365 day divisor. |
210 | Actual / 360 simple |
220 | Actual / 365 simple |
230 | Actual / Actual simple |
231 | Actual / Actual simple w/ day count starting at midnight. |
🟦 <Limit>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Decimal | >= 0 | 0 |
The maximum amount that can be drawn from the credit line. One must specify
either the <Limit>
or the <Balance>
.
Attributes:
🔸PercentForBal
🔸 PercentForBal
Data Type | Values |
---|---|
Decimal | >= 0 |
This attribute is mandatory when using the <Limit>
element. It represents the
estimated percentage of the total line of credit that the customer will use, and
hence is used to compute the monthly cost.
As an example, <Limit PercentForBal="42.0">100000</Limit>
is exactly
equivalent to passing <Balance>42000</Balance>
.
🟦 <Payment>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | - |
Currently, the element value is not used. It may be used in the future, however.
Attributes:
🔹PmtType
,🔹FloorPmt
,🔹Lastday
,🔹PayoffPercent
🔹 PmtType
Data Type | Values | Default |
---|---|---|
Enum | See table Below | PrinPlusInt |
This attribute allows the calling application to specify the method used for
computing the minimum payment. If no payment type attribute is specified, then
the PrinPlusInt
method is used by default.
Payment Type | Description |
---|---|
EqualPmt | Compute the loan as if it were a standard equal payment installment loan. This method requires the <Term> element. |
IntOnly | The minimum payment includes only interest and protection, with no principal reduction. |
PrinPlusInt | The minimum payment includes interest, protection, and a principal reduction amount equal to Balance/Term. This method requires the <Term> element. |
PercentToPayoff | The minimum payment is computed as a percentage of the principal plus interest. Protection is added to this calculated amount. |
PercentToBalance | The minimum payment is computed as a percentage of the balance, plus interest due. Protection is added to this calculated amount. |
🔹 FloorPmt
Data Type | Values | Default |
---|---|---|
Decimal | >= 0 | 0 |
If the value of this attribute is greater than zero, and if the computed payment falls below this value, then the returned payment will be set equal to this floor payment amount.
🔹 Lastday
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
This attribute defines the ‘Last Day’ setting for loans computed with an actual day calendar where the first payment date falls at the end of a month with fewer than 31 days. As an example, if the first payment date is on April 30, should the following payment dates be made on the 30th of each month, or on the last day of the month?
If true
is specified, then conditions triggering a last day situation will
result in payments which fall at the end of the month. A value of false
indicates that when dictated, subsequent payment dates will not be moved to the
last day of the month.
🔹 PayoffPercent
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Decimal | >= 0 | 0 |
If PmtType
is equal to PercentToPayoff
or
PercentToBalance
, then this attribute is required, and must hold the percent
used to calculate the principal and interest payment.
As an example: suppose that the balance is $10,000, interest is calculated as
$83.33, and that the value of PercentToPayoff
is 3.000%, then the principal
and interest payment is 3% of $10,083.33, or $302.50 (payments are rounded to
the nearest penny).
🟦 <Protection>
Element Type | Data Type |
---|---|
Parent | - |
The <Protection>
element is used to specify debt protection coverages such as
life, disability, and job loss. Each type of coverage is specified by its own
subelement, along with the borrower birthdays.
Attributes:
🔹ShowCaps
🔹 ShowCaps
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the calling application would like to have cap information (e.g. maximum
terms, coverage amounts, ages, etc.) returned for each product offered, set the
value of this attribute to true. Otherwise, leave this attribute unspecified or
set it to false. See the <Caps>
element defined in the
output section for more information.
🟦 <Protection>
→<Birthday1>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= 1900-01-01 |
This element contains the date of birth for the primary borrower. All dates must
be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a birthday of
April 9, 1972 would be specified as <Birthday1>1972-04-09</Birthday1>
. Note
that this element must be set if the Covers attribute of any of the two debt
coverage elements is set to borrower1 or both.
Attributes: None
🟦 <Protection>
→<Birthday2>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= 1900-01-01 |
This element contains the date of birth of the secondary borrower. All dates
must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a birthday
of May 21, 1969 would be specified as <Birthday2>1969-05-21</Birthday2>
. Note
that this element must be set if the Covers attribute of any of the two debt
coverage elements is set to both.
Attributes: None
🟦 <Protection>
→<Dis>
Element Type | Data Type |
---|---|
Empty | - |
The <Dis>
element determines what type of disability coverage is desired. The
element itself is empty, with all information needed for disability coverage
request being specified in the following attribute:
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of disability coverage is being requested.
The values borrower1
and borrower2
represent single coverage on either the
primary or secondary borrower respectively. A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
.
🔹 Plan
Data Type | Values | Default |
---|---|---|
Integer | [0...19*] | 0 |
If the specified account has been set up with multiple disability or debt
cancellation plans, then this attribute determines which plan number will be
used. If no plan number is specified, the first plan (plan zero) will be used.
To find out the number of available plans, use the
<AHSetCount>
element returned from an
<inINPUT_TOOL>
query.
🟦 <Protection>
→<Job>
Element Type | Data Type |
---|---|
Empty | - |
The <Job>
element determines what type of job loss coverage is requested for
the open end loan. The element itself is empty, with all information needed for
a life coverage request being specified in the following attribute:
Attributes:
🔹Covers
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of job loss coverage is being requested. The
values borrower1
and borrower2
represent single coverage on either the
primary or secondary borrower respectively. A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
.
🟦 <Protection>
→<Lif>
Element Type | Data Type |
---|---|
Empty | - |
The <Lif>
element determines what type of life coverage is requested for the
open end loan. The element itself is empty, with all information needed for a
life coverage request being specified in the following attribute:
Attributes:
🔹Covers
🔹 Covers
Data Type | Values | Default |
---|---|---|
Enum | borrower1 , borrower2 , both , none | borrower1 |
This attribute determines what type of life coverage is being requested. The
values borrower1
and borrower2
represent single coverage on either the
primary or secondary borrower respectively. A request for joint coverage on both
borrowers is indicated by a value of both
. Finally, if no coverage is desired,
specify a value of none
.
🟦 <Term>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | >0 |
Sometimes, the minimum monthly payment is computed as if the loan were a closed
end loan of a specific term. Enter that term if your open end lending uses a
PmtType
of EqualPmt
or PrinPlusInt
. If the
PmtType
attribute is not one of these two values, then
this element may be omitted.
Attributes: None
🟥 <TimeToPmt>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | >= 0 |
The numeric, unitless quantity representing the time from the <BeginDate>
to
the payment. In our sample above, the <TimeToPmt>
element holds a value of
1
, indicating that time between the <BeginDate>
and the date on which the
payment is due is one unit of time (see TimeUnits
attribute below).
Attributes:
🔹TimeUnits
🔹 TimeUnits
Data Type | Values | Default |
---|---|---|
Enum | Days , Months , Date | Months |
The units associated with the parent element. In the example above, the unit of
time is Months
. For the following examples, assume a <BeginDate>
of
2009-03-01:
<TimeToPmt TimeUnits="Date">2009-04-01</TimeToPmt>
Indicates that the payment date is on April 1, 2009.
<TimeToPmt TimeUnits="Months">1</TimeToPmt>
Also indicates that the payment date is on April 1, 2009.
<TimeToPmt TimeUnits="Days">31</TimeToPmt>
Also indicates that the payment date is on April 1, 2009.
Note that when using the Days value, the actual number of days will be used to compute the payment date.
Open End Lending - Response
Please see the Legend to understand the conventions used to document each element and attribute. Note that for responses, the XML elements are documented in the order that they appear in the response.
Element | Attributes |
---|---|
<outOpenEnd> | |
<Results> | |
<Description> | |
<XMLDetail>[] | |
<RegZAPR> | 🔸FinChg |
<MAPR> | 🔸FinChg , 🔸Max , 🔸MaxExceeded |
<FinChgFees> | |
<MAPRFees> | |
<PocketFees> | |
<Fee>[] | 🔸Name |
<PaymentInfo>[] | |
<Balance> | |
<Interest> | 🔸Method |
<PrinReduction> | |
<TotProtection> | 🔸PerDay |
<Payment> | 🔸Date , 🔸Days , 🔸Warning |
<Payoff> | |
<ProtectionInfo>[] | 🔹Age , 🔸Product , |
<CalcResult> | |
<Cost> | 🔸Premium , 🔸PerDay , 🔸Factor |
<Coverage> | 🔸Amount , 🔸Note |
<Benefit> | 🔸Amount , 🔸Note |
<Caps> | 🔸Ben , 🔸Cov , 🔸InceptAge |
🟥 <outOpenEnd>
Element Type | Data Type |
---|---|
Parent | - |
This is the root element of the XML open end query result message, and is required. This element simply acts as a container for all of the result child elements.
Attributes: None
🟥 <Results>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which describe the success or failure of the calculation, as well as any XML messages.
Attributes: None
🟥 <Results>
→<Description>
Element Type | Data Type |
---|---|
Data | Text |
If the calculation was completed successfully, then this element will contain
the value Successful Calculation
. Otherwise, this element will contain a
description of the problem encountered during the attempted computation.
Attributes: None
🟦 <Results>
→<XMLDetail>[]
Element Type | Data Type | Default |
---|---|---|
Data | Text | NULL |
The <XMLDetail>
elements are messages passed back to the calling application
which detail the status of the XML request. If the SCEX issues any warnings
regarding unrecognized elements or attributes, then each warning message will be
displayed in an <XMLDetail>
element.
In our sample output above, no warnings are returned by the SCEX, and hence
there are no <XMLDetail>
elements returned.
Attributes: None
🟦 <RegZAPR>
Element Type | Data Type | Default |
---|---|---|
Data | Decimal | n/a |
The computed effective annual percentage rate (APR). The SCEX will return this
element if the number of billing cycles per year (see
BCPY
) has been specified, and is greater than zero.
Attributes:
🔸FinChg
🔸 FinChg
Data Type | Values |
---|---|
Decimal | >= 0 |
The computed finance charge used in the calculation of the effective APR. This is the sum of the interest charge and all finance charge affecting fees.
🟦 <MAPR>
Element Type | Data Type | Default |
---|---|---|
Data | Decimal | n/a |
If the military APR has been requested (see UseMAPR
) and a valid number of billing cycles per
year (see BCPY
) has been specified, then this
element will be included in the output. The value of the element is the military
APR, and the element has the following attributes:
Attributes:
🔸FinChg
,🔸Max
,🔸MaxExceeded
🔸 FinChg
Data Type |
---|
Decimal |
The computed "military finance charge", used in the calculation of the MAPR. This is the sum of the interest charge, all finance charge affecting fees, all MAPR affecting fees, and all protection premiums/fees.
🔸 Max
Data Type |
---|
Decimal |
This attribute specifies the maximum Military APR as specified in the input XML
(see MAPR_Max
. The value of this attribute should be
displayed as a percentage. As an example, for Max="36.000", you would disclose a
maximum Military APR of 36%.
🔸 MaxExceeded
Data Type | Values |
---|---|
Boolean | true , false |
The value of this attribute 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 open-end loan was 37.125%, the
<MAPR>
element would be:
<MAPR FinChg="375.00" Max="36.000" MaxExceeded="true">37.125</MAPR>
.
🟦 <FinChgFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
The value of this element contains the sum of all fees which affect the Finance Charge. This element will only be present in the output if the value is greater than zero.
Attributes: None
🟦 <MAPRFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
The value of this element contains the sum of all fees which affect the Military APR. This element will only be present in the output if the value is greater than zero, and the Military APR has been disclosed.
Attributes: None
🟦 <PocketFees>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element holds the sum of all fees which do not affect the finance charge. If no out of pocket fees were requested, then this element will not show up in the XML output.
Attributes: None
🟦 <Fee>[]
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
For each non-zero fee requested in the loan calculation, there will be a <Fee>
element containing the computed fee amount.
Attributes:
🔸Name
🔸 Name
Data Type |
---|
Text |
Contains the value of the Name
attribute of the
corresponding <Fee>
element from the XML request. If no
such attribute is present in the request element, then none will be present in
the response element.
🟦 <PaymentInfo>
Element Type | Data Type |
---|---|
Parent | - |
This element groups together payment result amounts, such as the amount to principal, interest, protection, and total payment.
Attributes: None
🟦 <PaymentInfo>
→<Balance>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
This element contains the computed balance, and only appears when the
<Limit>
element is present in the input XML query.
Attributes: None
🟥 <PaymentInfo>
→<Interest>
Element Type | Data Type |
---|---|
Data | Currency |
This element contains the total interest accrued during the payment period, assuming the borrower makes the scheduled payment on time.
Attributes:
🔸Method
🔸 Method
Data Type |
---|
Text |
The Method
attribute contains a textual description of the interest accrual method.
🟥 <PaymentInfo>
→<PrinReduction>
Element Type | Data Type |
---|---|
Data | Currency |
The amount of the payment which reduces the principal balance.
Attributes: None
🟥 <PaymentInfo>
→<TotProtection>
Element Type | Data Type |
---|---|
Data | Currency |
Contains the total cost of all protection plans included with the computed loan.
For the individual plan costs, see the <ProtectionInfo>
elements described below.
Attributes:
🔸PerDay
🔸 PerDay
Data Type | Values |
---|---|
Decimal | >= 0 |
Contains the cost of all loan protection products expressed as dollars per day.
🟥 <PaymentInfo>
→<Payment>
Element Type | Data Type |
---|---|
Data | Currency |
This element holds the total computed payment, which includes the <Interest>
and <TotProtection>
element values.
🔸 Date
Data Type | Values |
---|---|
Date | YYYY-MM-DD |
Holds the date on which the payment is scheduled. All dates are in the form of
YYYY-MM-DD, and must be 10 characters long. Hence, a payment date of April 15,
2009 would be disclosed as Date="2009-04-15"
.
🔸 Days
Data Type | Values |
---|---|
Integer | >=0 |
Returns the number of days used in the calculation of interest. Note that this value not be the actual number of days between the begin date and payment date for accrual codes 204 and 205.
🔸 Warning
Data Type | Values |
---|---|
Enum | None , FloorPmt , NegativeAm |
Any special conditions encountered while computing the payment will be reported
in this attribute. A value of None
indicates that no special conditions were
triggered. The FloorPmt
value means that the calculated payment was less than
the specified floor payment (see the FloorPmt
attribute of the <Payment>
). A value of NegativeAm
indicates that the computed payment is less than the accrued interest.
🟥 <PaymentInfo>
→<Payoff>
Element Type | Data Type |
---|---|
Data | Currency |
The maximum payment (which will pay off the open end loan if paid on schedule)
is contained within this element. Note that this payment includes the
<Interest>
and <TotProtection>
element values.
Attributes: None
🟦 <ProtectionInfo>[]
Element Type | Data Type |
---|---|
Empty | - |
These elements (there may be more than one if more than one type of protection was requested) contain information related to the various protection products requested on the open end loan. Each element provides information for one of the protection products (life, disability, or job loss) in its attributes or child elements.
🔹 Age
Data Type | Values |
---|---|
Integer | >= 18 |
This attribute contains the age used to compute the protection fee. If age is not taken into consideration when computing the protection fee, then this attribute will not appear.
🔸 Product
Data Type | Values |
---|---|
Enum | Life , Disability , JobLoss |
This attribute informs the calling application to which type of protection product this element refers: life, disability, or job loss.
🟥 <ProtectionInfo>
→<CalcResult>
Element Type | Data Type |
---|---|
Data | Text |
This element 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 child elements
of <ProtectionInfo>
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 child elements of <ProtectionInfo>
, as the
product was not computed.
Attributes: None
🟥 <ProtectionInfo>
→<Cost>
Element Type | Data Type |
---|---|
Data | Currency |
Attributes of this empty element provide the cost of the protection product in total.
🔸 Premium
Data Type |
---|
Currency |
The total cost for this protection.
🔸 PerDay
Data Type |
---|
Currency |
The daily cost of protection, expressed in dollars.
🔸 Factor
Data Type |
---|
Decimal |
The rate factor stored in the setup file used to compute the fee for the requested protection product is contained in this attribute.
🟥 <ProtectionInfo>
→<Coverage>
Element Type | Data Type |
---|---|
Empty | - |
The aggregate coverage amount is provided in the following attribute of this empty element:
🔸 Amount
Data Type | Values |
---|---|
Currency | > 0 |
Attribute which contains the aggregate coverage amount for this protection
product. In the example open end output, the life coverage amount is returned as
Amount="10000.00"
.
🔸 Note
Data Type | Values |
---|---|
Text | Any |
This Note will describe the type of protection provided. If full coverage has
been provided, then the note will contain Full Coverage
. Otherwise, the note
will describe the type of partial coverage used. In our example open end
calculation, life, disability, and job loss products did not encounter a cap,
hence producing the following output: Note="Full Coverage"
.
🟦 <ProtectionInfo>
→<Benefit>
Element Type | Data Type |
---|---|
Empty | - |
This empty element will only show up for the disability and job loss products. The attributes of this element which contain benefit information are:
🔸 Amount
Data Type | Values |
---|---|
Currency | > 0 |
Attribute which contains the benefit amount for this protection product. In the
example loan output, the disability benefit amount is returned as
Amount="750.00"
.
🔸 Note
Data Type | Values |
---|---|
Text | Any |
This attribute will describe the type of protection 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. In our
example open end calculation, the disability benefit was capped at $750,
producing the following output: Note="Partial Benefit of $750"
.
🟦 <ProtectionInfo>
→<Caps>
Element Type | Data Type |
---|---|
Empty | - |
This empty element provides the calling application with data about the maximum
terms, amounts, and ages associated with the requested product. This element
will only be present if the ShowCaps
attribute of the <Protection>
element is set to
true.
Attributes:
🔸Ben
,🔸Cov
,🔸InceptAge
🔸 Ben
Data Type | Values |
---|---|
Currency | > 0 |
Contains the maximum monthly benefit amount, expressed in dollars. If no cap is present or applicable, then a value of zero is returned.
🔸 Cov
Data Type | Values |
---|---|
Currency | > 0 |
Contains the maximum aggregate coverage amount, expressed in dollars. If no cap is present or applicable, then a value of zero is returned.
🔸 InceptAge
Data Type | Values |
---|---|
Integer | >= 18 |
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.
Refunds
Single premium insurance products are computed up front, and the premiums computed are usually added to the principal balance and hence are financed along with the amount the borrower has requested. These premiums are calculated with the assumption that the loan will be paid off as scheduled. If a loan is paid off early, then the borrower is often due a refund of the pre-computed premiums (hereafter, simply called a refund).
This module allows the calling application to compute the refund amounts for credit life, disability, involuntary unemployment, and personal property insurances. Refund calculations depend on setup file settings that are stored in the refund setup file (ref####.ini), where #### is a four-digit number from 0000 to 9999. Proper configuration of the refund setup file is necessary to produce expected results.
Sample Request
The following is a sample SCEX request for a refund calculation, where the original equal payment loan was originated on June 6, 2015 with a first payment date of July 1, 2015. The loan term was scheduled for 60 months, with a maturity date of June 1, 2020. Single credit life and disability were written on the loan, with premium amounts of $355.06 for life and $411.34 for disability. The computed equal payment was $228.52. Assuming that the borrower pays off the loan on the date of the 36th payment (June 1, 2018), the refund XML request would look as follows:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE inREFUND SYSTEM "inREFUND.dtd">
<inREFUND Account="1" DataDirPath="C:\SCEX\" LoanType="equal" PPY="monthly">
<LoanDate>2015-06-06</LoanDate>
<RefundDate>2018-06-01</RefundDate>
<PmtDate>2015-07-01</PmtDate>
<IntRate>10.000</IntRate>
<Term>60</Term>
<Payment>228.52</Payment>
<Balloon>228.52</Balloon>
<CL Premium="355.06" ScheduledPmts="60" PremiumMethod="net" CoverageType="single" />
<AH Premium="411.34" ScheduledPmts="60" CoverageType="single" Plan="0" />
</inREFUND>
Sample Response
The following is a sample response generated by the previous sample request:
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE outREFUND SYSTEM "outREFUND.dtd">
<outREFUND>
<CalcResult Code="0">Successful Calculation</CalcResult>
<TotalRefund>306.56</TotalRefund>
<CLRefund RemainingPmts="24">142.02</CLRefund>
<AHRefund RemainingPmts="24">164.54</AHRefund>
</outREFUND>
Refunds - Request
Please see the Legend to understand the conventions used to document each element and attribute. Note that for requests, the XML elements are documented in alphabetical order by parent element.
Element | Attributes |
---|---|
<inREFUND> | 🔹Account , 🔹DataDirPath , 🔹ForceReload , 🔹LoanType , 🔹PPY |
<AH> | 🔹CoverageType , 🔹Plan , 🔹Premium , 🔹ScheduledPmts |
<AmortTerm> | |
<Balloon> | |
<CL> | 🔹CoverageType , 🔹Premium , 🔹PremiumMethod , 🔹ScheduledPmts |
<IntRate> | |
<IU> | 🔹Premium , 🔹ScheduledPmts |
<LL> | 🔹Premium |
<LoanDate> | |
<Payment> | |
<PmtDate> | |
<PP> | 🔹Premium , 🔹ScheduledPmts |
<RefundDate> | |
<Term> |
🟥 <inREFUND>
Element Type | Data Type |
---|---|
Parent | - |
This is the root element of the XML refund request and is required. This
contains child elements which specify the particulars of the requested refund.
The following attributes of the <inREFUND>
element are defined:
Attributes:
🔹Account
,🔹DataDirPath
,🔹ForceReload
,🔹LoanType
,🔹PPY
🔹 Account
Data Type | Values | Default |
---|---|---|
Integer | [1...9999] | 1 |
This attribute specifies which account should be used to compute the requested
loan. Each account is numbered from 1 to 9,999, and each account corresponds to
a set of setup files which define numerous settings which may affect the loan
calculation, such as the accrual method, insurance methods and rates, etc. If
this attribute is not specified, a default value of 1
will be used.
🔹 DataDirPath
Data Type | Values | Default |
---|---|---|
Text | See below | See below |
If this attribute is set, the SCE will look for a data folder containing the
setup files in the path specified. Thus, if the DataDirPath
is set to
C:\SCEX\
, the SCE will look for the setup files in C:\SCEX\data
.
If the calling application wishes to specify the data directory path in its
entirety (e.g. the calling app does not want the SCE to append \data
to the
provided path), then simply terminate the specified DataDirPath
with an
asterisk (*
). Thus, if the DataDirPath
is set to C:\SCEX\bank1\*
, the SCE
will look for the setup files in C:\SCEX\bank1\
.
If this attribute is not set, the SCE will attempt to locate the data folder in
the default data directory path location, which can be retrieved using the
<inVERSION>
module query, and set via the SCE API.
This attribute is useful if you wish to use only a single installation of the
SCE, but have many different setup file groupings. By specifying a different
DataDirPath
for each grouping, you can easily separate the groups from one
another instead of grouping them all together in a single directory.
🔹 ForceReload
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
The SCE caches setup files previously used. This improves performance for
subsequent loan requests using one of the cached accounts. However, if you need
the SCE to reload the setup files for a given request (e.g. you just copied
over new setup files), then you can set this attribute to true
and the setup
files will be forced to reload. If left at the default value of false
, then
setup files are only reloaded when the SCE notices that one of the setup files
has been modified.
🔹 LoanType
Data Type | Values | Default |
---|---|---|
Enum | equal , balloon , spn , intonly , prinplus , irreg | equal |
Different types of loans may require different refund calculations, depending
upon the configured refund method for a given insurance type. If this attribute
is not specified a value of equal
will be assumed.
The allowed values of this attribute and their meanings are described in the table below:
Loan Type | Description |
---|---|
equal | Equal payment loan |
balloon | Balloon payment loan |
spn | Single payment note |
intonly | Interest only loan |
prinplus | Fixed principal reduction loan, with optional interest only payments |
irreg | Irregular payment loan with optional skipped payments |
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | See below | monthly |
PPY is an abbreviation for payments per year, and as one might surmise,
determines the payment frequency for the loan. The default value of monthly
will
result in a loan with 12 payments per year. If you require a loan with a payment
frequency other than monthly, specify it using this attribute.
Value | Translation | Description |
---|---|---|
1 | Annual | Once Per Year |
2 | SemiAnnual | Twice Per year (every six months) |
4 | Quarterly | Four per year (every three months) |
6 | Bimonthly | Six per year (every two months) |
12 | Monthly | Twelve per year (every month) |
24 | Semimonthly | Twice Per Month* |
26 | Biweekly | Every two weeks |
52 | Weekly | Every week |
* Semimonthly loans are characterized by making two payments per month on the same days. A common semimonthly schedule is to make payments every 1st and 16th of the month. Another common schedule is the 15th and the end of every month.
🟦 <AH>
Element Type | Data Type |
---|---|
Empty | - |
If single premium disability was written on the original loan, then this element should be present to provide the necessary information to compute a disability refund. The element itself is empty, with all required data associated with the computed disability product specified using the following attributes of this element.
Attributes:
🔹CoverageType
,🔹Plan
,🔹Premium
,🔹ScheduledPmts
🔹 CoverageType
Data Type | Values | Default |
---|---|---|
Enum | single , joint | single |
The value of this attribute specifies whether the original decreasing life premium covered one or two borrowers.
🔹 Plan
Data Type | Values | Default |
---|---|---|
Integer | [0..19] | 0 |
If the specified account has been set up with multiple disability plans, then
this attribute determines which plan number will be used. If no plan number is
specified, the first plan (plan zero) will be used. To find out the number of
available plans, use the <AHSetCount>
element returned from an
<inINPUT_TOOL>
query.
🔹 Premium
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
The value of this attribute specifies the original decreasing life premium quoted with the original loan. If this attribute is not specified, a default value of zero (0) will be assumed, and no refund computed.
🔹 ScheduledPmts
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
Specify the original decreasing life term of coverage (in months) as the value of this attribute. If a decreasing life premium greater than zero is specified, then this attribute is also required, and no refund computed.
🟦 <AmortTerm>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Integer | >= 0 | 0 |
To compute refunds for certain TruStage insurance products (specifically, those using refund formulas 7 and 8), the desired amortization term of the original loan is required.
Attributes: None
🟥 <Balloon>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | > 0 |
This value of this element is the final payment of the original loan. If the final payment is the same value as the regular payment (see above), then simply specify the same value for this element as well.
Attributes: None
🟦 <CL>
Element Type | Data Type |
---|---|
Empty | - |
If single premium decreasing credit life was written on the original loan, then this element should be present to provide the necessary information to compute a decreasing life refund. The element itself is empty, with all required data associated with the computed decreasing life product specified using the following attributes of this element.
Attributes:
🔹CoverageType
🔹Premium
,🔹PremiumMethod
,🔹ScheduledPmts
,
🔹 CoverageType
Data Type | Values | Default |
---|---|---|
Enum | single , joint | single |
The value of this attribute specifies whether the original decreasing life premium covered one or two borrowers.
🔹 Premium
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
The value of this attribute specifies the original decreasing life premium quoted with the original loan. If this attribute is not specified, a default value of zero (0) will be assumed, and no refund computed.
🔹 PremiumMethod
Data Type | Values | Default |
---|---|---|
Enum | gross , net | gross |
If the specified Account has been configured to offer the option of net or gross coverage written on the original loan, then the value of this attribute should specify the type of coverage written on the original loan. If the specified Account allows for only one type of decreasing life coverage, then this attribute may be omitted.
🔹 ScheduledPmts
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
Specify the original decreasing life term of coverage (in months) as the value of this attribute. If a decreasing life premium greater than zero is specified, then this attribute is also required, and no refund computed.
🟦 <IntRate>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Decimal | [-99.999...600] | 0 |
This element specifies the interest rate used in the calculation of the original
loan. The interest rate is not always required, as some refund calculations
ignore the original interest rate. However, since some refund calculations do
require the interest rate, we recommend that you always include it with the XML
input. The interest rate should be expressed as a percentage. For example, a
loan computed with a rate of 6.125% would be specified as
<IntRate>6.125</IntRate>
.
Attributes: None
🟦 <IU>
Element Type | Data Type |
---|---|
Empty | - |
If single premium involuntary unemployment was written on the original loan, then this element should be present to provide the necessary information to compute an involuntary unemployment refund. The element itself is empty, with all required data associated with the computed involuntary unemployment product specified using the following attributes of this element.
Attributes:
🔹Premium
,🔹ScheduledPmts
🔹 Premium
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
The value of this attribute specifies the original decreasing life premium quoted with the original loan. If this attribute is not specified, a default value of zero (0) will be assumed, and no refund computed.
🔹 ScheduledPmts
Data Type | Values | Default |
---|---|---|
Integer | >= 0 | 0 |
Specify the original decreasing life term of coverage (in months) as the value of this attribute. If a decreasing life premium greater than zero is specified, then this attribute is also required, and no refund computed.
🟦 <LL>
Element Type | Data Type |
---|---|
Empty | - |
If single premium level credit life was written on the original loan, then this element should be present to provide the necessary information to compute a level life refund. The element itself is empty, with all required data associated with the computed level life product specified using the following attributes of this element.
Attributes:
🔹Premium
🔹 Premium
Data Type | Values | Default |
---|---|---|
Currency | >=0 | 0 |
The value of this attribute specifies the original level life premium quoted with the original loan. If this attribute is not specified, a default value of zero (0) will be assumed, and no refund computed.
🟥 <LoanDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= 1900-01-01 |
This element contains the date on which the original loan amount was disbursed.
All dates must be in the form of YYYY-MM-DD, and be 10 characters long. A loan
date of June 6, 2015 would be specified as <LoanDate>2015-06-06</LoanDate>
.
Attributes: None
🟥 <Payment>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | > 0 |
This element should hold the computed regular payment of the original loan.
Attributes: None
🟦 <PmtDate>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= <LoanDate> | 0 |
If the original loan was a single payment note (i.e.
LoanType
= "spn"
), then the payment date of the single
payment is required. For all other loan types, this element will be ignored. All
dates must be in the form of YYYY-MM-DD, and be 10 characters long.
Attributes: None
🟦 <PP>
Element Type | Data Type |
---|---|
Empty | - |
If single premium personal property was written on the original loan, then this element should be present to provide the necessary information to compute a personal property refund. The element itself is empty, with all required data associated with the computed personal property product specified using the following attributes of this element.
Attributes:
🔹Premium
,🔹ScheduledPmts
🔹 Premium
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
The value of this attribute specifies the original decreasing life premium quoted with the original loan. If this attribute is not specified, a default value of zero (0) will be assumed, and no refund computed.
🔹 ScheduledPmts
Data Type | Values | Default |
---|---|---|
Integer | >=0 | 0 |
Specify the original decreasing life term of coverage (in months) as the value of this attribute. If a decreasing life premium greater than zero is specified, then this attribute is also required, and no refund computed.
🟥 <RefundDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= 1900-01-01 |
The value of this element contains the date on which the refund is to be computed. All dates must be in the form of YYYY-MM-DD, and be 10 characters long.
Attributes: None
🟥 <Term>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | > 0 |
The term indicates the number of payments that were originally scheduled to be made when the loan was written.
Attributes: None
Refunds - Response
Please see the Legend to understand the conventions used to document each element and attribute. Note that for responses, the XML elements are documented in the order that they appear in the response.
🟥 <outREFUND>
Element Type | Data Type |
---|---|
Parent | - |
This is the root element of the XML refund query input message and is required. This contains child elements which specify the particulars of the requested refund. The following attributes of the <inREFUND>
element are defined:
Attributes: None
🟥 <CalcResult>
Element Type | Data Type |
---|---|
Data | Text |
If the calculation was completed successfully, then this element will contain
the value Successful Calculation
, and the Code attribute will hold a value of
zero (0).
Otherwise, this element will contain a description of the problem encountered during the attempted computation. Please consult the attributes of this element for further information.
Attributes:
🔹Attribute
,🔸Code
,🔹Element
,🔹Mode
🔹 Attribute
Data Type | Default |
---|---|
Text | n/a |
This attribute will be present only when the calculation was not completed successfully (i.e., the value of the Code attribute is a value other than zero (0)).
🔸 Code
Data Type | Values |
---|---|
Integer | [0..31] |
A value of zero (0) indicates a successful calculation, and the Mode, Element, and Attribute attributes will not be present. A value greater than zero indicates an error condition. Please consult Table 27.2 for the allowed values of this attribute and their meanings. Also, the Mode, Element, and Attribute attributes may hold useful information for tracking down the issue.
Code | Description |
---|---|
0 | Refund calculation computed successfully. |
1 | Unexpected system error. |
2 | Unexpected SCEX error. |
3 | XML input validation against the DTD has failed, XML input is invalid. |
4 | Invalid payments per year specified. |
5 | Scheduled number of payments must be greater than zero (0). |
6 | Scheduled number of payments cannot be greater than the loan term. |
7 | Specified attribute is not in the list of valid attributes for this element. |
8 | Unknown coverage type specified. |
9 | Unknown premium method specified. |
10 | Invalid loan type specified. |
11 | Invalid formula type specified. |
12 | Payment date is before loan date. |
13 | Refund date is before loan date. |
14 | Term must be greater than zero (0). |
15 | Amortization term must be greater than zero (0). |
16 | Amortization term must be greater than or equal to term. |
17 | Payment must be greater than zero (0). |
18 | Balloon must be greater than or equal to zero (0). |
19 | Premium cannot be less than zero (0). |
20 | Coverage must be greater than zero (0). |
21 | AH plan must be greater than or equal to one (1). |
22 | Unknown element specified. |
23 | Unknown attribute specified. |
24 | All premiums are zero (0) - no refunds computed. |
25 | Cannot load CL setup file. |
26 | Cannot load AH setup file. |
27 | Cannot load refund setup file. |
28 | Zero (0) denominator in CL_CUNA_NonBalloon() routine. |
29 | AH rule of anticipation - original term in months is zero (0). |
30 | AH rule of anticipation - rate at original term is zero (0). |
31 | Rule of anticipation method is not allowed for this product. |
🔹 Element
Data Type | Default |
---|---|
Text | n/a |
This attribute will be present only when the calculation was not completed
successfully (i.e., the value of the Code attribute is a value other than zero
(0)) and the value of the Mode attribute is ParseInput
. If present, the value
of this attribute informs the calling application the element of the XML input
in which the XML parsing error occurred.
🔹 Mode
Data Type | Values | Default |
---|---|---|
Enum | ParseInput , Calculate , LoadOutput | ParseInput |
If the calculation was not completed successfully (i.e., the value of the Code attribute is a value other than zero (0)), then this attribute will be present. The value of this attribute informs the calling application the general area during which the error was encountered. The potential values for this attribute are:
-
ParseInput
- Error encountered while parsing the XML input. TheElement
attribute will be present indicating the element in which the error occurred. TheAttribute
attribute also may be present, if the input parsing error relates to an attribute specified in the input XML. -
Calculate
- Error encountered while attempting to compute the refund. TheElement
andAttribute
attributes will not be present. -
LoadOutput
— Error encountered while attempting to build and return the XML output. TheElement
andAttribute
attributes will not be present.
🟦 <XMLDetail>[]
Element Type | Data Type | Default |
---|---|---|
Data | Text | NULL |
The <XMLDetail>
elements are messages passed back to the calling application
which detail the status of the XML request. If the SCEX issues any warnings
regarding unrecognized elements or attributes, then each warning message will be
displayed in an <XMLDetail>
element.
Attributes: None
🟥 <TotalRefund>
Element Type | Data Type |
---|---|
Data | Currency |
The value of this element is the computed decreasing credit life refund due to the borrower. This element will only be returned if the specified decreasing credit life premium is greater than zero.
Attributes:
🔸RemainingPmts
🔸 RemainingPmts
Data Type |
---|
Integer |
The value of this attribute is the computed term of coverage beyond the specified refund date, and is used in the computation of the refund amount.
🟦 <CLRefund>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
The value of this element is the computed decreasing credit life refund due to the borrower. This element will only be returned if the specified decreasing credit life premium is greater than zero.
Attributes:
🔸RemainingPmts
🔸 RemainingPmts
Data Type |
---|
Integer |
The value of this attribute is the computed term of coverage beyond the specified refund date, and is used in the computation of the refund amount.
<LLRefund>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
The value of this element is the computed level credit life refund due to the borrower. This element will only be returned if the specified level credit life premium is greater than zero.
Attributes:
🔸RemainingPmts
🔸RemainingPmts
🔹 Remaining
Data Type | Default |
---|---|
Integer | 0 |
With single payment notes calibrated in days, the "Remaining" number of days of coverage after refund are reported in this attribute.
🔹 RemainingPmts
Data Type | Default |
---|---|
Integer | 0 |
The value of this attribute is the computed term of coverage beyond the specified refund date, and is used in the computation of the refund amount.
🟦 <AHRefund>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
The value of this element is the computed disability refund due to the borrower. This element will only be returned if the specified disability premium is greater than zero.
Attributes:
🔸RemainingPmts
🔸 RemainingPmts
Data Type |
---|
Integer |
The value of this attribute is the computed term of coverage beyond the specified refund date, and is used in the computation of the refund amount.
🟦 <IURefund>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
The value of this element is the computed involuntary unemployment refund due to the borrower. This element will only be returned if the specified involuntary unemployment premium is greater than zero.
Attributes:
🔸RemainingPmts
🔸 RemainingPmts
Data Type |
---|
Integer |
The value of this attribute is the computed term of coverage beyond the specified refund date, and is used in the computation of the refund amount.
🟦 <PPRefund>
Element Type | Data Type | Default |
---|---|---|
Data | Currency | 0 |
The value of this element is the computed personal property refund due to the borrower. This element will only be returned if the specified personal property premium is greater than zero.
Attributes:
🔸RemainingPmts
🔸 RemainingPmts
Data Type |
---|
Integer |
The value of this attribute is the computed term of coverage beyond the specified refund date, and is used in the computation of the refund amount.
Retirement Annuities
An annuity is a stream of income paid in a series of regular monthly payments. Annuities are usually set up to disburse these payments from a retirement account, and act as an income stream.
When planning for retirement, it is natural to ask what amount of monthly income will I receive given a planned retirement account balance of X dollars, with a planned retirement term of 360 months? Similarly, given a planned retirement account balance of X dollars and a desired monthly income of Y dollars, how many months may I draw income? Finally, given a desired term of income and monthly income amount, what would my retirement balance need to be?
Thus, there are three basic variables involved in computing an annuity: the beginning balance, monthly income amount, and the number of months of income. Given any two of them, one may find the third. Instead of creating three different input and output XML interfaces, only one input format and one output format are used, each of which is detailed below.
Sample Request
The following is a sample request for an annuity calculation, where the monthly income amount is computed based upon the balance at retirement, interest rate and the desired term of income (360 months):
<inANNUITY CalcType="getMonthlyIncome">
<BeginBalance>500000.00</BeginBalance>
<IntRate>5.000</IntRate>
<MonthlyIncome></MonthlyIncome>
<MonthsOfIncome>360</MonthsOfIncome>
</inANNUITY>
Sample Response
The following is a sample response generated by the sample request above:
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE outANNUITY SYSTEM "outAnnuity.dtd">
<outANNUITY>
<CalcResult>Valid Calculation</CalcResult>
<BeginBalance>500000.00</BeginBalance>
<IntRate>5.000</IntRate>
<MonthlyIncome>2684.11</MonthlyIncome>
<MonthsOfIncome>360</MonthsOfIncome>
<TotalIncome>966279.60</TotalIncome>
<Gain>466279.60</Gain>
</outANNUITY>
Retirement Annuities - Request
Please see the Legend to understand the conventions used to document each element and attribute. Note that for requests, the XML elements are documented in alphabetical order by parent element.
Element | Attributes |
---|---|
<inANNUITY> | 🔹CalcType |
<BeginBalance> | |
<Format> | 🔹CurrencyDecimals ,🔹DateFormat , 🔹DateSeparator , 🔹DecimalSeparator ,🔹StrictDP ,🔹ThousandSeparator |
<IntRate> | |
<MonthlyIncome> | |
<MonthsOfIncome> |
🟥 <inANNUITY>
Element Type | Data Type |
---|---|
<Parent> | - |
Attributes:
🔹CalcType
This is the root element of the request, and is required. This contains child
elements which specify the particulars of the requested annuity calculation, as
well as calculation results. The following attributes of the <inANNUITY>
element are defined:
🔹 CalcType
Values | Default | |
---|---|---|
Enum | getBeginBalance , getMonthlyIncome , getMonthsOfIncome | getMonthlyIncome |
The CalcType
attribute informs the SCE which of the three basic variables
involved in the annuity is to be computed. The element corresponding to the
variable being being solved for does not need to be present in the request
(and if present, the value of the element will be ignored).
🟦 <BeginBalance>
Data Type | Values | Default |
---|---|---|
Currency | >0 | 0 |
The beginning balance is the amount which is present in the retirement account
when the annuity starts. Interest will accrue monthly on this amount, and the
income stream is taken from this balance during the term of the annuity. If you
are computing the beginning balance (e.g. CalcType
= "getBeginBalance"
), then you may omit this element from the request.
Attributes: None
🟦 <Format>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | see attribute defaults |
The <Format>
element is one of the first elements parsed from a request, as the
attributes of this empty element affect how date and numeric values are parsed
and validated.
Attributes:
🔹CurrencyDecimals
,🔹DateFormat
,🔹DateSeparator
,🔹DecimalSeparator
,🔹StrictDP
,🔹ThousandSeparator
🔹 CurrencyDecimals
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 | 2 |
When displaying and parsing Currency values, the value of this attribute
determines the maximum number of decimal places allowed after the
DecimalSeparator
.
🔹 DateFormat
Data Type | Values | Default |
---|---|---|
Enum | YMD , MDY , DMY | YMD |
When displaying and parsing Date values, this field determines the expected
format for all Date fields. The following DateFormat
options are allowed:
YMD
- All dates should be formatted as YYYY-MM-DD.MDY
- All dates should be formatted as MM-DD-YYYY.DMY
- All dates should be formatted as DD-MM-YYYY.
Note that the character which separates the individual month, day, and year
portions of the date is configurable via the
DateSeparator
attribute.
🔹 DateSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | - |
When displaying and parsing Date values, this attribute determines the character used to separate the individual month, day, and year portions of a date.
🔹 DecimalSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | . |
When displaying and parsing Currency or Decimal numeric values, this attribute determines the character used to separate the fractional part from the whole.
🔹 StrictDP
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the value of this attribute is true
, then the SCE will strictly verify the
number of decimal places allowed for currency input values. Thus, if the calling
application sends in a request with a currency amount of 1000.005
, the SCE
will return an error code.
If the value of this attribute is false
, then currency values sent in with an
invalid number of decimal places will be rounded to the correct number of
decimal places by the SCE (using five/four rounding), and a warning message with
this information will be returned with the response.
🔹 ThousandSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | , |
When displaying numeric values, this attribute determines the character used to separate the thousands places from the hundreds. Note that when parsing numeric values, the value of this attribute is ignored.
🟥 <IntRate>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Decimal | [-99.999...600] | 0 |
This element dictates the rate at which interest accrues throughout the term of the annuity.
Attributes: None
🟦 <MonthlyIncome>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | > 0 | - |
This element specifies the desired monthly income amount. If you are computing
the monthly income amount (e.g. CalcType
= "getMonthlyIncome"
), then you may omit this element from the request.
Attributes: None
🟦 <MonthsOfIncome>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Integer | > 0 | - |
This element specifies the number of months in the term of the annuity. This
corresponds to the length of the monthly income stream which is disbursed from
the beginning balance. If you are computing the number of months of income (e.g.
CalcType
= "getMonthsOfIncome"
), then you may omit this
element from the request.
Attributes: None
Retirement Annuities - Response
Please see the Legend to understand the conventions used to document each element and attribute. Note that for responses, the XML elements are documented in the order that they appear in the response.
Element | Attributes |
---|---|
<outANNUITY> | |
<CalcResult> | |
<XMLDetail>[] | |
<BeginBalance> | |
<IntRate> | |
<MonthlyIncome> | |
<MonthsOfIncome> | |
<TotalIncome> | |
<Gain> |
🟥 <outANNUITY>
Element Type | Data Type |
---|---|
Parent | - |
This is the root element of the response, and is required. This element simply acts as a container for all of the result child elements.
Attributes: None
🟥 <CalcResult>
Element Type | Data Type |
---|---|
Data | Text |
If the calculation was completed successfully, then this element will contain
the value Valid Calculation
. Otherwise, this element will contain a
description of the problem encountered during the attempted computation.
Attributes: None
🟦 <XMLDetail>[]
Element Type | Data Type | Default |
---|---|---|
Data | Text | NULL |
The <XMLDetail>
elements are messages passed back to the calling application
which detail the status of the XML request. If the SCE issues any warnings
regarding unrecognized elements or attributes, then each warning message will be
displayed in an <XMLDetail>
element.
Attributes: None
🟥 <BeginBalance>
Element Type | Data Type |
---|---|
Data | Currency |
The beginning balance is the amount which is present in the retirement account when the annuity starts.
Attributes: None
🟥 <IntRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The rate at which interest will accrue on the balance during the term of the annuity.
Attributes: None
🟥 <MonthlyIncome>
Element Type | Data Type |
---|---|
Data | Currency |
The amount of the monthly disbursement.
Attributes: None
🟥 <MonthsOfIncome>
Element Type | Data Type |
---|---|
Data | Integer |
This element returns the number of months of income provided by the annuity.
Attributes: None
🟥 <TotalIncome>
Element Type | Data Type |
---|---|
Data | Currency |
The total income is the sum of all monthly disbursements made during the term of the annuity.
Attributes: None
🟥 <Gain>
Element Type | Data Type |
---|---|
Data | Currency |
The gain is the difference between the total income and the beginning balance. It is the total amount of interest accrued over the term of the annuity.
Attributes: None
Certificates of Deposit
A certificate of deposit (hereafter referred to as a CD) is a time deposit held in a bank or savings and loan for a fixed period of time at a fixed rate. Interest accrues on this deposit with a fixed periodicity (e.g. monthly or daily). The amount of money initially deposited in the CD is called the present value, and the final balance of the CD at the end of its term (which equals the initial deposit plus all accrued interest) is called the future value.
There are four basic variables involved in computing a CD: present value, interest rate, term, and future value. Given any of the three, you may find the fourth. Instead of creating four different modules to cover each possible CD calculation, a single response and request is used.
Sample Request
The following is a sample request for a CD calculation, where the future value is computed based upon present value, rate and term:
<inCD BasisDays="365" CalcType="getFutureValue" Compounding="monthly">
<DepositDate>2005-10-27</DepositDate>
<PresentValue>5000.00</PresentValue>
<FutureValue></FutureValue>
<IntRate>5.25</IntRate>
<Term Units="months">12</Term>
</inCD>
Sample Response
The following is a sample response generated by the previous sample request:
<outCD>
<CalcResult>Valid Calculation</CalcResult>
<PresentValue>5000.00</PresentValue>
<FutureValue>6165.57</FutureValue>
<IntRate>5.250</IntRate>
<Term Units="months">48</Term>
<Maturity>2009-10-27</Maturity>
<Gain>1165.57</Gain>
<APY>5.374</APY>
</outCD>
Certificates of Deposit - Request
Please see the Legend to understand the conventions used to document each element and attribute. Note that for requests, the XML elements are documented in alphabetical order by parent element.
Element | Attributes |
---|---|
<inCD> | 🔹BasisDays , 🔹CalcType , 🔹Compounding |
<DepositDate> | |
<Format> | 🔹CurrencyDecimals , 🔹DateFormat , 🔹DateSeparator , 🔹DecimalSeparator , 🔹StrictDP , 🔹ThousandSeparator |
<FutureValue> | |
<IntRate> | |
<PresentValue> | |
<Term> | 🔹Units |
🟥 <inCD>
Element Type | Data Type |
---|---|
Parent | - |
This is the root element of the request, and is required. This element contains
child elements which specify the particulars of the requested CD. The following
attributes of the <inCD>
element are defined.
Attributes:
🔹BasisDays
,🔹CalcType
,🔹Compounding
🔹 BasisDays
Data Type | Values | Default |
---|---|---|
Enum | 360 , 365 | 365 |
If the Compounding
frequency (see below) is based upon a
daily method (e.g. daily
, continuous
, or simple
), then the number of days
in a year is specified with this attribute. If no value is specified, then 365
is assumed.
🔹 CalcType
Values | Default | |
---|---|---|
Enum | getFutureValue , getPresentValue , getTerm , getIntRate | getFutureValue |
The CalcType
attribute informs the SCE which of the four basic variables
involved in a CD is to be computed. The element corresponding to the variable
being being solved for does not need to be present in the request (and if
present, the value of the element will be ignored).
-
getFutureValue
- Enter the<PresentValue>
,<Term>
and<IntRate>
to compute the CD's<FutureValue>
. -
getPresentValue
- Enter the<Term>
,<IntRate>
and<FutureValue>
to compute the<PresentValue>
that achieves the entered FutureValue. -
getTerm
- Enter the<PresentValue>
,<FutureValue>
and<IntRate>
to compute the<Term>
required to achievee the entered data. -
getIntRate
- Enter the<PresentValue>
,<FutureValue>
and<Term>
to compute the<IntRate>
required to achieve the entered data.
🔹 Compounding
Data Type | Values | Default |
---|---|---|
Enum | [See table below] | daily |
The Compounding
attribute defines the periodicity at which interest is
computed. The specified compounding period affects the allowable values for the
<Term>
element's Units
attribute.
The simple
compounding frequency does no compounding of interest at all.
Instead, interest is computed at the end of the CD’s term (much like a single
payment note using a simple interest accrual method).
🟥 <DepositDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= 1900-01-01 |
This element contains the date on which the amount of the CD is deposited and
interest begins to accrue. All dates must be in the form of YYYY-MM-DD, and be
10 characters long. Hence, a deposit date of October 27, 2005 would be specified
as <DepositDate>2005-10-27</DepositDate>
.
Attributes: None
🟦 <Format>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | see attribute defaults |
The <Format>
element is one of the first elements parsed from a request, as the
attributes of this empty element affect how date and numeric values are parsed
and validated.
Attributes:
🔹CurrencyDecimals
,🔹DateFormat
,🔹DateSeparator
,🔹DecimalSeparator
,🔹StrictDP
,🔹ThousandSeparator
🔹 CurrencyDecimals
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 | 2 |
When displaying and parsing Currency values, the value of this attribute
determines the maximum number of decimal places allowed after the
DecimalSeparator
.
🔹 DateFormat
Data Type | Values | Default |
---|---|---|
Enum | YMD , MDY , DMY | YMD |
When displaying and parsing Date values, this field determines the expected
format for all Date fields. The following DateFormat
options are allowed:
YMD
- All dates should be formatted as YYYY-MM-DD.MDY
- All dates should be formatted as MM-DD-YYYY.DMY
- All dates should be formatted as DD-MM-YYYY.
Note that the character which separates the individual month, day, and year
portions of the date is configurable via the
DateSeparator
attribute.
🔹 DateSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | - |
When displaying and parsing Date values, this attribute determines the character used to separate the individual month, day, and year portions of a date.
🔹 DecimalSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | . |
When displaying and parsing Currency or Decimal numeric values, this attribute determines the character used to separate the fractional part from the whole.
🔹 StrictDP
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the value of this attribute is true
, then the SCE will strictly verify the
number of decimal places allowed for currency input values. Thus, if the calling
application sends in a request with a currency amount of 1000.005
, the SCE
will return an error code.
If the value of this attribute is false
, then currency values sent in with an
invalid number of decimal places will be rounded to the correct number of
decimal places by the SCE (using five/four rounding), and a warning message with
this information will be returned with the response.
🔹 ThousandSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | , |
When displaying numeric values, this attribute determines the character used to separate the thousands places from the hundreds. Note that when parsing numeric values, the value of this attribute is ignored.
🟦 <FutureValue>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | > 0 | 0 |
The future value is the amount that the CD is worth at the end of its term. The
future value is equal to the present value plus all interest accrued during the
term. If you are computing the future value (e.g. CalcType
= "getFutureValue"
), then leave this element empty or omit the element entirely.
Attributes: None
🟦 <IntRate>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Decimal | [-99.999...600] | 0 |
This element dictates the rate at which interest accrues throughout the term of
the CD. If you are computing the interest rate (e.g.
CalcType
= "getIntRate"
), then leave this element empty
or omit the element entirely.
Attributes: None
🟦 <PresentValue>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | > 0 | 0 |
The present value is the amount which is deposited in the CD on the given
deposit date. Interest accrues on this initial amount, much like interest
accrues on the principal balance of a loan. If you are computing the present
value (e.g. CalcType
= "getPresentValue"
), then leave this
element empty or omit the element entirely.
Attributes: None
🟦 <Term>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Integer | > 0 | 0 |
The term element specifies the number of unit term periods after which the CD
has matured. This numerical value can specify the number of days, months, or
years which make up the term of the CD. To specify the units, please see the
Units
attribute below.
Also note that the value of this element is somewhat restricted given certain
Compounding
frequencies and Term
Units
. The table below will summarize the restrictions.
Compounding | Units Allowed | Term Restrictions |
---|---|---|
1 , annual | years , months | months must be divisible by 12 |
2 , semiannual | years , months | months must be divisible by 6 |
4 , quarterly | years , months | months must be divisible by 3 |
6 , bimonthly | years , months | months must be divisible by 2 |
12 , monthly | years , months | n/a |
24 , semimonthly | years , months , days | n/a |
daily | years , months , days | n/a |
continuous | years , months , days | n/a |
simple | years , months , days | n/a |
Attributes:
🔹Units
🔹 Units
Data Type | Values | Default |
---|---|---|
Enum | years , months , days | months |
This attribute specifies the units used for the CD's <Term>
. The
three options are: years
, months
, and days
.
Certificates of Deposit - Response
Please see the Legend to understand the conventions used to document each element and attribute. Note that for responses, the XML elements are documented in the order that they appear in the response.
Element | Attributes |
---|---|
<outCD> | |
<CalcResult> | |
<XMLDetail>[] | |
<PresentValue> | |
<FutureValue> | |
<IntRate> | |
<Term> | 🔸Units |
<Maturity> | |
<Gain> | |
<APY> |
🟥 <outCD>
Element Type | Data Type |
---|---|
Parent | - |
This is the root element of the response, and is required. This element simply acts as a container for all of the result child elements.
Attributes: None
🟥 <CalcResult>
Element Type | Data Type |
---|---|
Data | Text |
If the calculation was completed successfully, then this element will contain
the value Valid Calculation
. Otherwise, this element will contain a
description of the problem encountered during the attempted computation.
Attributes: None
🟦 <XMLDetail>[]
Element Type | Data Type | Default |
---|---|---|
Data | Text | NULL |
The <XMLDetail>
elements are messages passed back to the calling application
which detail the status of the XML request. If the SCE issues any warnings
regarding unrecognized elements or attributes, then each warning message will be
displayed in an <XMLDetail>
element.
In our sample output above, no warnings are returned by the SCE, and hence
there are no <XMLDetail>
elements returned.
Attributes: None
🟥 <PresentValue>
Element Type | Data Type |
---|---|
Data | Currency |
Present value of the CD, representing the initial deposit made on the specified deposit date.
Attributes: None
🟥 <FutureValue>
Element Type | Data Type |
---|---|
Data | Currency |
The future value of the CD at its maturity.
Attributes: None
🟥 <IntRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The rate at which interest will accrue on the CD.
Attributes: None
🟥 <Term>
Element Type | Data Type |
---|---|
Data | Integer |
The value of this element is the number of unit periods (as specified in the
Units
attribute) between the deposit date and the CD’s maturity
date.
Attributes:
🔸Units
🔸 Units
Data Type | Values |
---|---|
Enum | years , months , days |
This attribute specifies the units used for the CD’s term. The three options
are: years
, months
, and days
.
🟥 <Maturity>
Element Type | Data Type |
---|---|
Data | Date |
The date of maturity for the CD. All dates are in the form of YYYY-MM-DD, and
must be 10 characters long. Hence, a maturity date of October 27, 2009 is
specified as <Maturity>2009-10-27</Maturity>
.
Attributes: None
🟥 <Gain>
Element Type | Data Type |
---|---|
Data | Currency |
The <Gain>
is the difference between the future value and the present value.
It is the amount by which the present value increased over the term of the CD.
Attributes: None
🟥 <APY>
Element Type | Data Type |
---|---|
Data | Decimal |
The <APY>
(annual percentage yield) is the rate of return on an investment
over the term of a year. The APY takes compounding into account, and if the
compounding frequency is other than annual, the APY will differ from the
interest rate.
Attributes: None
Individual Retirement Accounts
An individual retirement account (hereafter referred to as an IRA) is a deposit held in an account for a period of time, during which further deposits may be made and interest is accrued. Interest accrues on the initial balance and periodic deposits with a fixed periodicity (e.g., monthly, daily). The amount of money initially deposited in the IRA is called the current balance, and the final balance of the IRA at the end of its term (which depends upon the current and retirement ages of the account holder) is called the future value.
The SCE allows the computation of an IRA two different ways: specify the initial balance, periodic deposit amount, current and retirement ages, and interest rate to compute the future value; or compute the necessary periodic deposit amount to achieve a target future value.
Sample Request
The following is a sample request for an IRA calculation, where the future value is computed based upon an initial balance, periodic deposit amount, current and retirement ages, and interest rate.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE inIRA SYSTEM "inIRA.dtd">
<inIRA CalcType="getFutureValue" Compounding="annual">
<BeginBalance>10000.00</BeginBalance>
<Deposit DepositFrequency="annual">2000.00</Deposit>
<IntRate>8.000</IntRate>
<CurrentAge>38</CurrentAge>
<RetireAge>65</RetireAge>
<FutureValue></FutureValue>
</inIRA>
Sample Response
The following is a sample response generated by the previous sample request:
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE outIRA SYSTEM "outIRA.dtd">
<outIRA>
<CalcResult>Valid Calculation</CalcResult>
<BeginBalance>100000.00</BeginBalance>
<Deposit DepositFrequency="annual">2000.00</Deposit>
<IntRate>8.000</IntRate>
<CurrentAge>38</CurrentAge>
<RetireAge>65</RetireAge>
<Term Units="years">27</Term>
<FutureValue>268558.27</FutureValue>
<Yield>8.000</Yield>
<Gain>204558.27</Gain>
</outIRA>
Individual Retirement Accounts - Request
Please see the Legend to understand the conventions used to document each element and attribute. Note that for requests, the XML elements are documented in alphabetical order by parent element.
Element | Attributes |
---|---|
<inIRA> | 🔹CalcType , 🔹Compounding |
<BeginBalance> | |
<CurrentAge> | |
<Deposit> | 🔹DepositFrequency |
<Format> | 🔹CurrencyDecimals , 🔹DateFormat , 🔹DateSeparator , 🔹DecimalSeparator , 🔹StrictDP , 🔹ThousandSeparator |
<FutureValue> | |
<IntRate> | |
<RetireAge> |
🟥 <inIRA>
Element Type | Data Type |
---|---|
Parent | - |
Attributes:
🔹CalcType
,🔹Compounding
This is the root element of the request, and is required. This element
contains child elements which specify the particulars of the requested IRA, as
well as calculation results. The following attributes of the <inIRA>
element
are defined:
🔹 CalcType
Data Type | Values | Default |
---|---|---|
Enum | getFutureValue , getDepositGivenFuture | getFutureValue |
The CalcType
attribute informs the SCE which of the IRA calculations is to be
performed. If solving for the future value, the <FutureValue>
element may be omitted from the request. When solving for the deposit,
the <Deposit>
element may be omitted, so long as the default deposit
frequency of annual
is intended.
🔹 Compounding
Data Type | Values | Default |
---|---|---|
Enum | 1 ,2 ,4 ,6 ,12 ,360 | 1 |
The Compounding
attribute defines the periodicity at which interest is
computed. The specified compounding period affects the allowable values for the
DepositFrequency
attribute of the <Deposit>
element - please see its description below.
🟦 <BeginBalance>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
The beginning balance is the amount which is currently present in the IRA account. Interest accrues on this initial amount (plus the periodic deposit amounts), much like interest accrues on the principal balance of a loan.
Attributes: None
🟥 <CurrentAge>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | > 0 |
The current age of the individual.
Attributes: None
🟦 <Deposit>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | > 0 | 0 |
The deposit element specifies the periodic deposit amount to be made to the IRA
account. The periodicity of the deposit is dictated by the
DepositFrequency
attribute, detailed below.
If you are computing the periodic deposit amount necessary to generate a
specified future value (e.g. CalcType="getDepositGivenFuture"
), then leave
this element empty.
Attributes:
🔹DepositFrequency
🔹 DepositFrequency
Values | Default | |
---|---|---|
Enum | 1 ,2 ,4 ,6 ,12 , annual , semiannual , quarterly , bimonthly , monthly | annual |
This attribute specifies the periodicity of the deposit amount. Thus, if you
wanted to make monthly deposits to an IRA account, the attribute value should
be specified as 12
or ‘monthly`. The frequency of deposits limits the
allowable compounding frequencies.
Deposit Frequency | Allowed Compounding Frequencies |
---|---|
1 , annual | annual , semiannual , quarterly , bimonthly , monthly , daily |
2 , semiannual | semiannual , quarterly , bimonthly , monthly , daily |
4 , quarterly | quarterly , bimonthly , monthly , daily |
6 , bimonthly | bimonthly , monthly , daily |
12 , monthly | monthly , daily |
Note that when computing the periodic deposit amount, the deposit frequency
may be specified (e.g. <Deposit DepositFrequency="annual" />
).
🟦 <Format>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | see attribute defaults |
The <Format>
element is one of the first elements parsed from a request, as the
attributes of this empty element affect how date and numeric values are parsed
and validated.
Attributes:
🔹CurrencyDecimals
,🔹DateFormat
,🔹DateSeparator
,🔹DecimalSeparator
,🔹StrictDP
,🔹ThousandSeparator
🔹 CurrencyDecimals
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 | 2 |
When displaying and parsing Currency values, the value of this attribute
determines the maximum number of decimal places allowed after the
DecimalSeparator
.
🔹 DateFormat
Data Type | Values | Default |
---|---|---|
Enum | YMD , MDY , DMY | YMD |
When displaying and parsing Date values, this field determines the expected
format for all Date fields. The following DateFormat
options are allowed:
YMD
- All dates should be formatted as YYYY-MM-DD.MDY
- All dates should be formatted as MM-DD-YYYY.DMY
- All dates should be formatted as DD-MM-YYYY.
Note that the character which separates the individual month, day, and year
portions of the date is configurable via the
DateSeparator
attribute.
🔹 DateSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | - |
When displaying and parsing Date values, this attribute determines the character used to separate the individual month, day, and year portions of a date.
🔹 DecimalSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | . |
When displaying and parsing Currency or Decimal numeric values, this attribute determines the character used to separate the fractional part from the whole.
🔹 StrictDP
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the value of this attribute is true
, then the SCE will strictly verify the
number of decimal places allowed for currency input values. Thus, if the calling
application sends in a request with a currency amount of 1000.005
, the SCE
will return an error code.
If the value of this attribute is false
, then currency values sent in with an
invalid number of decimal places will be rounded to the correct number of
decimal places by the SCE (using five/four rounding), and a warning message with
this information will be returned with the response.
🔹 ThousandSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | , |
When displaying numeric values, this attribute determines the character used to separate the thousands places from the hundreds. Note that when parsing numeric values, the value of this attribute is ignored.
🟦 <FutureValue>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | > 0 | 0 |
The future value is the balance of the IRA account at the investor's specified
retirement age. The future value is equal to the present value plus all periodic
deposits plus all interest accrued during the IRA's term. If you are computing
the future value (e.g. CalcType="getFutureValue"
), then leave this element
empty or omit it all together.
Attributes: None
🟥 <IntRate>
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | [-99.999...600] |
This element dictates the rate at which interest accrues throughout the term of the IRA.
Attributes: None
🟥 <RetireAge>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | > 0 |
The desired retirement age of the individual. This value must be greater than
that found in the <CurrentAge>
element. By subtracting the
current age from the retirement age, the SCE determines the number of years the
IRA account will be allowed to grow.
Attributes: None
Individual Retirement Accounts - Response
Please see the Legend to understand the conventions used to document each element and attribute. Note that for responses, the XML elements are documented in the order that they appear in the response.
Element | Attributes |
---|---|
<outIRA> | |
<CalcResult> | |
<XMLDetail>[] | |
<BeginBalance> | |
<Deposit> | 🔹DepositFrequency |
<IntRate> | |
<CurrentAge> | |
<RetireAge> | |
<Term> | |
<FutureValue> | |
<Gain> | |
<Yield> |
🟥 <outIRA>
Element Type | Data Type |
---|---|
Parent | - |
This is the root element of the response, and is required. This element simply acts as a container for all of the result child elements.
Attributes: None
🟥 <CalcResult>
Element Type | Data Type |
---|---|
Data | Text |
If the calculation was completed successfully, then this element will contain
the value Valid Calculation
. Otherwise, this element will contain a
description of the problem encountered during the attempted computation.
Attributes: None
🟦 <XMLDetail>[]
Element Type | Data Type | Default |
---|---|---|
Data | Text | NULL |
The <XMLDetail>
elements are messages passed back to the calling application
which detail the status of the XML request. If the SCE issues any warnings
regarding unrecognized elements or attributes, then each warning message will be
displayed in an <XMLDetail>
element.
Attributes: None
🟥 <BeginBalance>
Element Type | Data Type |
---|---|
Data | Currency |
The beginning balance is the amount which is present in the IRA account at the
investor's <CurrentAge>
. Interest accrues on this initial
amount (plus the periodic deposit amounts), much like interest accrues on the
principal balance of a loan.
Attributes: None
🟥 <Deposit>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | > 0 |
The deposit element specifies the periodic deposit amount to be made to the IRA
account. The periodicity of the deposit is dictated by the
DepositFrequency
attribute, detailed below.
Attributes:
🔹DepositFrequency
🔸 DepositFrequency
Values | |
---|---|
Enum | 1 ,2 ,4 ,6 ,12 , annual , semiannual , quarterly , bimonthly , monthly |
This attribute specifies the periodicity of the deposit amount.
🟥 <IntRate>
Element Type | Data Type |
---|---|
Data | Decimal |
This element dictates the rate at which interest accrues throughout the term of the IRA.
Attributes: None
🟥 <CurrentAge>
Element Type | Data Type |
---|---|
Data | Integer |
The current age of the individual.
Attributes: None
🟥 <RetireAge>
Element Type | Data Type |
---|---|
Data | Integer |
The desired retirement age of the individual. By subtracting the current age from the retirement age, the SCE determines the number of years the IRA account will be allowed to grow.
Attributes: None
🟥 <Term>
Element Type | Data Type |
---|---|
Data | Integer |
The term is the number of years during which periodic deposit amounts and accrued interest are applied to the IRA account. It is equal to the individual’s retirement age less current age.
Attributes: None
🟥 <FutureValue>
Element Type | Data Type |
---|---|
Data | Currency |
The future value is the balance of the IRA account at the investor's specified retirement age. The future value is equal to the present value plus all periodic deposits plus all interest accrued during the IRA's term.
Attributes: None
🟥 <Gain>
Element Type | Data Type |
---|---|
Data | Currency |
The gain is the difference between the future value and the sum of the initial balance and all periodic deposits made. It is the amount of interest accrued over the term of the IRA.
Attributes: None
🟥 <Yield>
Element Type | Data Type |
---|---|
Data | Currency |
The APY (annual percentage yield) is the rate of return on an investment over the term of a year. The APY takes compounding into account, and if the compounding frequency is other than annual, the APY will differ from the interest rate.
Attributes: None
APR Verification
If a loan is computed outside of the SCE and does not provide the Regulation Z (or country appropriate) APR, or if you wish to validate a computed APR, then the APR Verification functionality will be of interest to you. The SCEX supports APR calculation and verification for loans with a single advance, as well as multiple advance loans. For the United States of America, all references to Appendix J of Regulation Z are put in italics at the end of the element’s or attribute’s descriptions. For example, Section (a)(1) refers to Appendix J, Section a, Subsection 1 of Regulation Z.
Sample Request
The following is a sample request for an APR check calculation:
<inREGZ_APR>
<!-- APR To Test -->
<TestAPR>6.126</TestAPR>
<!-- Loan Data -->
<Advance Date="2023-12-01" AmtFin="10000" />
<PmtStream Begin="2024-01-16" Term="6" Pmt="1700.20" />
</inREGZ_APR>
Sample Response
The following is a sample response generated by the request above:
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE outREGZ_APR SYSTEM "outREGZ_APR.dtd" >
<outREGZ_APR>
<Results>
<Description>Successful Calculation</Description>
</Results>
<RegZAPR_Data>
<Method>Actuarial</Method>
<UnitPeriod Base="Month" Mult="1">1_Month</UnitPeriod>
<PeriodsPerYear>12</PeriodsPerYear>
<RegZAPR>6.001</RegZAPR>
</RegZAPR_Data>
<APRCheck_Data>
<LoanType MultAdv="false" IrregPeriod="false" IrregPmt="false">Regular</LoanType>
<RegZAPR>6.001</RegZAPR>
<TestAPR>6.126</TestAPR>
<Difference>0.125</Difference>
<Tolerance>0.125</Tolerance>
<InCompliance OnCusp="true">true</InCompliance>
</APRCheck_Data>
<Event_Data>
<Transaction_Date>2023-12-01</Transaction_Date>
<AmtFin Count="1" PresVal="10000.00">10000.00</AmtFin>
<TotPmt Count="6" PresVal="9999.9996">10201.20</TotPmt>
</Event_Data>
<AmTable ErrorDown="-0.0327" Error="0.0004" ErrorUp="0.0334">
<AmLine Idx="0" Date="2023-12-01" Unit="0" Frac="0" Adv="10000.00" PresVal="10000.00" PresValSum="10000.00"/>
<AmLine Idx="1" Date="2024-01-16" Unit="1" Frac="15/30" Pmt="1700.20" PresVal="1687.5204" PresValSum="8312.4796"/>
<AmLine Idx="2" Date="2024-02-16" Unit="2" Frac="15/30" Pmt="1700.20" PresVal="1679.1234" PresValSum="6633.3562"/>
<AmLine Idx="3" Date="2024-03-16" Unit="3" Frac="15/30" Pmt="1700.20" PresVal="1670.7681" PresValSum="4962.5881"/>
<AmLine Idx="4" Date="2024-04-16" Unit="4" Frac="15/30" Pmt="1700.20" PresVal="1662.4545" PresValSum="3300.1336"/>
<AmLine Idx="5" Date="2024-05-16" Unit="5" Frac="15/30" Pmt="1700.20" PresVal="1654.1822" PresValSum="1645.9514"/>
<AmLine Idx="6" Date="2024-06-16" Unit="6" Frac="15/30" Pmt="1700.20" PresVal="1645.9511" PresValSum="0.0004"/>
</AmTable>
</outREGZ_APR>
APR Verification - Request
Please see the Legend to understand the conventions used to document each element and attribute. Note that for requests, the XML elements are documented in alphabetical order by parent element.
🟥 <inREGZ_APR>
Element Type | Data Type |
---|---|
Parent | - |
This is the root element of the XML APR message, and is required. This contains
child elements which specify the particulars of the requested APR, as well as
calculation results. The following attributes of the <inREGZ_APR>
element are
defined:
Attributes:
🔹DecAccuracy
,🔹HideAmort
,🔹Method
🔹 DecAccuracy
Data Type | Values | Default |
---|---|---|
Int | [1..5] | See Below |
The number of decimal places of accuracy for the disclosed APR is determined by
this attribute. The default value of this attribute depends upon the selected
Method. For Actuarial and USRule, the default value is 3
. For EU_APR, the
default value is 1
.
🔹 HideAmort
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
This attribute determines whether or not an amortization schedule will be included in the XML results, given a successful loan calculation. If you do not require the use of the amortization schedule, then setting this attribute to true will suppress its output. The default value of false will return the amortization schedule as part of the XML output.
🔹 Method
Values | Default | |
---|---|---|
Enum | Actuarial , USRule , EU_APR , XIRR , XIRR360 , IRR , YieldIRR | Actuarial |
In the United States of America, Regulation Z allows for APRs to be computed
using two different methods: the actuarial method (Actuarial
) or the US Rule
method (USRule
). In the European Union, there is a different method used
(EU_APR
) to compute the APR. The SCEX also supports the calculation of the
internal rate of return as defined by Microsoft Excel’s XIRR() function
(XIRR
), as well as the internal rate of return based upon a unit period 360
days calendar (XIRR360
). The IRR method implements a common spreadsheet
internal rate of return method which assumes strict regular periods. Deviating
from a strict regular periodicity may produce unreliable results. The YieldIRR
method is similar to the IRR method, except the rate is converted to an annual
yield equivalent, according to the payment frequency.
Use this attribute to specify the method used to compute the APR. If a value of
USRule is specified, make sure to set the <USRule>
element's
attributes, as appropriate.
🟦 <ActuarialTweaks>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | see attribute defaults |
This element is only considered if the APR Method specified is Actuarial. The element itself contains no data. Instead, all of the information used to compute the fee is contained in the following attributes of the element:
Attributes:
🔹ForceSemimonth
,🔹OddDaysPrepaid
🔹SemiMonthlyFixedFraction
,🔹SinglePayFraction
🔹 ForceSemimonth
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
The computation of the unit period may mean that a loan may not be recognized as
Semimonthly. This attribute overrides the default calculation in favor of a
forced unit period as semimonth. This attribute should be replaced with its
<UnitPeriod StandardPeriod="Semimonth" />
equivalent.
🔹 OddDaysPrepaid
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Loans that have used an Odd Days Prepaid charge, common with mortgage loans, may
use this attribute to adjust the APR to assume one unit period to the first
payment. Otherwise, choose false
.
🔹 SemiMonthlyFixedFraction
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
This setting is an unintended consequence of Appendix J to Regulation Z’s
characterization of the fraction of a unit period for semimonthly loans.
Applying the rules of Appendix J strictly to each payment in the payment stream
results in an oscillating fraction of a unit period. For a constant fraction of
a unit period, choose true
. To apply the Federal Calendar to each payment,
choose false
. The latter should typically be selected with an irregular loan.
🔹 SinglePayFraction
Data Type | Values | Default |
---|---|---|
Enum | InDays , InMonths | InDays |
This attribute only applies to single advance, single payment transactions of term less than one year. For these loans, when the term of the loan is a number of months, Appendix J allows for the term of the loan to be expressed as either a number of months over twelve, or the number of actual 24-hour days in the loan over 365. For the former, use "InMonths". For the latter, use "InDays".
🟥 <Advance>[]
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | see attribute defaults |
This element represents an advance made during the loan. This advance amount is equal to the total amount earning interest less prepaid fees. One may think of these entries as streams of Amounts Financed (in the RegulationZ sense).
🔸 AmtFin
Data Type | Values | Default |
---|---|---|
Currency | > 0 | 0 |
This attribute defines the advance amount for each of the Term advances. This dollar amount should be expressed as a number. For example, a request including Amt="10000.00"
indicates a periodic advance of $10,000
.
🔸 Date
Data Type | Values |
---|---|
Date | >= 1900-01-01 |
This attribute contains the date on which this advance is started. All dates
must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, an advance
stream started on November 21, 2006 would be specified as Date="2006-11-21"
.
🔹 Freq
Data Type | Values | Default |
---|---|---|
Enum | 1 , 2 , 4 , 6 , 12 | 12 |
On the rare occasion that multiple, regular advances are streamed together, one may define the periodicity of these regularly occurring advances. Monthly advances are assumed.
🔹 LastDay
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Were advances in this stream assumed to be the last day of the month?
🔹 Term
Data Type | Values | Default |
---|---|---|
Integer | > 0 | 0 |
The Term attribute determines the number of advance events which occur with the given Freq. Most loans have a single advance, or advances at irregular periods, which is why one advance per stream is assumed.
🟦 <AmLine>[]
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | see attribute defaults |
SCEX Amortization Schedules may be fed into the RegZAPR application in lieu of payment schedules. This option will be useful when one wishes to verify or get some insight into a particular disclosed SCE APR. One would copy and paste the entire amortization schedule as an expression of the payment stream.
For any other data entry, please use the <Advance>
,
<PmtStream>
and <Premium>
elements.
Attributes: see
<AmTable>
🟦 <AmTableTweaks>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | see attribute defaults |
The amortization of a loan has many potential adjustments that can have an effect downstream within its amortization. Is interest rounded down? Or to the nearest penny? These slight variations or "tweaks" are identified and modified in this element.
The element itself contains no data. Instead, all of the information used to compute the fee is contained in the following attributes of the element:
Attributes:
🔹DollarDec
,🔹ForceDay
,🔹RoundInt
,🔹StrictTime
🔹 DollarDec
Data Type | Values | Default |
---|---|---|
Integer | [3..9] | 4 |
Dollar amounts within lines of the amortization schedule are disclosed as full floating numbers, which can produce long lines of amortization in the disclosure. The number of decimals for dollar quantities may be trimmed to the number of decimal places indicated by this attribute. Note that this number does not affect the calculation. It merely affects to what number of decimals places to which the floating point number is disclosed. ‘9’ means ‘do not trim’.
🔹 ForceDay
Data Type | Values | Default |
---|---|---|
Integer | [0,29..31] | 0 |
End of month considerations may require that a payment’s day was intended to be another day. For instance, if payments were intended to be made on the end of the month, and the first payment is in April, making this setting “31” causes the fed calendar to compute time as if the day of the payment were “31”, rather than 30.
🔹 RoundInt
Data Type | Values | Default |
---|---|---|
Enum | None , Down , Nearest , Up | None |
If interest is rounded within the amortization schedule for US Rule loans, set the rounding method here.
🔹 StrictTime
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Loans that have used an Odd Days Prepaid charge, common with mortgage loans, may
use this attribute to adjust the APR to assume one unit period to the first
payment. Otherwise, choose false
.
When monthly payments are intended for the 29th or 30th of the month, how should the number of unit periods and fraction be calculated in February, when the day of the payment cannot be the intended day? (e.g. A non-leap year February where payments are meant for the 29th, but end up on the 28th). StrictTime acknowledges and disambiguates the calculation. Regular payments generally hold the fraction of a unit period constant, based on the date of the first payment. The SCEX allows for a constant fraction of a unit period or a strict time accounting, acknowledging that in February, the fraction of a unit period changes.
When the value of this attribute it true, the SCEX will calculate the fraction of a unit period strictly according to the rules of Appendix J of Regulation Z. A value of textfalse instructs the SCEX to keep the fraction of a unit period constant, equal to the fraction obtained by the time calculated from the date of the first payment to the transaction date.
🟦 <Construction>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | no construction period |
Loans which have a construction period require data to be passed using this element. The element itself contains no data. Instead, all of the information used to define the construction period is contained in the following attributes of the element:
Attributes:
🔹AsPrepaid
,🔸EndDate
,🔸Interest
,🔹PermanentAttached
,🔹Prepaid
🔹 AsPrepaid
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
This attribute is only applicable when the attribute PermanentAttached is true. If the permanent loan treats the construction interest as a prepaid finance fee, then set the value of this attribute to true. On the other hand, if the construction interest is not treated as a prepaid finance fee and is instead included as a stream of interest only payments during the construction period, then set the value of this attribute to false.
🔸 EndDate
Data Type | Values |
---|---|
Date | >= 1900-01-01 |
The date on which the construction period terminates.
🔸 Interest
Data Type | Values |
---|---|
Currency | > 0 |
The total amount of construction interest.
🔹 PermanentAttached
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Construction loans may be computed on their own, or they may be attached to a permanent loan which begins at the conclusion of the construction loan. If a permanent loan is attached to the construction loan, then set this attribute’s value to true. The default value of false indicates that this is solely a construction loan with no permanent attached.
🔹 Prepaid
Data Type | Values | Default |
---|---|---|
Currency | > 0 | 0 |
This attribute holds the total prepaid charge for points and fees, excluding construction interest. This attribute need only be specified when the attribute PermanentAttached is false.
🟥 <PmtStream>[]
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | see attribute defaults |
One or more <PmtStream>
elements are required to specify the loan’s payment
stream. For an equal payment loan, a single payment stream element is all that is required. For a balloon payment stream, you will need two. For highly
irregular loans (skips, pickups, interest only, etc.) you will need many. The
element itself is empty, as all necessary data for each payment stream is
contained in the element’s attributes, which are described below.
Attributes:
🔸Begin
,🔸Pmt
,🔸Term
,🔹LastDay
,🔹PPY
,🔹SemimonthlyDay
🔸 Begin
Data Type | Values |
---|---|
Date | >= 1900-01-01 |
This attribute contains the date on which this payment stream begins. All dates
must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a payment
stream starting date of December 10, 2006 would be specified as
Begin="2006-12-10"
.
🔹 LastDay
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Were payments in this stream assumed to be the last day of the month?
🔸 Pmt
Data Type | Values | Default |
---|---|---|
Currency | > 0 | 0 |
This attribute defines the principal and interest portion of the payment for
each of the Term payments. If the total payment includes any protection products
such as MOB life or debt protection fees, then these amounts must be removed as
they are not a part of the principal and interest portion of the payment. This
dollar amount should be expressed as a number. For example, a request including
Pmt="500.00"
indicates a periodic payment of $500.
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | See Table Below | 12 |
PPY is an abbreviation for ‘payments per year’, and as one might surmise, determines the payment frequency for the loan. The default value of monthly will result in a loan with 12 payments per year. If you require a loan with a payment frequency other than monthly, specify it using this attribute.
Value | Translation | Description |
---|---|---|
1 | Annual | Once Per Year |
2 | SemiAnnual | Twice Per year (every six months) |
4 | Quarterly | Four per year (every three months) |
6 | Bimonthly | Six per year (every two months) |
12 | Monthly | Twelve per year (every month) |
24 | Semimonthly | Twice Per Month * |
26 | Biweekly | Every two weeks |
52 | Weekly | Every week |
*
Semimonthly loans are characterized by making two payments per month on the
same days. A common semimonthly schedule is to make payments every 1st and 16th
of the month. Another common schedule is the 15th and the end of every month.
The LoanBuilder module allows for semimonthly loans to be scheduled for two days
that are not regularly 15 days apart, such as payments due the 1st and 17th of
each month. These more exotic semimonthly loans can be computed using the
SemimonthlyDay
attribute of the <PmtStream>[]
element.
🔹 SemimonthlyDay
Data Type | Values | Default |
---|---|---|
Integer | [0..31] | 0 |
When specifying a semimonthly payment stream, the day number on which the first payment is made determines the day number for all of the following odd numbered payments. If you omit this attribute or specify a value of 0, then the even numbered payments will be generated using the default method within the SCEX. If you wish to specify the day number on which even numbered payments fall (overriding the default method used in the SCEX), then set the value of this attribute to the desired day number. Setting the value of this attribute to ‘31’ will cause all even payments to fall on the last day of the month.
As an example, if you want to specify a semi-monthly payment stream beginning on January 1, 2020 with payments that fall on the Ist and 15th of each month for 24 payments, the element should look something like this:
<PmtStream
PmtType="CalcPmt" Begin="2020-01-01" Amount="###.###"
Term="24" PPY="24" SemimonthlyDay="15"
/>
🔸 Term
Data Type | Values | Default |
---|---|---|
Integer | > 0 | 0 |
The Term attribute determines the number of payment events which occur with the given Frequency.
🟦 <Premium>[]
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | see attribute defaults |
Only loans that have premiums occurring on dates not equal to the payment dates should use this element for expressing the premium. In the case of TruStage, for example, premiums are paid monthly on the same day of the month, regardless of when payments are made. In this case, please use these elements for entering loan premiums.
🔸 Date
Data Type | Values |
---|---|
Date | >= 1900-01-01 |
This attribute contains the date on which this premium stream begins. All dates
must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a payment
stream starting date of December 10, 2006 would be specified as
Date="2006-12-10"
.
🔸 Prem
Data Type | Values |
---|---|
Currency | > 0 |
The amount of the voluntary loan protection. Do not include protection fees that are Mandatory, since they are APR affecting fees. The purpose of including these off-payment fees is to eliminate them from the APR.
🔹 Freq
Data Type | Values | Default |
---|---|---|
Enum | 1 , 2 , 4 , 6 , 12 | 12 |
The frequency of premiums is entered in a standard payments per year format. e.g. 4="Quarterly", etc.
🔹 LastDay
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Was the premium intended for the last day of the month?
🔹 Term
Data Type | Values | Default |
---|---|---|
Integer | > 0 | 0 |
The number of protection fees in the stream.
🟦 <TestAPR>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Decimal | Unrestricted | - |
The SCEX will compute an APR for the given loan, then compare the APR it has
computed against this value. The difference between the computed and test APRs
will be compared. The SCEX will inform the calling application whether or not
the provided APR is within compliance. If you do not have a test APR to compare,
omit this element. The test APR should be expressed as a percentage. For
example, a loan computed with test APR of 6.395% would be specified as
<TestAPR>6.395</TestAPR>
.
Attributes: None
🟦 <TestFinChg>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | Unrestricted | - |
If this element is present and contains a value greater than zero, then the SCEX will compute the Regulation Z Finance Charge for the given loan and compare it to the value specified in this element. The magnitude of the difference between the computed and test values will be returned in the XML results. If this element is not present, or if it is present but contains a value less than or equal to zero, then the Finance Charge will not be returned in the XML results.
Attributes: None
🟦 <TestTotPmt>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | Unrestricted | - |
If this element is present and contains a value greater than zero, then the SCEX will compute the Regulation Z Total of Payments for the given loan and compare it to the value specified in this element. The magnitude of the difference between the computed and test values will be returned in the XML results. If this element is not present, or if it is present but contains a value less than or equal to zero, then the Total of Payments is still returned in the XML results however no Difference or TestValue attributes will be present.
Attributes: None
🟦 <Transaction_Date>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= 1900-01-01 | see below |
The Transaction Date is generally the date of the first <Advance>
.
If, for instance, the finance charge begins beyond the date of the first
advance, use this element to define the date the finance charge begins. All
dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a
transaction date of October 27, 2006 would be specified as
<Transaction_Date>2006-10-27</Transaction_Date>
.
Attributes: None
🟦 <UnitPeriod>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | see below |
If this element is not present in the XML request, then the SCEX will compute the unit period. Including this element instructs the SCEX to use the unit period specified by the calling application. Please note that this element is empty, with all required data specifying the unit period passed as attributes of this element.
Attributes:
🔸StandardPeriod
,🔹Multiple
🔸 StandardPeriod
Data Type | Values |
---|---|
Enum | Day , Week , Month , Year , Semimonth |
This attribute defines the standard unit period. The unit period will be some integral multiple of this standard unit period, as specified by the Multiple attribute below.
🔹 Multiple
Data Type | Values | Default |
---|---|---|
Integer | >= 1 | 1 |
This attribute defines the integral number of standard unit periods in the defined unit period.
As an example, if you wanted to specify a biweekly unit period, then you would include the following in the XML request:
<UnitPeriod StandardPeriod="Week" Multiple="2" />
Similarly, if you wanted to specify a quarterly unit period, then you would include the following in the XML request:
<UnitPeriod StandardPeriod="Month" Multiple="3" />
🟦 <USRule>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | see attribute defaults |
This element is only considered if the APR Method specified is USRule. The element itself contains no data. Instead, all of the information used to compute the fee is contained in the following attributes of the element:
Attributes:
🔹Calendar
,🔹CalendarTweak
,🔹Divisor
,🔹PremBeforePmt
🔹 Calendar
Data Type | Values | Default |
---|---|---|
Enum | ActualDay , UnitPeriod , FedCalendar | ActualDay |
Actual day, unit period, and Federal calendars are supported with US Rule interest.
🔹 CalendarTweak
Data Type | Values | Default |
---|---|---|
Enum | None , True360 , True365 , Midnight366 | None |
-
True360 mans that each month is assumed to have 30 days in all respects. Typically, a loan computes the actual number of days from the Advance to the first payment to compute the Term Factor to the first payment.
-
True365 means that February 29th is not allowed, both in counting days and assessing the days per year divisor.
-
Midnight366 only applies to Actual/366 calendars, and means that a day is the time from midnight of one day to midnight of the other. The number of days between December 19th 2007 and January 19th 2008 would be 13 Days in a 365 year plus 18 days in a 366 day year, resulting in a Term Factor of “13/365+18/366”. An Actual/366 calculation not using the Midnight366 setting would compute the term factor as “12/365+19/366”.
🔹 Divisor
Data Type | Values | Default |
---|---|---|
Enum | 360 , 365 , 366 , PerPeriod , 365.25 , VarDPY | 365 |
Choose the divisor, or number by which to divide the day count to produce term factors.
-
360 means take the computed days to the first payment and divide them by 360 to compute the term factor.
-
365 means take the computed days to the first payment and divide them by 365.
-
366 is understood to mean “366” only in a leap year. Any days accruing interest in a non-leap year use a 365 divisor. This setting may only be used with “ActualDay” calendars. PerPeriod means “360” for monthly and bimonthly periods, “364” for weekly multiples, Quarterly, and SemiAnnual repayments, and “365” for annual loans. VarDPY is understood to mean that the computed days to the first payment are divided by the number of days in the month of the transaction date, multiplied by twelve. 365.25 means take the computed days to the first payment and divide them by 365.25 to compute the term factor. This setting may only be used with “ActualDay” calendars.
🔹 PremBeforePmt
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | true |
Are premiums processed before or after payments? “true” means premiums are amortized before payments, false means payments are processed before premiums.
APR Verification - Response
Please see the Legend to understand the conventions used to document each element and attribute. Note that for responses, the XML elements are documented in the order that they appear in the response.
Element | Attributes |
---|---|
<outREGZ_APR> | |
<Results> | |
<Description> | |
<XMLDetail>[] | |
<RegZAPR_Data> | |
<Accrual> | |
<Method> | |
<PeriodsPerYear> | |
<RegZAPR> | |
<UnitPeriod> | 🔸Base , 🔸Mult |
<APRCheck_Data> | |
<LoanType> | 🔸IrregPeriod , 🔸IrregPmt , 🔸MultAdv |
<RegZAPR> | |
<TestAPR> | |
<Difference> | |
<Tolerance> | |
<InCompliance> | 🔹OnCusp |
Event_Data | |
<Transaction_Date> | |
<AmtFin> | 🔸Count , 🔹PresVal |
<FinChg> | 🔸TestValue , 🔸Difference |
<TotPmt> | 🔸Count , 🔹PresVal , 🔹TestValue , 🔹Difference |
<TotPrem> | 🔸Count , 🔹PresVal |
<AmTable> | 🔸Error , 🔸ErrorDown , 🔸ErrorUp |
<AmLine> | 🔹Adv , 🔹BegBal , 🔸Date , 🔹EndBal , 🔹Factor , 🔹Frac , 🔸Idx , 🔹IntPaid , 🔹IntUnpaid , 🔹Pmt , 🔹Prem , 🔹PresVal , 🔹PresValSum , 🔹Unit |
🟥 <outREGZ_APR>
Element Type | Data Type |
---|---|
Parent | - |
This is the root element of the XML APR query result message, and is required. This element simply acts as a container for all of the result child elements.
Attributes: None
🟥 <Results>
Element Type | Data Type |
---|---|
Parent | - |
This parent element contains the reports the success or failure(s) of the calc request.
Attributes: None
🟥 <Results>
—><Description>
Element Type | Data Type |
---|---|
Data | Text |
If the calculation was completed successfully, then this element will contain the value ‘Successful Calculation’. Otherwise, this element will contain a description of the problem encountered during the atstempted computation.
Attributes: None
🟦 <Results>
—><XMLDetail>[]
Element Type | Data Type | Default |
---|---|---|
Data | Text | NULL |
The XMLDetail elements are messages passed back to the calling application which detail the status of the XML request. If the SCEX issues any warnings regarding unrecognized elements or attributes, then each warning message will be displayed in an XMLDetail element.
In our sample output above, no warnings are returned by the SCEX, and hence there are no XMLDetail elements returned.
Attributes: None
🟥 <RegZAPR_Data>
Element Type | Data Type |
---|---|
Parent | - |
The Regulation Z APR data is contained in the sub-elements of this element. This element contains no data.
Attributes: None
🟥 <RegZAPR_Data>
—><Accrual>
Element Type | Data Type |
---|---|
Data | Text |
US Rule APR’s will disclose the precise method of interest accrual in this element. All of the variation is in regards to “Term factors”. All US Rule interest accrual is governed by the following formula: Interest = APR/100 * Term Factor * Balance. Each accrual method has its own rules for generating these term factors, which represent how many years interest has been accruing.
Attributes: None
🟥 <RegZAPR_Data>
—><Method>
Element Type | Data Type | Values |
---|---|---|
Data | Enum | Actuarial , US Rule , EU-APR |
‘Actuarial’, ‘US Rule’, or ‘EU-APR’ will be displayed as the value for this element.
Attributes: None
🟥 <RegZAPR_Data>
—><PeriodsPerYear>
Element Type | Data Type |
---|---|
Data | Integer |
The number of periods per year are displayed in this element.
Attributes: None
🟥 <RegZAPR_Data>
—><RegZAPR>
Element Type | Data Type |
---|---|
Data | Decimal |
The computed APR value is reported by this element, according to the APR method and number of decimal places requested through the inputs.
Attributes: None
🟥 <RegZAPR_Data>
—><UnitPeriod>
Element Type | Data Type |
---|---|
Empty | - |
This element contains attributes and a text description of the unit period used
in the calculation. The data in this element concatenates the data in its
elements. For instance, when Base="Month"
and Mult="1"
, this element is
"1_Month".
🔸 Base
Data Type | Values |
---|---|
Enum | Day , Week , Month , Year , SemiMonth |
The Unit Period for any loan has a basic unit of measurement. All possibilities are listed in this attribute.
🔸 Mult
Data Type | Values |
---|---|
Integer | >0 |
The unit multiple composing the Unit Period. For instance, if the unit period
were 6 months, the Base
is Month
, the Mult is 6
.
🟦 <APRCheck_Data>
Element Type | Data Type |
---|---|
Parent | - |
The elements describing the analysis of a user-entered APR are all contained in
the child nodes of this element. This element, itself, has no data. Note that
this element and its associated child elements will only be present if a
<TestAPR>
was included in the request.
Attributes: None
🟥 <APRCheck_Data>
—><LoanType>
Element Type | Data Type | Values |
---|---|---|
Data | Enum | Regular , Irregular |
The Loan Type is either Regular
or Irregular
. All loans are assumed to be
regular unless they contain multiple advances, an irregular period or an
irregular payment, all of which are defined below. Note: skipped payment loans
are irregular loans, because, though the payments are regular, the periods are
not.
Attributes:
🔸IrregPeriod
,🔸IrregPmt
,🔸MultAdv
🔸 IrregPeriod
Data Type | Values | |
---|---|---|
Boolean | true , false , 1 , 0 |
If a loan has an irregular period between payments, this attribute is true; otherwise, it is false. An irregular period is any period between payments not a unit period. (See Section 18.2.7)
🔸 IrregPmt
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If a loan has an irregular payment, this attribute is true; otherwise, it is false. First and final payments are not considered in this assessment. A loan may only have one payment amount from the 2nd through the N-1st payments. If two or more payment amounts exist for these middle payments, this attribute will be true.
🔸 MultAdv
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If a loan has more than one advance, this attribute will be true; otherwise, it is false.
🟥 <APRCheck_Data>
—><RegZAPR>
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | Unrestricted |
The computed APR is reported by this element, according to the number of decimal places requested through the inputs.
Attributes: None
🟥 <APRCheck_Data>
—><TestAPR>
Element Type | Data Type |
---|---|
Data | Decimal |
The APR that appears in the input xml which is to be tested for compliance.
Attributes: None
🟥 <APRCheck_Data>
—><Difference>
Element Type | Data Type |
---|---|
Data | Decimal |
The difference between the computed APR and the test APR is displayed for easy comparison to the tolerance.
Attributes: None
🟦 <APRCheck_Data>
—><Tolerance>
Element Type | Data Type |
---|---|
Data | Decimal |
The tolerance permitted by RegZ for the type of loan in question. In the United States of America, regular loans have a tolerance of “0.125”, while irregular loans have a tolerance of “0.250”. Official Staff Commentary 226.22(a)(1) - (3)
Note that this element will only appear when Actuarial or US Rule APR methods are in effect.
Attributes: None
🟦 <APRCheck_Data>
—><InCompliance>
Element Type | Data Type | Values |
---|---|---|
Data | Boolean | true , false |
This element is true or false, depending on whether the difference element is greater than the Tolerance or not. If the difference is greater than the allowed tolerance, this element returns “false”. Otherwise, the APR is within compliance and therefore has “true” returned.
Note that this element will only appear when Actuarial or US Rule APR methods are in effect.
Attributes:
🔹OnCusp
🔹 OnCusp
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
If a <Difference>
is exactly equal to the <Tolerance>
, the TestAPR is noted as being "On the cusp"; that is to say, it is
maximally distant from the actual APR without being flagged as out of tolerance.
This designation is not required by Appendix J of Regulation Z, but is a warning
that the algorithm producing the test apr may warrant further testing.
🟥 <Event_Data>
Element Type | Data Type |
---|---|
Parent | - |
Though [<Event_Data>
] has no data itself, the elements it contains are the
sums of other important quantities, as described below:
Attributes: None
🟥 <Event_Data>
—><Transaction_Date>
Element Type | Data Type |
---|---|
Parent | Date |
The <Transaction_Date>
is one of three values, depending on the input: The
date entered as the <Transaction_Date>
from the
inputs, the date of the first advance if the
<Transaction_Date>
was omitted, or one unit period
before the first payment in the case of loans with OddDaysPrepaids.
Attributes: None
🟥 <Event_Data>
—><AmtFin>
Element Type | Data Type |
---|---|
Data | Currency |
This element represents the total amount financed for the loan or, more
generally, the total of <Advance>
elements from the
Request.
🔸 Count
Data Type | Values |
---|---|
integer | >0 |
The number of advances for a loan are displayed in this attribute.
🔹 PresVal
Data Type | Values |
---|---|
Decimal | - |
When the APR Method is “Actuarial”, the present value of all advances are displayed in this attribute.
🟦 <Event_Data>
—><FinChg>
Element Type | Data Type |
---|---|
Data | Currency |
This element represents the total finance charge for the loan, and will only be
present if the request provided a value greater than zero for the
<TestFinChg>
element.
Attributes:
🔸TestValue
,🔹Difference
🔸 TestValue
Data Type | Values |
---|---|
Currency | - |
The <TestFinChg>
that appears in the request which is
to be tested for compliance.
🔸 Difference
Data Type | Values |
---|---|
Currency | - |
The magnitude of the difference between the test Finance Charge and the computed Finance Charge.
🟥 <Event_Data>
—><TotPmt>
Element Type | Data Type |
---|---|
Data | Currency |
This element represents the sum of all payments.
Attributes:
🔸Count
,🔹PresVal
,🔹TestValue
,🔹Difference
🔸 Count
Data Type |
---|
Integer |
The number of payments is recorded here.
🔹 PresVal
Data Type | Default |
---|---|
Decimal | - |
When the APR Method is “Actuarial”, the present value of all payments are displayed in this attribute.
🔸 TestValue
Data Type |
---|
Currency |
The <TestTotPmt>
that appears in the input xml which
is to be tested for compliance.
🔹 Difference
Data Type | Default |
---|---|
Currency | - |
The magnitude of the difference between the test total of payments and the computed total of payments.
🟥 <Event_Data>
—><TotPrem>
Element Type | Data Type |
---|---|
Data | Currency |
This element represents the total of premiums input through the request.
🔸 Count
Data Type |
---|
Integer |
The number of premiums defined in the input are displayed in this attribute.
🔹 PresVal
Data Type | Default |
---|---|
Decimal | - |
When the APR Method is “Actuarial”, the present value of all premiums are displayed in this attribute.
🟥 <AmTable>
Element Type | Data Type |
---|---|
Parent | - |
Though [<AmTable>
] has no data itself, the elements it contains are the sums of
other important quantities, as described below:
Attributes:
🔸Error
,🔸ErrorDown
,🔸ErrorUp
🔸 Error
Data Type |
---|
Decimal |
The balance at the end of amortization using the disclosed RegZAPR. The correct
RegZAPR is the rate which produces the smallest balance after amortization.
Therefore, the magnitude of both ErrorDown
and
ErrorUp
attributes should be greater than this value.
🔸 ErrorDown
Data Type |
---|
Decimal |
The balance at the end of amortization using the disclosed RegZAPR less one rate
unit. As an example, if the disclosed RegZAPR is 10.000%, then the [ErrorDown
]
attribute would contain the error after amortizing the loan with a rate of
9.999%.
The magnitude of this value should never be less than the magnitude of the
Error
attribute, because the rate with a minimum error
magnitude defines the correct RegulationZ APR.
🔸 ErrorUp
Data Type |
---|
Decimal |
The balance at the end of amortization using the disclosed RegZAPR plus one rate
unit. As an example, if the disclosed RegZAPR is 10.000%, then the ErrorUp
attribute would contain the error after amortizing the loan with a rate of
10.001%.
The magnitude of this value should never be less than the magnitude of the
Error
attribute, because the rate with a minimum error
magnitude defines the correct RegulationZ APR.
🟥 <AmTable>
—><AmLine>
Element Type | Data Type |
---|---|
Empty | - |
The AmLine element contains the actual events that drive the calculation of the
APR; however, the information required to compute a particular APR depends
heavily on what type of APR that's being computed. Of the seven different
methods of APR computation (namely Actuarial
, USRule
, EU_APR
, XIRR
,
XIRR360
, IRR
, YieldIRR
) the structure of <AmLine>
attributes can reduce
to two structures: Present Value and USRule.
Attributes:
🔹Adv
,🔹BegBal
,🔸Date
,🔹EndBal
,🔹Factor
,🔹Frac
,🔸Idx
,🔹IntPaid
,🔹IntUnpaid
,🔹Pmt
,🔹Prem
,🔹PresVal
,🔹PresValSum
,🔹Unit
🔹 Adv
Data Type | Default |
---|---|
Currency | - |
Cash advances are recorded in this attribute, common to all APR Methods.
🔹 BegBal
Data Type | Default |
---|---|
Currency | - |
USRule APR's are unique, in that they do no compute present values but, rather, re-amortize the loan. The balance prior to applying the cash event and interest is recorded in this attribute.
🔸 Date
Data Type |
---|
Date |
The date of the AmLine event is recorded in this attribute in a YYYY-MM-DD
format.
🔹 EndBal
Data Type | Default |
---|---|
Currency | - |
USRule APR's note the effect of the AmLine by recording the ending balance. Note
that one AmLine's EndBal
is the next line's BeginBal
.
🔹 Factor
Data Type | Default |
---|---|
Decimal | - |
APR Methods of USRule
, EU_APR
, XIRR
, XIRR360
, IRR
, YieldIRR
record
the Factor used in their calculation. This factor represents a measure of time
appropriate to that calculation.
🔹 Frac
Data Type | Default |
---|---|
Decimal | - |
Actuarial APR's require both the number of unit periods and the fraction of a unit period to be computed as required by Appendix J to Regulation Z. From these two values, the cash of the event is discounted. The fractional value is recorded in this attribute.
🔸 Idx
Data Type |
---|
Integer |
The timewise sequence of events starting at zero is recorded in this attribute.
🔹 IntPaid
Data Type | Default |
---|---|
Currency | - |
USRule APR's record the interest paid, if any.
🔹 IntUnpaid
Data Type | Default |
---|---|
Decimal | - |
USRule APR's record any unpaid interest.
🔹 Pmt
Data Type | Default |
---|---|
Currency | - |
Payments are recorded in this attribute, common to all APR Methods.
🔹 Prem
Data Type | Default |
---|---|
Currency | - |
Protection Fees or Premiums are recorded in this attribute.
🔹 PresVal
Data Type | Default |
---|---|
Decimal | - |
The present value resulting from the computation on the cash amount is recorded in this attribute.
🔹 PresValSum
Data Type | Default |
---|---|
Decimal | - |
The running total of the accumulated present values are stored in this attribute.
🔹 Unit
Data Type | Default |
---|---|
Integer | - |
Actuarial APR's require the number of unit periods between the event and the
<Transaction_Date>
to be computed before the cash is
present value discounted. That number is recorded in this attribute.
Annual Percentage Yield
The APY Calculation provides an independent verification for the Federal Truth in Savings Act’s annual percentage yield on a deposit instrument. By supplying key pieces of data, the SCE will pass back an exhaustive analysis of the APY for the deposit in question.
Sample Request
The following is a sample SCE request for an APY calculation:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE inAPY SYSTEM "inAPY.dtd" >
<inAPY DecAccuracy="4" Compounding="Daily" Statement="Monthly" >
<Principal>1000.00</Principal>
<Interest>61.68</Interest>
<InvestDate>2014-04-16</InvestDate>
<MaturityDate>2015-04-16</MaturityDate>
</inAPY>
Sample Response
The following is a sample response generated by the sample request above:
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE outAPY SYSTEM "outAPY.dtd">
<outAPY>
<Results>
<Description>Successful Calculation</Description>
</Results>
<APY Formula="General">6.1680%</APY>
<Timeline>
<Compounding Frequency="Daily">1</Compounding>
<Statements Frequency="Monthly">30</Statements>
<InvestmentDate>2014-04-16</InvestmentDate>
<MaturityDate Days="365">2014-04-16</MaturityDate>
</Timeline>
<Investment>
<Principal>1000.00</Principal>
<Interest>61.68</Interest>
</Investment>
</outAPY>
Annual Percentage Yield - Request
Please see the Legend to understand the conventions used to document each element and attribute. Note that for requests, the XML elements are documented in alphabetical order by parent element.
Element | Attributes |
---|---|
<inAPY> | 🔹Compounding , 🔹DecAccuracy , 🔹Statement |
<Format> | 🔹CurrencyDecimals , 🔹DateFormat , 🔹DateSeparator , 🔹DecimalSeparator , 🔹StrictDP , 🔹ThousandSeparator |
<Interest> | |
<InvestDate> | |
<MaturityDate> | |
<Principal> |
🟥 <inAPY>
Element Type | Data Type |
---|---|
Parent | - |
This is the root element of the request, and is required. This contains
child elements which specify the particulars of the requested APY. The following
attributes of the <inAPY>
element are defined:
Attributes:
🔹Compounding
,🔹DecAccuracy
,🔹Statement
🔹 Compounding
Data Type | Values | Default |
---|---|---|
Enum | Daily , Weekly , BiWeekly , Monthly , BiMonthly , Quarterly , SemiAnnual , Annual | Daily |
The Compounding
attribute specifies the frequency that interest is compounded.
If the deposit compounds continuously, then specify a value of Daily
.
🔹 DecAccuracy
Data Type | Values | Default |
---|---|---|
Integer | [3..5] | 3 |
The number of decimal places of accuracy for the disclosed APY is determined by this attribute.
🔹 Statement
Data Type | Values | Default |
---|---|---|
Enum | Monthly , BiMonthly , Quarterly , SemiAnnual , Annual | Monthly |
The Statement
attribute determines the frequency that statements are provided to
the customer by the deposit institution.
🟦 <Format>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | see attribute defaults |
The <Format>
element is one of the first elements parsed from a request, as the
attributes of this empty element affect how date and numeric values are parsed
and validated.
Attributes:
🔹CurrencyDecimals
,🔹DateFormat
,🔹DateSeparator
,🔹DecimalSeparator
,🔹StrictDP
,🔹ThousandSeparator
🔹 CurrencyDecimals
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 | 2 |
When displaying and parsing Currency values, the value of this attribute
determines the maximum number of decimal places allowed after the
DecimalSeparator
.
🔹 DateFormat
Data Type | Values | Default |
---|---|---|
Enum | YMD , MDY , DMY | YMD |
When displaying and parsing Date values, this field determines the expected
format for all Date fields. The following DateFormat
options are allowed:
YMD
- All dates should be formatted as YYYY-MM-DD.MDY
- All dates should be formatted as MM-DD-YYYY.DMY
- All dates should be formatted as DD-MM-YYYY.
Note that the character which separates the individual month, day, and year
portions of the date is configurable via the
DateSeparator
attribute.
🔹 DateSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | - |
When displaying and parsing Date values, this attribute determines the character used to separate the individual month, day, and year portions of a date.
🔹 DecimalSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | . |
When displaying and parsing Currency or Decimal numeric values, this attribute determines the character used to separate the fractional part from the whole.
🔹 StrictDP
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the value of this attribute is true
, then the SCE will strictly verify the
number of decimal places allowed for currency input values. Thus, if the calling
application sends in a request with a currency amount of 1000.005
, the SCE
will return an error code.
If the value of this attribute is false
, then currency values sent in with an
invalid number of decimal places will be rounded to the correct number of
decimal places by the SCE (using five/four rounding), and a warning message with
this information will be returned with the response.
🔹 ThousandSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | , |
When displaying numeric values, this attribute determines the character used to separate the thousands places from the hundreds. Note that when parsing numeric values, the value of this attribute is ignored.
🟥 <Interest>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | >= 0 |
The total interest earned on the principal (a) for the entire duration of the deposit if the compounding frequency is greater than or equal to the statement disclosure frequency, or (b) for the statement period if statements are disclosed more frequently than the deposit is compounded.
Attributes: None
🟦 <InvestDate>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= 1900-01-01 | - |
This optional element contains the date on which interest accrual begins. If statements are disbursed more frequently than interest is compounded, then you may omit this element. As an example, if interest is compounded annually and statements are disclosed monthly, then this element may be omitted.
All dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence,
an investment date of April 16, 2014 would be specified as
<InvestDate>2015-04-16</InvestDate>
.
Attributes: None
🟦 <MaturityDate>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Date | >= 1900-01-01 | - |
This optional element contains the date on which the deposit matures. If statements are disbursed more frequently than interest is compounded, then you may omit this element. As an example, if interest is compounded annually and statements are disclosed monthly, then this element may be omitted.
All dates must be in the form of YYYY-MM-DD, and be 10 characters long. Hence, a
maturity date of April 16, 2015 would be specified as
<MaturityDate>2014-04-16</MaturityDate>
.
Attributes: None
🟥 <Principal>
Element Type | Data Type |
---|---|
Data | Currency |
The value of this element specifies the total amount earning interest.
Attributes: None
Annual Percentage Yield - Response
Please see the Legend to understand the conventions used to document each element and attribute. Note that for responses, the XML elements are documented in the order that they appear in the response.
Element | Attributes |
---|---|
<outAPY> | |
Results | |
<Description> | |
🟦 <XMLDetail>[] | |
<APY> | 🔸Formula |
<Timeline> | |
<Compounding> | 🔸Frequency |
<Statements> | 🔸Frequency |
<InvestmentDate> | |
<MaturityDate> | 🔸Days |
<Investment> | |
<Interest> | |
<Principal> |
🟥 <outAPY>
Element Type | Data Type |
---|---|
Parent | - |
This is the root element of the XML APY query result message, and is required. This element simply acts as a container for all of the result child elements.
Attributes: None
🟥 Results
Element Type | Data Type |
---|---|
Parent | - |
The basic results of the xml calculation are captured as child elements of the "Results" parent.
Attributes: None
🟥 Results
→<Description>
Element Type | Data Type |
---|---|
Data | Text |
If the calculation was completed successfully, then this element will contain the value ‘Successful Calculation’. Otherwise, this element will contain a description of the problem encountered during the attempted computation.
Attributes: None
🟦 Results
→<XMLDetail>[]
Element Type | Data Type | Default |
---|---|---|
Data | Text | NULL |
The XMLDetail elements are messages passed back to the calling application which detail the status of the XML request. If the SCEX issues any warnings regarding unrecognized elements or attributes, then each warning message will be displayed in an XMLDetail element.
In our sample output above, no warnings are returned by the SCEX, and hence there are no XMLDetail elements returned.
Attributes: None
🟥 <APY>
Element Type | Data Type |
---|---|
Data | Decimal |
The APY, as defined in Appendix A to Part 1030 of Truth in Savings, and computed by the SCEX. This element has a single attribute, as described below.
Attributes:
🔸Formula
🔸 Formula
Data Type | Values |
---|---|
Enum | General , Special |
The Formula attribute describes the formula used to compute the APY. The General formula is described in Appendix A to Part 1030, Part I Section A. The Special formula is described in Appendix A to Part 1030, Part II Section B. Note that the Special formula is only used when statements are sent more frequently than the deposit is compounded.
🟥 <Timeline>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which describe the timeline of the deposit.
Attributes: None
🟥 <Timeline>
→<Compounding>
Element Type | Data Type |
---|---|
Data | Integer |
The value of this element specifies the number of days in each compounding period.
Attributes:
🔸Frequency
🔸 Frequency
Data Type | Values |
---|---|
Enum | Daily , Weekly , BiWeekly , Monthly , BiMonthly , Quarterly , SemiAnnual , Annual |
The value of this attribute specifies the frequency that interest is compounded.
🟥 <Timeline>
→<Statements>
Element Type | Data Type |
---|---|
Data | Integer |
The value of this element specifies the number of days in each statement period.
Attributes:
🔸Frequency
🔸 Frequency
Data Type | Values |
---|---|
Enum | Monthly , BiMonthly , Quarterly , SemiAnnual , Annual |
The value of this attribute specifies the frequency that statements are sent to the customer by the deposit institution.
🟦 <Timeline>
→<InvestmentDate>
Element Type | Data Type | Default |
---|---|---|
Data | Date | - |
Returns the investment date which was passed into the SCEX. If no investment date was specified, then this element will not appear in the response .
Attributes: None
🟦 <Timeline>
→<MaturityDate>
Element Type | Data Type | Default |
---|---|---|
Data | Date | - |
Returns the maturity date which was passed into the SCEX. If no maturity date was specified, then this element will not appear in the response.
Attributes:
🔸Days
🔸 Days
Element Type | Data Type |
---|---|
Data | Integer |
The days attribute contains the number of days between the investment and maturity dates.
🟥 <Investment>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements which describe the deposit investment.
Attributes: None
🟥 <Investment>
→<Interest>
Element Type | Data Type |
---|---|
Data | Currency |
This element contains the value of the <Interest>
element passed into the
SCEX.
Attributes: None
🟥 <Investment>
→<Principal>
Element Type | Data Type |
---|---|
Data | Currency |
The value of this element specifies the total amount earning interest.
Attributes: None
High Cost Mortgages (HCM)
A loan is considered a high-cost mortgage if it is a consumer credit transaction that is secured by the consumer's principal dwelling (with a few minor exclusions) and one or more of the following conditions are met:
- the APR test fails;
- the points and fees test fails; or
- the prepayment penalty test fails.
The HCM module will determine if an already computed loan is considered a high-cost mortgage. The calling application must furnish the SCEX with the required information, and then the SCEX will perform the three required tests mentioned above, returning the loan’s status in its output.
Please note that the HCM module requires the use of the Average Prime Offer Rates (APOR) tables, which are published weekly by the federal government. The two files (one for fixed rates and one for adjustable rates) are available for download at the FFIEC's web site.
Please note that it is necessary that these files be updated weekly, or else the SCEX will not be able to determine if a loan is a HCM for loans whose lock in dates fall outside the range of dates provided in the APOR files.
Also note that there are two values specified in the HCM points and fees test
which will adjust annually. These values are stored in a file named hcm.ini
.
This file needs to be located in the same directory as the APOR files mentioned
above.
Sample Request
The following is a sample SCEX request for a HCM calculation:
<inHCM DataDirPath="C:\SCEX\">
<LockInDate>2013-05-09</LockInDate>
<Lien Type="first" Rate="fixed" Dwelling="personal_property" />
<Term PPY="12">360</Term>
<LoanAmount>265102.04</LoanAmount>
<AmountFinanced>255102.04</AmountFinanced>
<APR>9.91</APR>
<FinanceCharge>292688.40</FinanceCharge>
<InterestCharge>266366.36</InterestCharge>
<FederalStatePremiumsFees>0.00</FederalStatePremiumsFees>
<PMI After="2025.00" AtOrBefore="625.00" MaxAllowedAtOrBefore="7653.06" />
<ThirdPartyCharges>0.00</ThirdPartyCharges>
<DiscountPoints FullRates="6.00" Fee="5102.04"></DiscountPoints>
<LoanOriginatorFees>0.00</LoanOriginatorFees>
<RealEstateFees FinanceAmt="0.00">0.00</RealEstateFees>
<CreditInsurance FinanceAmt="0.00">0.00</CreditInsurance>
<PrepaymentPenalty Max="0" Total="0" FinanceAmt="0" After36Months="false" AmountPrepaid="0" />
</inHCM>
Sample Response
The following is the XML response associated with the request above:
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE outHCM SYSTEM "outHCM.dtd">
<outHCM>
<Description>Valid Calculation</Description>
<IsHcm Apr="true" PointsFees="false" Prepayment="false">true</IsHcm>
<AprTrigger Date="2013-05-06" Apor="3.410" Spread="6.500" Difference="0.000"/>
<PointsFeesTrigger TotalLoanAmount="255102.04" TotalPointsFees="5072.04" MaxPointsFees="12755.10"/>
<PrepaymentTrigger After36Months="false" Total="0.00" Max="0.00"/>
</outHCM>
High Cost Mortgage (HCM) - Request
Please see the Legend to understand the conventions used to document each element and attribute. Note that for requests, the XML elements are documented in alphabetical order by parent element.
🟥 <inHCM>
Element Type | Data Type |
---|---|
Parent | - |
This is the root element of the HCM query input message, and is required. This
contains child elements which specify the particulars of the already computed
loan which is being examined to see if it is a HCM. The following attributes of
the <inHCM>
element are defined:
Attributes:
🔹DataDirPath
🔹 DataDirPath
Data Type | Values | Default |
---|---|---|
Text | See below | See below |
If this attribute is set, the SCEX will look for a data folder containing the
APOR and hcm.ini
files in the path specified. Thus, in the example above where
DataDirPath is set to C:\SCEX\
, the SCEX will look for the APOR and hcm.ini
files in C:\SCEX\data
. Note that the APOR files must be named as follows:
YieldTableFixed.txt
and YieldTableAdjustable.txt
.
If the calling application wishes to specify the data directory path in its
entirety (e.g. the calling app does not want the SCEX to append \data
to the
provided path), then simply terminate the specified DataDirPath with an asterisk
(*
). Thus, if the DataDirPath is set to C:\SCEX\bank1\*
, the SCEX will look
for the APOR files in C:\SCEX\bank1\
.
If this attribute is not set, the SCEX will attempt to locate the data folder in
the default data directory path location, which can be retrieved using the
<inVERSION>
query, and set via the SCEX API.
Since the APOR and hcm.ini
files are global in nature, you only need to have
one copy of these files available even if your installation hosts multiple data
paths for different clients. The APOR files are identical to those needed for
the HIPML module, and thus a single location containing the APOR files can be
used for both modules.
🟥 <AmountFinanced>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | > 0 |
As defined in Regulation Z (Section 1026.18(b)), the amount of credit provided
to the borrower or on the borrower’s behalf. As an example, the SCEX returns the
loan’s Amount Financed under <outLOANTYPE>
→<FedBox>
→<AmtFin>
.
Attributes: None
🟥 <APR>
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | [-99.999...600] |
This element contains the APR applicable to the transaction, which is not the same as the Regulation Z APR. The APR applicable to the transaction is determined as follows (from Section 1026.32(a)(3)):
- If the rate plan is fixed, then the APR equals the interest rate in effect as of the date the interest rate for the transaction is set.
- If the rate plan varies based on an index, then the APR equals the maximum margin allowed during the term of the loan plus the value of the index rate in effect as of the date the interest rate for the transaction is set.
- If the rate plan varies and is not based on an index (case 2 above), then the APR equals the maximum interest rate that may be imposed during the term of the loan.
Attributes: None
🟦 <CreditInsurance>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
Any premiums or other charges payable at or before consummation for any credit life, credit disability, credit unemployment, or credit property insurance, or any other life, accident, health, or loss-of-income insurance for which the creditor is a beneficiary. See Section 1026.32(b)(1)(iv).
Attributes:
🔹FinanceAmt
🔹 FinanceAmt
Data Type | Values | Default |
---|---|---|
Currency | >=0 | 0 |
The value of this attribute specifies the amount of the above specified premiums and/or fees which were financed.
🟦 <DiscountPoints>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Decimal | [0...600] | 0 |
This element specifies the number of bona fide discount points paid by the borrower. According to Section 1026.32(b)(3)(i)(D), a bona fide discount point “means an amount equal to 1 percent of the loan amount paid by the customer that reduces the interest rate”.
🔹 Fee
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
The total fee due for the discounted interest rate.
🔹 FullRate
Data Type | Values | Default |
---|---|---|
Decimal | >= 0 | 0 |
The value of this attribute specifies the non-discounted rate, or the interest rate without any discount.
🟦 <FederalStatePremiumsFees>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | > 0 | 0 |
The value of this element is the sum of all federal and state mortgage insurance premiums and guarantee fees that are included in the Finance Charge. See Section 1026.32(b)(1)(i)(B).
Attributes: None
🟥 <FinanceCharge>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | any |
As defined in Regulation Z (Section 1026.4), the dollar amount that the credit
will cost the borrower. As an example, the SCEX returns the loan’s Finance
Charge under <outLOANTYPE>
→<FedBox>
→<FinChg>
.
Attributes: None
🟦 <Format>
Element Type | Data Type | Values | Default |
---|---|---|---|
Empty | - | - | see attribute defaults |
The <Format>
element is one of the first elements parsed from a request, as the
attributes of this empty element affect how date and numeric values are parsed
and validated.
Attributes:
🔹CurrencyDecimals
,🔹DateFormat
,🔹DateSeparator
,🔹DecimalSeparator
,🔹StrictDP
,🔹ThousandSeparator
🔹 CurrencyDecimals
Data Type | Values | Default |
---|---|---|
Enum | 0 , 2 | 2 |
When displaying and parsing Currency values, the value of this attribute
determines the maximum number of decimal places allowed after the
DecimalSeparator
.
🔹 DateFormat
Data Type | Values | Default |
---|---|---|
Enum | YMD , MDY , DMY | YMD |
When displaying and parsing Date values, this field determines the expected
format for all Date fields. The following DateFormat
options are allowed:
YMD
- All dates should be formatted as YYYY-MM-DD.MDY
- All dates should be formatted as MM-DD-YYYY.DMY
- All dates should be formatted as DD-MM-YYYY.
Note that the character which separates the individual month, day, and year
portions of the date is configurable via the
DateSeparator
attribute.
🔹 DateSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | - |
When displaying and parsing Date values, this attribute determines the character used to separate the individual month, day, and year portions of a date.
🔹 DecimalSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | . |
When displaying and parsing Currency or Decimal numeric values, this attribute determines the character used to separate the fractional part from the whole.
🔹 StrictDP
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
If the value of this attribute is true
, then the SCE will strictly verify the
number of decimal places allowed for currency input values. Thus, if the calling
application sends in a request with a currency amount of 1000.005
, the SCE
will return an error code.
If the value of this attribute is false
, then currency values sent in with an
invalid number of decimal places will be rounded to the correct number of
decimal places by the SCE (using five/four rounding), and a warning message with
this information will be returned with the response.
🔹 ThousandSeparator
Data Type | Values | Default |
---|---|---|
Char | One character | , |
When displaying numeric values, this attribute determines the character used to separate the thousands places from the hundreds. Note that when parsing numeric values, the value of this attribute is ignored.
🟥 <InterestCharge>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | any |
This element contains the total interest accrued during the term of the loan,
assuming the borrower will make all scheduled payments. See Section
1026.32(b)(1)(i)(A). As an example, the SCEX returns the loan’s Interest Charge
under <outLOANTYPE>
→<Moneys>
→<Interest>
.
Attributes: None
🟥 <Lien>
Element Type | Data Type |
---|---|
Empty | - |
This element itself contains no data. Instead, all of the information used to determine the type of lien is contained in the following attribute of the element:
🔹 Dwelling
Data Type | Values | Default |
---|---|---|
Enum | personal_property, other | personal_property |
If this is a first Lien, then if the dwelling type is personal property and the loan amount is less than fifty thousand, then the rate spread is 8.5%. For all other first lien loans, the rate spread is 6.5%.
🔹 Rate
Data Type | Values | Default |
---|---|---|
Enum | fixed, variable | fixed |
The APOR is looked up in one of two tables, determined by the loan’s rate type.
If the loan uses a fixed rate, then the SCEX will look-up the APOR from the
YieldTableFixed.txt
file. If the loan uses a variable or adjustable rate, then
the SCEX will look-up the APOR from the YieldTableAdjustable.txt
file.
🔹 Type
Data Type | Values | Default |
---|---|---|
Enum | first , subordinate | first |
The type of lien plays a part in determining the amount over the APOR (called the rate spread) at which time a loan’s APR is considered a HCM. For first-lien loans, that value is 6.5% or 8.5% (depending upon the loan amount and dwelling type); for subordinate-lien loans, that value is 8.5%.
🟥 <LoanAmount>
Element Type | Data Type | Values |
---|---|---|
Data | Currency | > 0 |
The Loan Amount is the face amount of the note (i.e., the principal balance).
Attributes: None
🟦 <LoanOriginatorFees>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
The value of this element represents all compensation paid directly or indirectly by a consumer or creditor to a loan originator. See Section 1026.32(b)(1)(ii).
Attributes: None
🟥 <LockInDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= 1900-01-01 |
This element contains the date on which the interest rate of the loan was locked
in. All dates must be in the form of YYYY-MM-DD, and be 10 characters long.
Hence, a lock in date of December 29, 2009 would be specified as
<LockInDate>2009-12-29</LockInDate>
.
The lock in date is used to lookup the APOR rate from the appropriate file. Each row of the file begins with a date, and the row which will be used will have a date which is either on the lock in date, or does not precede it by more than 6 days. Since the rates are updated weekly, there should never be more than six days between the date of the row used and the specified lock in date.
If the SCEX can not find a row in the APOR file which is appropriate for use with the specified lock in date, then an error message will be returned informing the calling application.
Attributes: None
🟦 <PMI>
Element Type | Data Type |
---|---|
Empty | - |
This element itself contains no data. Instead, all of the information used to specify PMI information is contained in the following attribute of the element:
Attributes:
🔹After
,🔹AtOrBefore
,🔹MaxAllowedAtOrBefore
🔹 After
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
This attribute specifies the private mortgage insurance premiums payable after consummation. See Section 1026.32(b)(1)(i)(C)(1).
🔹 AtOrBefore
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
The value of this attribute represents private mortgage insurance premiums paid at or before consummation. See Section 1026.32(b)(1)(i)(C)(2).
🔹 MaxAllowedAtOrBefore
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
The maximum private mortgage insurance premium paid at or before consummation allowable under section 203(c)(2)(A) of the National Housing Act. See Section 1026.32(b)(1)(i)(C)(2).
🟦 <PrepaymentPenalty>
Element Type | Data Type |
---|---|
Empty | - |
This element itself contains no data. Instead, all of the information used to specify any prepayment penalty information is contained in the following attribute of the element:
Attributes:
🔹After36Months
,🔹AmountPrepaid
,🔹FinanceAmt
,🔹Max
,🔹Total
🔹 After36Months
Data Type | Values | Default |
---|---|---|
Boolean | true , false | false |
If, under the terms of the loan contract, the creditor can charge a prepayment penalty more than 36 months after consummation, then the calling application should set the value of this attribute to true.
Setting this value to true will trigger the prepayment penalty test, and his classify the specified loan as a HCM.
🔹 AmountPrepaid
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
If the maximum prepayment penalty exceeds 2% of this attribute’s value, then the prepayment penalty test will be triggered.
🔹 FinanceAmt
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
The value of this attribute specifies the amount of the total prepayment penalty which was financed by the creditor.
🔹 Max
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
The maximum prepayment penalty that may be charged or collected under the terms of the mortgage loan. See Section 1026.32(b)(1)(v).
🔹 Total
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
The total prepayment penalty incurred by the consumer if the consumer refinances the existing mortgage loan with the current holder of the existing loan, a servicer acting on behalf of the current holder, or an affiliate of either. See Section 1026.32(b)(1)(vi).
🟦 <RealEstateFees>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | any | 0 |
Please see Section 1026.32(b)(1)(iii) for a discussion of the real estate fees and other charges which should be included here.
Attributes:
🔹FinanceAmt
🔹 FinanceAmt
Data Type | Values | Default |
---|---|---|
Currency | >= 0 | 0 |
The value of this attribute specifies the amount of the above specified real estate fees and other charges which were financed.
🟦 <Term>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Integer | >= 0 | 0 |
The <Term>
element holds the number of payments in the initial fixed rate
period of the loan. If the loan uses a fixed rate, then this is equal to the
total number of payments in the loan term.
Note that the calling application must specify either the <Term>
or
<TermInYears>
element.
Attributes:
🔹PPY
🔹 PPY
Data Type | Values | Default |
---|---|---|
Enum | 1 , 2 , 4 , 6 , 12 , 24 , 26 , 52 , annual , semiannual , quarterly , bimonthly , monthly , semimonthly , biweekly , weekly | 12 |
PPY is an abbreviation for ‘payments per year’, and specifies the payment frequency for the initial fixed rate period of the given loan. The default value of monthly will result in a loan with an initial fixed rate period of 12 payments per year. If the loan in question uses a payment frequency other than monthly, specify it using this attribute.
🟦 <TermInYears>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Integer | [1..50] | 0 |
The <TermInYears>
element holds the term of the initial fixed rate period of the
loan, in whole years. Valid terms range from 1 year to 50 years, inclusive.
Note that the calling application must specify either the <Term>
or
<TermInYears>
element.
Attributes: None
🟦 <ThirdPartyCharges>
Element Type | Data Type | Values | Default |
---|---|---|---|
Data | Currency | >= 0 | 0 |
This element holds the sum of all bona fide third-party charges included in the Finance Charge, as defined in Section 1026.32(b)(1)(i)(D).
Attributes: None
High Cost Mortgages (HCM) - Response
Please see the Legend to understand the conventions used to document each element and attribute. Note that for responses, the XML elements are documented in the order that they appear in the response.
Element | Attributes |
---|---|
<outHCM> | |
<Description> | |
<XMLDetail>[] | |
<IsHcm> | 🔸Apr , 🔸PointsFees , 🔸Prepayment |
<AprTrigger> | 🔸Apor , 🔸Date , 🔸Difference , 🔸Spread |
<PointsFeesTrigger> | 🔸MaxPointsFees , 🔸TotalLoanAmount , 🔸TotalPointsFees |
<PrepaymentTrigger> | 🔸After36Months , 🔸Max , 🔸Total |
🟥 <outHCM>
Element Type | Data Type |
---|---|
Parent | - |
This is the root element of the HCM query output message, and is required. This element simply acts as a container for all of the result child elements.
Attributes: None
🟥 <Results>
→<Description>
Element Type | Data Type |
---|---|
Data | Text |
If the calculation was completed successfully, then this element will contain
the value Successful Calculation
. Otherwise, this element will contain a
description of the problem encountered during the attempted computation.
Attributes: None
🟦 <XMLDetail>[]
Element Type | Data Type | Default |
---|---|---|
Data | Text | n/a |
The XMLDetail elements are messages passed back to the calling application which
detail the status of the XML request. If the SCEX issues any warnings regarding
unrecognized elements or attributes, then each warning message will be displayed
in an <XMLDetail>
element.
In our sample output above, no warnings are returned by the SCEX, and hence
there are no <XMLDetail>
elements returned.
Attributes: None
🟥 <IsHcm>
Element Type | Data Type | Values |
---|---|---|
Data | Boolean | true , false |
The value of this element will either be true or false, and will indicate whether or not the submitted loan is a HCM. The following attributes of this element detail the results of the three tests (Apr, Points and Fees, and Prepayment tests):
Attributes:
🔸Apr
,🔸PointsFees
,🔸Prepayment
🔸 Apr
Data Type | Values |
---|---|
Boolean | true , false |
If the Apr test was triggered, then the value of this attribute will be true.
🔸 PointsFees
Data Type | Values |
---|---|
Boolean | true , false |
If the Points and Fees test was triggered, then the value of this attribute will be true.
🔸 Prepayment
Data Type | Values |
---|---|
Boolean | true , false |
If the Prepayment test was triggered, then the value of this attribute will be true.
🟥 <AprTrigger>
Element Type | Data Type |
---|---|
Empty | - |
This element provides further information on the HCM Apr test, which may be of interest to the calling application. The element itself contains no data. Instead, all of the relevant information is contained in the following attributes of the element:
Attributes:
🔸Apor
,🔸Date
,🔸Difference
,🔸Spread
🔸 Apor
Data Type |
---|
Decimal |
The value of this attribute contains the Average Prime Offer Rate for the submitted loan. This value is retrieved from the appropriate APOR file (fixed or adjustable).
🔸 Date
Data Type |
---|
Date |
The Date attribute contains the date on which the APOR data was effective. As an example, if the lock in date was 2013-05-09, then the date returned should be 2013-05-06 (if the APOR files are up to date).
🔸 Difference
Data Type |
---|
Decimal |
The value of this attribute returns the difference between the submitted APR applicable to the transaction, and the APOR plus the spread. If the difference is greater than zero (which means that the APR is greater than the APOR plus spread), then the loan is a HCM.
🔸 Spread
Data Type |
---|
Decimal |
The spread value depends upon the type of lien, loan amount, and dwelling type. The resulting spread will either be 6.5 or 8.5.
🟥 <PointsFeesTrigger>
Element Type | Data Type |
---|---|
Empty | - |
This element provides further information on the HCM points and fees test, which may be of interest to the calling application. The element itself contains no data. Instead, all of the relevant information is contained in the following attributes of the element:
Attributes:
🔸MaxPointsFees
,🔸TotalLoanAmount
,🔸TotalPointsFees
🔸 MaxPointsFees
Data Type |
---|
Currency |
If the computed total points and fees value for the submitted loan exceeds this value, then the loan is a HCM. The maximum points and fees value calculation is defined in Section 1026.32(a)(1)(ii).
🔸 TotalLoanAmount
Data Type |
---|
Currency |
The total loan amount is defined in Section 1026.32(b)(4). It is calculated by taking the Regulation Z Amount Financed and deducting some of the financed fees and charges which are provided as inputs to the calculation.
🔸 TotalPointsFees
Data Type |
---|
Currency |
The total points and fees value is defined in Section 1026.32(b)(1). It is calculated by taking the Regulation Z Finance Charge and deducting some portions of the Finance Charge, and then adding other fees and charges which are provided as inputs to the calculation.
🟥 <PrepaymentTrigger>
Element Type | Data Type |
---|---|
Empty | - |
Attributes:
🔸After36Months
,🔸Max
,🔸Total
This element provides further information on the HCM prepayment test, which may be of interest to the calling application. The element itself contains no data. Instead, all of the relevant information is contained in the following attributes of the element:
🔸 After36Months
Data Type | Values |
---|---|
Boolean | true , false |
If the creditor can charge a prepayment penalty more than 36 months after consummation, then the loan is a HCM.
🔸 Max
Data Type |
---|
Currency |
The maximum prepayment penalty is computed according to Section 1026.32(a)(1)(iii), and is equal to 2% of the specified AmountPrepaid. If the Total amount exceeds this value, then the loan is a HCM.
🔸 Total
Data Type |
---|
Currency |
This attribute returns the total potential amount of prepayment penalties.
Higher Priced Mortgage Loans (HPML)
Higher Priced Mortgage Loans are defined as consumer-purpose, closed-end loans secured by a consumer’s principal dwelling that have an annual percentage rate (APR) equal to or greater than the Average Prime Offer Rate (APOR) by 1.5 percentage points for first-lien loans, or 3.5 percentage points for subordinate-lien loans for a comparable transaction.
The APOR is published weekly by the federal government, and the two files (one for fixed rates and one for adjustable rates) are available for download at the FFIEC's web site.
Please note that it is necessary that these files be updated weekly, or else the SCEX will not be able to determine if a loan is a HPML for loans whose lock in dates fall outside the range of dates provided in the APOR files.
Sample Request
The following is a sample SCEX request for a HPML calculation:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE inHPML SYSTEM "inHPML.dtd">
<inHPML DataDirPath="C:\SCEX\">
<Lien Type="first" Jumbo="false" />
<Loan RateType="fixed" />
<LockInDate>2009-12-22</LockInDate>
<RegZApr>5.500</RegZApr>
<TermInYears>30</TermInYears>
</inHPML>
Sample Response
The following is the XML response associated with the request above:
<?xml version="1.0" standalone="no"?>
<!DOCTYPE outHPML SYSTEM "outHPML.dtd">
<outHPML>
<Description>Valid Calculation</Description>
<IsHpml Apor="5.000" Spread="1.5" Difference="-1.0" Date="2009-12-21">false</IsHpml>
</outHPML>
Higher Priced Mortgage Loans (HPML) - Request
Please see the Legend to understand the conventions used to document each element and attribute. Note that for requests, the XML elements are documented in alphabetical order by parent element.
Element | Attributes |
---|---|
🟥 <inHPML> | 🔹DataDirPath |
|- 🟥 <Lien> | 🔹Jumbo , 🔹Type |
|- 🟥 <Loan> | 🔹RateType |
|- 🟥 <LockInDate> | |
|- 🟥 <RegZApr> | |
|- 🟥 <TermInYears> |
🟥 <inHPML>
Element Type | Data Type |
---|---|
Parent | - |
This is the root element of the HPML query input message, and is required. This
contains child elements which specify the particulars of the already computed
loan which is being examined to see if it is a HPML. The following attributes of
the <inHPML>
element are defined:
Attributes:
🔹DataDirPath
🔹 DataDirPath
Data Type | Values | Default |
---|---|---|
Text | See below | See below |
If this attribute is set, the SCE will look for a data folder containing the
setup files in the path specified. Thus, if the DataDirPath
is set to
C:\SCEX\
, the SCE will look for the setup files in C:\SCEX\data
.
If the calling application wishes to specify the data directory path in its
entirety (e.g. the calling app does not want the SCE to append \data
to the
provided path), then simply terminate the specified DataDirPath
with an
asterisk (*
). Thus, if the DataDirPath
is set to C:\SCEX\bank1\*
, the SCE
will look for the setup files in C:\SCEX\bank1\
.
If this attribute is not set, the SCE will attempt to locate the data folder in
the default data directory path location, which can be retrieved using the
<inVERSION>
module query, and set via the SCE API.
This attribute is useful if you wish to use only a single installation of the
SCE, but have many different setup file groupings. By specifying a different
DataDirPath
for each grouping, you can easily separate the groups from one
another instead of grouping them all together in a single directory.
🟥 <Lien>
Element Type | Data Type |
---|---|
Empty | - |
This element itself contains no data. Instead, all of the information used to determine the type of lien is contained in the following attribute of the element:
🔹 Jumbo
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
Effective June 1, 2013, first-lien loans that exceed the maximum principal obligation eligible for purchase by Freddie Mac (i.e., a “jumbo” loan) have a rate spread of 2.5% instead of the normal first-lien value of 1.5%.
Note that the value of this attribute will be ignored for subordinate-lien loans.
🔹 Type
Data Type | Values | Default |
---|---|---|
Enum | first , subordinate | first |
The type of lien determines the amount over the APOR at which time a loan’s Regulation Z APR is considered a HPML. For first-lien loans, that value is 1.5% (or 2.5% for first-lien jumbo loans as of 6/01/2013); for subordinate-lien loans, that value is 3.5%.
🟥 <Loan>
Element Type | Data Type |
---|---|
Empty | - |
This element itself contains no data. Instead, all of the information used to determine the type of loan is contained in the following attribute of the element:
Attributes:
🔹RateType
🔹 RateType
Data Type | Values | Default |
---|---|---|
Enum | fixed , adjustable | fixed |
The APOR is looked up in one of two tables, determined by the loan’s rate type. If the loan uses a fixed rate, then the SCEX will look-up the APOR from the YieldTableFixed.txt file. If the loan uses an adjustable rate, then the SCEX will look-up the APOR from the YieldTableAdjustable.txt file.
🟥 <LockInDate>
Element Type | Data Type | Values |
---|---|---|
Data | Date | >= 1900-01-01 |
This element contains the date on which the interest rate of the loan was locked
in. All dates must be in the form of YYYY-MM-DD, and be 10 characters long.
Hence, a lock in date of December 22, 2009 would be specified as
<LockInDate>2009-12-22</LockInDate>
.
The lock in date is used to lookup the APOR rate from the appropriate file. Each row of the file begins with a date, and the row which will be used will have a date which is either on the lock in date, or does not precede it by more than 6 days. Since these files are updated weekly, there should never be more than six days between the date of the row used and the specified lock in date.
If the SCEX can not find a row in the APOR file which is appropriate for use with the specified lock in date, then an error message will be returned informing the calling application.
Attributes: None
🟥 <RegZApr>
Element Type | Data Type | Values |
---|---|---|
Data | Decimal | any |
This element contains the computed Regulation Z APR for the loan we are
checking. The Regulation Z APR should be expressed as a percentage. For example,
a loan computed with a Reg. Z APR of 5.5% would be specified as
<RegZApr>5.5</RegZApr>
.
Attributes: None
🟥 <TermInYears>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | [1...50] |
The <TermInYears>
element holds the term of the loan, in whole years. Valid
terms range from 1 year to 50 years, inclusive. If the loan’s
RateType
is adjustable
, then the value of this element
represents the initial, fixed rate term of the adjustable rate loan.
Attributes: None
Higher Priced Mortgage Loans (HPML) - Response
Please see the Legend to understand the conventions used to document each element and attribute. Note that for responses, the XML elements are documented in the order that they appear in the response.
Element | Attributes |
---|---|
<outHPML> | |
<Description> | |
<XMLDetail>[] | |
<IsHpml> | 🔸Apor , 🔸Spread , 🔸Difference , 🔸Date |
🟥 <outHPML>
Element Type | Data Type |
---|---|
Parent | - |
This is the root element of the HPML query input message, and is required. This element simply acts as a container for all of the result child elements.
Attributes: None
🟥 <Description>
Element Type | Data Type | Values |
---|---|---|
Data | Text | - |
If the calculation was completed successfully, then this element will contain the value 'Valid Calculation'. Otherwise, this element will contain a description of the problem encountered during the attempted computation.
Attributes: None
🟦 <XMLDetail>[]
Element Type | Data Type | Default |
---|---|---|
Data | Text | n/a |
The XMLDetail elements are messages passed back to the calling application which
detail the status of the XML request. If the SCEX issues any warnings regarding
unrecognized elements or attributes, then each warning message will be displayed
in an <XMLDetail>
element.
In our sample output above, no warnings are returned by the SCEX, and hence
there are no <XMLDetail>
elements returned.
Attributes: None
🟥 <IsHpml>
Element Type | Data Type | Values |
---|---|---|
Data | Boolean | true , false |
The value of this element will either be true or false, and will indicate whether or not the submitted loan is a HPML. The following attributes of this element provide a bit more detailed information, which may be of interest to the calling application:
Attributes:
🔸Apor
,🔸Spread
,🔸Difference
,🔸Date
🔸 Apor
Data Type | Values |
---|---|
Decimal | No Restriction |
The value of this attribute contains the Average Prime Offer Rate for the submitted loan. This value is retrieved from the appropriate APOR file (fixed or adjustable).
🔸 Spread
Data Type | Values |
---|---|
Decimal | No Restriction |
The spread value depends upon the type of lien. First-lien loans have a spread of 1.5, and subordinate-lien loans have a spread of 3.5.
🔸 Difference
Data Type | Values |
---|---|
Decimal | No Restriction |
The value of this attribute returns the difference between the submitted Regulation Z APR, and the APOR plus the spread. If the difference is greater than or equal to zero (which means that the Reg. Z APR is greater than or equal to the APOR plus spread), then the loan is a HPML.
🔸 Date
Data Type | Values |
---|---|
Date | >= 1900-01-01 |
The Date attribute contains the date on which the APOR data was effective. As an example, if the lock in date was 2009-12-22, then the date returned should be 2009-12-21 (if the APOR rates files are up to date).
Account List
The SCEX’s account interface allows the user to determine the name of each account set up for the SCEX in a given location. An account is defined as a set of setup files associated with an account number which starts at 1 and has a maximum value of 9,999. The setup files for a given account number configure the SCEX to compute loans with protection in a particular manner.
The clients.set
file (located in the same data directory as the other setup
files) holds the name of each setup file. These names are user-defined and may
be edited by you using any text editor. The first account name (corresponding to
account #0001) is on the second line, with subsequent account names following on
separate lines.
Sample Request
The following is a sample SCEX request for account information:
<inACCOUNT
DataDirPath="C:\SCEX\"
AccountStart="1"
AccountEnd="99"
/>
Sample Response
The following is a sample XML response generated by the previous sample request:
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE outACCOUNT SYSTEM "outACCOUNT.dtd">
<outACCOUNT>
<Accounts Number="2">
<Account Number="1">Single Premium</Account>
<Account Number="2">MDB</Account>
</Accounts>
</outACCOUNT>
Account List - Request
Please see the Legend to understand the conventions used to document each element and attribute. Note that for requests, the XML elements are documented in alphabetical order by parent element.
Element | Attributes |
---|---|
<inAccount> | 🔹AccountEnd , 🔹AccountStart , 🔹DataDirPath |
🟥 <inACCOUNT>
Element Type | Data Type |
---|---|
Parent | - |
Attributes:
🔹AccountEnd
,🔹AccountStart
,🔹DataDirPath
This is the root element of the XML account request, and is required. This
element is empty, and thus contains neither data nor child elements. The
following attributes of the <inACCOUNT>
element are defined:
🔹 AccountEnd
Data Type | Values | Default |
---|---|---|
Integer | [1...9999] | 9999 |
Attribute which allows the user to specify an account number other than the
default to terminate the account list. If left unspecified, or if a value is
provided which exceeds the number of accounts in the clients.set
file, then
the last account number will be used.
🔹 AccountStart
Data Type | Values | Default |
---|---|---|
Integer | [1...9999] | 9999 |
This optional attribute allows the user to specify a starting account number.
The default value of 1
will return an account list starting with the first
account. If the account start value exceeds the number of accounts available,
then the start value will be set to 1
.
🔹 DataDirPath
Data Type | Values | Default |
---|---|---|
Text | See below | See below |
If this attribute is set, the SCE will look for a data folder containing the
setup files in the path specified. Thus, if the DataDirPath
is set to
C:\SCEX\
, the SCE will look for the setup files in C:\SCEX\data
.
If the calling application wishes to specify the data directory path in its
entirety (e.g. the calling app does not want the SCE to append \data
to the
provided path), then simply terminate the specified DataDirPath
with an
asterisk (*
). Thus, if the DataDirPath
is set to C:\SCEX\bank1\*
, the SCE
will look for the setup files in C:\SCEX\bank1\
.
If this attribute is not set, the SCE will attempt to locate the data folder in
the default data directory path location, which can be retrieved using the
<inVERSION>
module query, and set via the SCE API.
This attribute is useful if you wish to use only a single installation of the
SCE, but have many different setup file groupings. By specifying a different
DataDirPath
for each grouping, you can easily separate the groups from one
another instead of grouping them all together in a single directory.
Account List - Response
Please see the Legend to understand the conventions used to document each element and attribute. Note that for responses, the XML elements are documented in the order that they appear in the response.
Element | Attributes |
---|---|
<outAccount> | |
<XMLDetail>[] | |
<Accounts> | 🔸Number |
<Account>[] | 🔸Number |
🟥 <outACCOUNT>
(module)
Element Type | Data Type |
---|---|
Parent | - |
This is the root element of the XML account response, and is required. This element simply acts as a container for all of the result child elements.
Attributes: None
🟦 <XMLDetail>[]
Element Type | Data Type | Default |
---|---|---|
Data | Text | n/a |
The XMLDetail elements are messages passed back to the calling application which
detail the status of the XML request. If the SCEX issues any warnings regarding
unrecognized elements or attributes, then each warning message will be displayed
in an <XMLDetail>
element.
In our sample output above, no warnings are returned by the SCEX, and hence
there are no <XMLDetail>
elements returned.
Attributes: None
🟥 <Accounts>
Element Type | Data Type |
---|---|
Parent | - |
This element contains the number of accounts returned in the list (as an attribute), and is the parent element for the individual elements containing the information for each account.
Attributes:
🔸Number
🔸 Number
Data Type |
---|
Integer |
This attribute specifies the number of accounts returned in the account list. If
AccountStart
and
AccountEnd
were both specified in the input
query, and if they were both valid, then Number = AccountEnd – AccountStart + 1
.
🟥 <Accounts>
→ <Account>[]
Element Type | Data Type |
---|---|
Data | Text |
This element contains the account name (as element data) and number (as a
property) of a single account. The element data is taken from the clients.set
file.
Attributes:
🔸Number
🔸 Number
Data Type |
---|
Integer |
This attribute associates the correct account number (as specified by the
Account
property in most loan
input queries) with the account name.
Input Tool
The input tool interface allows the calling application to request user interface information for a given account and loan type. The SCE then reads the setup files for the specified account, and returns information useful for determining what prompts and/or options should be displayed to the user.
What type of user interface information is returned? Whether or not insurance is allowed on a given loan type, the number of payments per year allowed, etc. For a complete description, see the output definition in the last half of the chapter.
Sample Request
The following is a sample request for the Input Tool module:
<inINPUT_TOOL
Account="1"
DataDirPath="C:\SCEX\"
ForceReload="false"
LoanType="Equal"
/>
Note that like the Version module, the Input Tool request consists solely of one empty root element. All data sent as part of the request is in the form of attributes of the root element.
Sample Response
The following is a sample response returned by the previous sample request:
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE outINPUT_TOOL SYSTEM "outINPUT_TOOL.dtd">
<outINPUT_TOOL>
<CalcResult>Valid Calculation</CalcResult>
<LoanSetup>
<DefaultDays>30</DefaultDays>
<MinDays>1</MinDays>
<MaxDays>90</MaxDays>
<MaxDaysSinglePay>365</MaxDaysSinglePay>
<DefAmount>20000.00</DefAmount>
<MinAmount>0.00</MinAmount>
<MaxAmount>10000000.00</MaxAmount>
<ShowRate>1</ShowRate>
<DefRate>10.000</DefRate>
<MinRate>0.002</MinRate>
<MaxRate>21.00</MaxRate>
<ShowPPY>1</ShowPPY>
<PPY>11111111</PPY>
<DefTerm>36</DefTerm>
<MinTerm>2</MinTerm>
<MaxTerm>360</MaxTerm>
<PromptFinIns>0</PromptFinIns>
<AllowPast28>1</AllowPast28>
<AllowAutoLoans>0</AllowAutoLoans>
<True360>0</True360>
<DebtProtection>0</DebtProtection>
<DebtTitle>Debt Protection</DebtTitle>
<ShowHOEPALoanType>0</ShowHOEPALoanType>
<PremiumType>0</PremiumType>
<PromptOpenEnd>0</PromptOpenEnd>
<DiscloseHOEPA>2</DiscloseHOEPA>
<AcceleratedBiWeekly>0</AcceleratedBiWeekly>
<DefaultBirthday>19660416</DefaultBirthday>
</LoanSetup>
<ARM>
<FirstRateIncrease>2.000</FirstRateIncrease>
<RoundRate>0.000</RoundRate>
<TeaserTermDef>24</TeaserTermDef>
<TermInc>12</TermInc>
<TeaserRateDef>6.000</TeaserRateDef>
<MaxAnnualInc>2.000</MaxAnnualInc>
<MaxLoanInc>6.000</MaxLoanInc>
<MinLifeRate>0.000</MinLifeRate>
<MaxLifeRate>0.000</MaxLifeRate>
</ARM>
<PMI>
<AllowPMI>0</AllowPMI>
<AssumePMI>0</AssumePMI>
<UpFront>2</UpFront>
<PercentToWarn>0</PercentToWarn>
<PercentToRemove>80</PercentToRemove>
<AddToPrin>0</AddToPrin>
<AddToFinChg>0</AddToFinChg>
<PutPMIinAmort>0</PutInAmort>
<PromptFrequency>1</PromptFrequency>
<PromptUpFront>0</PromptUpFront>
<PromptAddToPrin>0</PromptAddToPrin>
<PromptAddToFinChg>0</PromptAddToFinChg>
</PMI>
<CreditLife>
<CLTitle>Credit Life</CLTitle>
<CLAbbrev>CL</CLAbbrev>
<CLAllow>1</CLAllow>
<CLSingleOnCoBorrower>0</CLSingleOnCoBorrower>
<CLDefault>1</CLDefault>
<CLDefaultMethod>1</CLDefaultMethod>
<CLPromptMethod>0</CLPromptMethod>
<CLPromptTermGross>0</CLPromptTermGross>
<CLPromptTermNet>1</CLPromptTermNet>
<CLPromptTermMOB>0</CLPromptTermMOB>
<CLPromptDismemberment>1</CLPromptDismemberment>
<CLPromptUseLevelRates>1</CLPromptUseLevelRates>
<CLPromptBirthdaysGross>0</CLPromptBirthdaysGross>
<CLPromptBirthdaysNet>1</CLPromptBirthdaysNet>
<CLPromptBirthdaysMOB>0</CLPromptBirthdaysMOB>
<CLPromptCov>0</CLPromptCov>
<CLMinLoanTerm>0</CLMinLoanTerm>
<CLMinTruncTerm>0</CLMinTruncTerm>
<CLAllowNonMonthlyGross>1</CLAllowNonMonthlyGross>
<CLAllowWeeklyGross>1</CLAllowWeeklyGross>
<CLAllowNonMonthlyNet>1</CLAllowNonMonthlyNet>
<CLAllowWeeklyNet>1</CLAllowWeeklyNet>
<CLAllowNonMonthlyMOB>0</CLAllowNonMonthlyMOB>
<CLAllowWeeklyMOB>0</CLAllowWeeklyMOB>
<CLMult>6</CLMult>
<CLNBCManditory>0</CLNBCManditory>
<LLTitle>Level Life</LLTitle>
<LLAbbrev>LL</LLAbbrev>
</CreditLife>
<AccidentHealth>
<AHTitle>Accident & Health</AHTitle>
<AHAbbrev>AH</AHAbbrev>
<AHAllow>1</AHAllow>
<AHSingleOnCoBorrower>0</AHSingleOnCoBorrower>
<AHMethod>0</AHMethod>
<AHAllowBalloonGross>1</AHAllowBalloonGross>
<AHAllowBalloonNet>1</AHAllowBalloonNet>
<AHDefault>1</AHDefault>
<AHPromptBenefit>0</AHPromptBenefit>
<AHPromptTermGross>0</AHPromptTermGross>
<AHPromptTermNet>0</AHPromptTermNet>
<AHMinTruncTerm>0</AHMinTruncTerm>
<AHPromptBirthdays>1</AHPromptBirthdays>
<AHMult>1</AHMult>
<AHOnly>1</AHOnly>
<AHJointWOJointCL>1</AHJointWOJointCL>
<AHNonMonthly>1</AHNonMonthly>
<AHSetCount>1</AHSetCount>
<AHSetTitle>14 Retro</AHSetTitle>
<AHCoverBalloon>0</AHCoverBalloon>
<AHTermEqualsCL>0</AHTermEqualsCL>
</AccidentHealth>
<InvoluntaryUnemployment>
<IUTitle>Involuntary Unemployment</IUTitle>
<IUAbbrev>IU</IUAbbrev>
<IUAllow>1</IUAllow>
<IUDefault>1</IUDefault>
<IUSingleOnCoBorrower>0</IUSingleOnCoBorrower>
<IUOnly>1</IUOnly>
<IUJointWOJointCL>1</IUJointWOJointCL>
<IUwoAH>1</IUwoAH>
<IUJointWOJointAH>1</IUJointWOJointAH>
<IUPromptBenefit>0</IUPromptBenefit>
<IUPromptTerm>0</IUPromptTerm>
<IUMult>1</IUMult>
<IUPromptBirthdays>0</IUPromptBirthdays>
<IUTermEqualsCLTerm>0</IUTermEqualsCLTerm>
<IUNonMonthly>0</IUNonMonthly>
</InvoluntaryUnemployment>
<PersonalProperty>
<PPTitle>Personal Property</PPTitle>
<PPAbbrev>PP</PPAbbrev>
<PPAllow>1</PPAllow>
<PPDefault>1</PPDefault>
<PPPromptCoverage>0</PPPromptCoverage>
</PersonalProperty>
</outINPUT_TOOL>
Input Tool - Request
Please see the Legend to understand the conventions used to document each element and attribute. Note that for requests, the XML elements are documented in alphabetical order by parent element.
Element | Attributes |
---|---|
<inINPUT_TOOL> | 🔹Account , 🔹DataDirPath , 🔹ForceReload , 🔹LoanType |
🟥 <inINPUT_TOOL>
Element Type | Data Type |
---|---|
Parent | - |
This is the root element of the XML request, and is required. This element is empty, and thus contains neither data nor child elements.
The following attributes of the <inINPUT_TOOL>
element are defined:
Attributes:
🔹Account
,🔹DataDirPath
,🔹ForceReload
,🔹LoanType
🔹 Account
Data Type | Values | Default |
---|---|---|
Integer | [1...9999] | 1 |
This attribute specifies which account should be used to query user interface
settings. If this attribute is not specified, a default value of 1
will be
used.
🔹 DataDirPath
Data Type | Values | Default |
---|---|---|
Text | See below | See below |
If this attribute is set, the SCE will look for a data folder containing the
setup files in the path specified. Thus, if the DataDirPath
is set to
C:\SCEX\
, the SCE will look for the setup files in C:\SCEX\data
.
If the calling application wishes to specify the data directory path in its
entirety (e.g. the calling app does not want the SCE to append \data
to the
provided path), then simply terminate the specified DataDirPath
with an
asterisk (*
). Thus, if the DataDirPath
is set to C:\SCEX\bank1\*
, the SCE
will look for the setup files in C:\SCEX\bank1\
.
If this attribute is not set, the SCE will attempt to locate the data folder in
the default data directory path location, which can be retrieved using the
<inVERSION>
module query, and set via the SCE API.
This attribute is useful if you wish to use only a single installation of the
SCE, but have many different setup file groupings. By specifying a different
DataDirPath
for each grouping, you can easily separate the groups from one
another instead of grouping them all together in a single directory.
🔹 ForceReload
Data Type | Values | Default |
---|---|---|
Boolean | true , false , 1 , 0 | false |
The SCE caches setup files previously used. This improves performance for
subsequent loan requests using one of the cached accounts. However, if you need
the SCE to reload the setup files for a given request (e.g. you just copied
over new setup files), then you can set this attribute to true
and the setup
files will be forced to reload. If left at the default value of false
, then
setup files are only reloaded when the SCE notices that one of the setup files
has been modified.
🔹 LoanType
Data Type | Values | Default |
---|---|---|
Enum | [See Table Below] | Equal |
The LoanType
attribute asks what kind of repayment plan is associated with the
loan in question. Different loan types will harvest different data from the
setup files.
LoanType | Explanation | Modules |
---|---|---|
Equal | Loans with equal payments | EQUAL_PMT, EQUAL_PROCEEDS and EQUAL_TERM |
Balloon | Balloon loans | BALLOON_SPECIFY_AMORT, BALLOON_SPECIFY_REGULAR, BALLOON_SPECIFY_FINAL |
SinglePay | Loans with a single payment | SINGLE_PAYMENT |
IntOnly | Interest only payments with a final payoff | INTEREST_ONLY |
PrinPlus | Constant principal + Interest | PRINCIPAL_PLUS_INTEREST |
SkipsPickups | Skipped payments or Pickup Pmts | SKIPS_PICKUPS |
SkipsIrregs | Skipped payments or Irregular Pmts | SKIPS_IRREGULARS |
ARM | Adjustable Rate Mortgages | ARM |
The LoanType
attribute specifies the type of loan about which the calling
application wishes to query user interface information. This is necessary
because some user interface options apply to one type of loan, but not another.
As an example, credit life may be allowed on equal and balloon payment loans,
but disallowed on all others. If this attribute is left unspecified, then an
equal loan is assumed.
Input Tool - Response
Please see the Legend to understand the conventions used to document each element and attribute. Note that for responses, the XML elements are documented in the order that they appear in the response.
🟥 <outINPUT_TOOL>
Element Type | Data Type |
---|---|
Parent | - |
This is the root element of the XML response, and is required. This element simply acts as a container for all of the result child elements.
🟥 <CalcResult>
Element Type | Data Type |
---|---|
Data | Text |
If the calculation was completed successfully, then this element will contain
the value Valid Calculation
. Otherwise, this element will contain a
description of the problem encountered during the attempted computation.
🟦 <XMLDetail>[]
Element Type | Data Type | Default |
---|---|---|
Data | Text | NULL |
The <XMLDetail>
elements are messages passed back to the calling application
which detail the status of the request. If the SCEX issues any warnings
regarding unrecognized elements or attributes, then each warning message will be
displayed in an <XMLDetail>
element.
In our sample output above, no warnings are returned by the SCEX, and hence
there are no <XMLDetail>
elements returned.
🟥 <LoanSetup>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements describing general loan user interface issues, such as miscellaneous minimum, maximum, and default values, allowed payment frequencies, etc.
🟥 <LoanSetup>
→<DefaultDays>
Element Type | Data Type |
---|---|
Data | Integer |
Contains the default number of days between the loan date and the date of first payment.
🟥 <LoanSetup>
→<MinDays>
Element Type | Data Type |
---|---|
Data | Integer |
Defines the minimum number of days allowed between the loan date and the first payment date for monthly loans only. This value is not enforced within the SCE as it is a user interface issue.
🟥 <LoanSetup>
→<MaxDays>
Element Type | Data Type |
---|---|
Data | Integer |
Defines the maximum number of days allowed between the loan date and the first payment date for monthly loans only. This value is not enforced within the SCE as it is a user interface issue.
🟥 <LoanSetup>
→<MaxDaysSinglePays>
Element Type | Data Type |
---|---|
Data | Integer |
Defines the maximum number of days allowed between the loan date and the single payment date for single payment loans. This value is not enforced within the SCE as it is a user interface issue.
🟥 <LoanSetup>
→<DefAmount>
Element Type | Data Type |
---|---|
Data | Currency |
Contains the default proceeds amount.
🟥 <LoanSetup>
→<MinAmount>
Element Type | Data Type |
---|---|
Data | Currency |
Holds the minimum proceeds amount allowed. This value is not enforced within the SCE as it is a user interface issue.
🟥 <LoanSetup>
→<MaxAmount>
Element Type | Data Type |
---|---|
Data | Currency |
Holds the maximum proceeds amount allowed. This value is not enforced within the SCE as it is a user interface issue.
🟥 <LoanSetup>
→<ShowRate>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
Not all accrual methods require a prompt to be visible for the note rate (e.g.
split rate loans which have their rates defined in the setup files). A value of
1
means that the note rate prompt should be displayed, whereas a value of 0
indicates that it need not be displayed.
🟥 <LoanSetup>
→<DefRate>
Element Type | Data Type |
---|---|
Data | Decimal |
Contains the default note rate amount.
🟥 <LoanSetup>
→<MinRate>
Element Type | Data Type |
---|---|
Data | Decimal |
Holds the minimum note rate allowed. This value is not enforced within the SCE as it is a user interface issue.
🟥 <LoanSetup>
→<MaxRate>
Element Type | Data Type |
---|---|
Data | Decimal |
Holds the maximum note rate allowed. This value is not enforced within the SCE as it is a user interface issue.
🟥 <LoanSetup>
→<ShowPPY>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
Should an entry prompting for the payment frequency be displayed? 1
= yes, 0
= no.
🟥 <LoanSetup>
→<PPY>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | [See Table Below] |
If the payment frequency needs to be prompted (see
<ShowPPY>
), then this element informs the user interface
which payment frequencies are allowed. The content of this element is eight
characters in length, and each character will be either a one (1) or a zero (0).
A value of 1
indicates that the payment frequency associated with the position
should be allowed, whereas a value of 0
indicates that the frequency should
not be offered.
Position | Payment Frequency |
---|---|
1 | Monthly |
2 | Annual |
3 | Semiannual |
4 | Quarterly |
5 | Bimonthly |
6 | Semimonthly |
7 | Biweekly |
8 | Weekly |
🟥 <LoanSetup>
→<DefTerm>
Element Type | Data Type |
---|---|
Data | Integer |
Defines the default loan term, expressed as a number of months.
🟥 <LoanSetup>
→<MinTerm>
Element Type | Data Type |
---|---|
Data | Integer |
Holds the minimum loan term (expressed in months) allowed. This value is not enforced within the SCE as it is a user interface issue.
🟥 <LoanSetup>
→<MaxTerm>
Element Type | Data Type |
---|---|
Data | Integer |
Holds the maximum loan term (expressed in months) allowed. This value is not enforced within the SCE as it is a user interface issue.
🟥 <LoanSetup>
→<PromptFinIns>
Element Type | Data Type |
---|---|
Data | Integer |
Some institutions and insurance types allow the borrower to pay for the
insurance premium up front, instead of financing it. If financing the insurance
is an option which should be available, then this element will be set to 1
,
for yes. Otherwise, a value of 0
will signify that this is not an option, and
no prompt should appear.
🟥 <LoanSetup>
→<AllowPast28>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If the first payment date is allowed to fall on a day number greater than 28,
then this element will be set to 1
, for yes. Otherwise, a value of 0
will
signify that payment dates beyond the 28th day of a month are not allowed.
🟥 <LoanSetup>
→<AllowAutoLoans>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If this account has been set up to auto prompts, then this element will be set
to 1
. Otherwise, a value of 0
indicates that no auto prompts are necessary.
This is primarily for the Winloan32, as the SCE itself has no auto prompts
defined. Instead, the calling application would need to take into account price,
down payment, etc. and then feed the resulting actual loan amount to the SCE.
🟥 <LoanSetup>
→<True360>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If this account has been set up to use a True 360 day calendar (e.g. all months
have 30 days, regardless of the actual number of days between payments), then
this element will contain the value 1. Otherwise, a value of 0
will be present.
🟥 <LoanSetup>
→<DebtProtection>
Element Type | Data Type |
---|---|
Data | Text |
If this account has been set up to offer debt protection coverage instead of
insurance, then this element will hold the value 1
. Otherwise, a value of 0
will
be present. This setting is useful to distinguish debt protection verbiage from
insurance verbiage, such as "fee" instead of "premium".
🟥 <LoanSetup>
→<DebtTitle>
Element Type | Data Type |
---|---|
Data | Text |
Different lending institutions may use different terminology when offering debt protection. The value of this element contains the title of this product for the account.
🟥 <LoanSetup>
→<ShowHOEPALoanType>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
HOEPA calculations have been deprecated in the SCE, so you may ignore this element.
🟥 <LoanSetup>
→<PremiumType>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | [0..3] |
The type of premium which has been set up for the account may be useful
knowledge for your user interface. The numeric values possible and their
associated meanings are as follows: 0
= standard single premium, 1
=
standard monthly outstanding balance, 2
= True monthly outstanding balance,
3
= TruStage single premium.
🟥 <LoanSetup>
→<PromptOpenEnd>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If this element holds a value of 1
, then this account has been set up to prompt
the user if this is a TruStage open ended loan. A TruStage open ended loan
causes all age and term related truncation caps to be ignored.
If this element holds a value other than 1
, then the open ended prompt need
not be displayed (and the corresponding
LineOfCredit
attribute of the
<Protection>
element should be set to
false
.
🟥 <LoanSetup>
→<DiscloseHOEPA>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
HOEPA calculations have been deprecated in the SCE, so you may ignore this element.
🟥 <LoanSetup>
→<AcceleratedBiWeekly>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
Accounts that have set up accelerated biweekly payment schedules will report a
value of 1
in this element. If normal biweekly payments are set up, then a value
of 0
will be returned.
If accelerated biweekly payment schedules are in effect, it is very important to
understand that the value of the <Term>
element sent to the SCEX will be interpreted as a number of monthly payments,
not biweekly payments. The SCE will then compute a monthly loan based upon that
term, divide the resulting payment in half, and then compute a biweekly loan
term using the computed payment. This computed biweekly term is then returned
with the response, along with all of the other standard result information.
🟥 <LoanSetup>
→<DefaultBirthday>
Element Type | Data Type |
---|---|
Data | Integer |
The default birthday to be used with protection products is entered here as an
integer. e.g. January 17, 1996 would be returned as 19960117
.
🟥 <LoanSetup>
→<Construction>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | 1 , 2 |
Accounts that do not have construction loans configured will return a value of
0
. If construction loans have been configured for this account, then a value
greater than zero will be returned in this element, identifying the construction
loan method in use:
1
= simple method where construction interest is treated as a prepaid fee when a permanent loan is attached2
= LaserPro method which prepends interest only payments to the amortization schedule when a permanent loan is attached.
🟥 <ARM>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements describing how adjustable rate mortgages have been configured in the setup files. When computing ARMs, you can use these values as is, as defaults, or ignore them completely.
🟥 <ARM>
→<FirstRateIncrease>
Element Type | Data Type |
---|---|
Data | Decimal |
The default UI value for the
<FirstRateIncrease>
element of an
<inARM>
request.
🟥 <ARM>
→<RoundRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The default UI value for the <RoundRate>
element of an <inARM>
request.
🟥 <ARM>
→<TeaserTermDef>
Element Type | Data Type |
---|---|
Data | Integer |
The default UI value for the <TeaserTerm>
element of an <inARM>
request.
🟥 <ARM>
→<TermInc>
Element Type | Data Type |
---|---|
Data | Integer |
The default UI value for the <TermSteps>
element of an <inARM>
request.
🟥 <ARM>
→<TeaserRateDef>
Element Type | Data Type |
---|---|
Data | Decimal |
The default UI value for the <TeaserRate>
element of an <inARM>
request.
🟥 <ARM>
→<MaxAnnualInc>
Element Type | Data Type |
---|---|
Data | Decimal |
The default UI value for the
<AnnualRateIncrease>
element of an
<inARM>
request.
🟥 <ARM>
→<MaxLoanInc>
Element Type | Data Type |
---|---|
Data | Decimal |
The default UI value for the
<MaxRateIncrease>
element of an
<inARM>
request.
🟥 <ARM>
→<MinLifeRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The default UI value for the <MinRate>
element of an <inARM>
request.
🟥 <ARM>
→<MaxLifeRate>
Element Type | Data Type |
---|---|
Data | Decimal |
The default UI value for the <MaxRate>
element of an <inARM>
request.
🟥 <PMI>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements describing user interface issues dealing with PMI.
🟥 <PMI>
→<AllowPMI>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If PMI coverage is allowed, and hence if the prompts associated with it should
appear, then the value of this element is 1
. Otherwise, a value of 0
is returned
and all further child elements of PMI may be ignored.
🟥 <PMI>
→<AssumePMI>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
The value of this element indicates whether or not PMI coverage should be
provided as a default with a new loan. A value of 1
indicates that PMI coverage
should be defaulted to true, whereas a zero value indicates a default PMI
coverage of false.
🟥 <PMI>
→<UpFront>
Element Type | Data Type |
---|---|
Data | Integer |
This element contains the number of periodic PMI premiums to be made up front, as reported in the setup files. When calling the SCE and requesting PMI coverage, you may either use this value or select a different value.
🟥 <PMI>
→<PercentToWarn>
Element Type | Data Type |
---|---|
Data | Integer |
This element contains the loan to value ratio at which a warning should be issued, as reported in the setup files. When calling the SCE and requesting PMI coverage, you may either use this value or select a different value.
🟥 <PMI>
→<PercentToRemove>
Element Type | Data Type |
---|---|
Data | Integer |
This element contains the loan to value ratio at which PMI coverage should be removed, as reported in the setup files. When calling the SCE and requesting PMI coverage, you may either use this value or select a different value.
🟥 <PMI>
→<AddToPrin>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
The <AddToPrin>
element determines if the up front PMI fee should be added to the
principal balance, as reported in the setup files. A value of 1
means that the
PMI fee should be added to the principal balance, whereas a value of 0
indicates that the PMI fee will be paid out of pocket. When calling the SCE and
requesting PMI coverage, you may either use this value or select a different
value.
🟥 <PMI>
→<AddToFinChg>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
The <AddToFinChg>
element determines if the up front PMI fee should be included in
the Reg. Z Finance Charge (and hence, affect the APR), as reported in the setup
files. A value of 1
means that the PMI fee should be added to the finance
charge, whereas a value of 0
indicates that the PMI fee will not affect the
finance charge nor APR. When calling the SCE and requesting PMI coverage, you
may either use this value or select a different value.
🟥 <PMI>
→<PutPMIinAmort>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
This element determines if the periodic PMI premiums should be included in the
returned amortization schedule, as reported in the setup files. A value of 1
means that the PMI premiums should be included with the amortization table,
whereas a value of 0
indicates that PMI will not show up in the amortization
table. When calling the SCE and requesting PMI coverage, you may either use
this value or select a different value.
🟥 <PMI>
→<PromptFrequency>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If the value of this element is 1
, then the setup files indicate that the
application should allow the user to select a PMI frequency different than the
payment frequency of the loan. The application would then use this prompt's
value to fill the Freq attribute of the PMI element for a loan requesting PMI
coverage. A value of 0
indicates that the PMI frequency need not be prompted,
and no Freq attribute need be specified (it will default to the payment
frequency of the loan).
🟥 <PMI>
→<PromptUpFront>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If the value of this element is 1
, then the setup files indicate that the
application should allow the user to specify a number of periodic premiums to be
paid up front (with the default value specified in the UpFront element discussed
above). The application would then use this prompt's value to fill the UpFront
attribute of the PMI element for a loan requesting PMI coverage. A value of 0
indicates that the UpFront PMI premium need not be prompted, and the UpFront
attribute should be set to the value of the UpFront element.
🟥 <PMI>
→<PromptAddToPrin>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If the value of this element is 1
, then the setup files indicate that the
application should allow the user to specify whether or not the up front
periodic PMI premiums should be added to the principal balance or not (with the
default value specified in the <AddToPrin>
element discussed
above). The application would then use this prompt's value to fill the AddToPrin
attribute of the PMI element for a loan requesting PMI coverage. A value of 0
indicates that this option need not be prompted, and the AddToPrin attribute
should be set to the value of the AddToPrin element.
🟥 <PMI>
→<PromptAddToFinChg>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If the value of this element is 1
, then the setup files indicate that the
application should allow the user to specify whether or not the up front
periodic PMI premiums should be added to the finance charge or not (with the
default value specified in the AddToFinChg element discussed above). The
application would then use this prompt's value to fill the AddToFinChg attribute
of the PMI element for a loan requesting PMI coverage. A value of 0
indicates
that this option need not be prompted, and the AddToFinChg attribute should be
set to the value of the <AddToFinChg>
element.
🟥 <CreditLife>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements describing user interface issues dealing with credit life.
🟥 <CreditLife>
→<CLTitle>
Element Type | Data Type |
---|---|
Data | Text |
This element holds the product title associated with the SCE's credit life
calculation option. This title defaults to Credit Life
, although customers who
wish to customize the name of this offering may do so. For example, it could
simply be called Life
, or Death
. Customers who offer debt cancellation
instead of insurance will also usually wish to change the name of their life
product for regulatory reasons (e.g. DCL
for debt cancellation life). The
title may be used for inputs (e.g. "Credit Life Option") and outputs (e.g.
"Credit Life Premium").
🟥 <CreditLife>
→<CLAbbrev>
Element Type | Data Type |
---|---|
Data | Text |
Like the <CLTitle>
element above, this element provides an
abbreviation to be used for the product associated with the SCE's credit life
calculation option. The value of this element defaults to CL
, although
customers who wish to customize this abbreviation may do so. Customers who offer
debt cancellation instead of insurance will also usually wish to change the
abbreviations of their life product for regulatory reasons (e.g. DCL
for debt
cancellation life). The title may be used for inputs (e.g. "CL Option") and
outputs (e.g. "CL Coverage Term").
🟥 <CreditLife>
→<CLAllow>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If credit life coverage is allowed, and hence if the prompts associated with it
should appear, then the value of this element is 1
. Otherwise, a value of 0
is returned.
🟥 <CreditLife>
→<CLSingleOnCoBorrower>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If single coverage is allowed on the co-borrower, then this element will hold a
value of 1
. If it holds a value of 0
, then single life is only allowed on
the primary borrower.
🟥 <CreditLife>
→<CLDefault>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | [0..3] |
Specifies the default credit life option: 0
= None, 1
= Single, 2
= Joint,
3
= Single on Co-borrower.
🟥 <CreditLife>
→<CLDefaultMethod>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | [0..2] |
The default credit life method as specified in the setup files: 0
= Gross, 1
= Net, 2
= MOB.
🟥 <CreditLife>
→<CLPromptMethod>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
Some accounts using single premium insurance may support both net and gross
credit life. If this is the case, this element will hold a value of 1
to
signal the UI that the user should be prompted for the credit life method. A
value of 0
indicates that prompting for the credit life method is not
required, as only one method is allowed.
🟥 <CreditLife>
→<CLPromptTermGross>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If this element holds a value of 1
, then the user may be prompted for a
desired term of coverage for single premium gross credit life. A value of 0
indicates that user specified truncation is not allowed and should not be
prompted.
🟥 <CreditLife>
→<CLPromptTermNet>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If this element holds a value of 1
, then the user may be prompted for a
desired term of coverage for single premium net credit life. A value of 0
indicates that user specified truncation is not allowed and should not be
prompted.
🟥 <CreditLife>
→<CLPromptTermMOB>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If this element holds a value of 1
, then the user may be prompted for a
desired term of coverage for MOB credit life. A value of 0
indicates that user
specified truncation is not allowed and should not be prompted.
🟥 <CreditLife>
→<CLPromptDismemberment>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
Some accounts allow for an additional dismemberment option to be written with
the credit life policy (with an associated rate increase). If dismemberment is
an option for this account, then the element will hold a value of 1
.
Otherwise, a value of 0
indicates that no dismemberment is offered.
🟥 <CreditLife>
→<CLPromptUseLevelRates>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
In some states, it is legal to compute decreasing credit life using level rates.
If that is an option for the account specified, then this value will contain a
value of 1
indicating that the UI should prompt for the option to use level
rates. A value of 0
indicates that this option is not allowed, and hence the
prompt for using level rates should not be presented to the user.
🟥 <CreditLife>
→<CLPromptBirthdaysGross>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If age caps are in effect for single premium gross life coverage, and the UI
needs to prompt for birthdays, then this value will be set to 1
. If age
truncation is not set up, then this element will hold a value of 0
.
🟥 <CreditLife>
→<CLPromptBirthdaysNet>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If age caps are in effect for single premium net life coverage, and the UI needs
to prompt for birthdays, then this value will be set to 1
. If age truncation is
not set up, then this element will hold a value of 0
.
🟥 <CreditLife>
→<CLPromptBirthdaysMOB>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If age caps are in effect for MOB life coverage, and the UI needs to prompt for
birthdays, then this value will be set to 1
. If age truncation is not set up,
then this element will hold a value of 0
.
🟥 <CreditLife>
→<CLPromptCov>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If the account has been set up to allow for a coverage amount to be specified by
the user, then this value will be set to 1
to indicate that the UI should
prompt the user for a life coverage amount. A value of 0
indicates that only
the default coverage amount will be considered, and hence there is no need to
prompt for a user specified coverage.
🟥 <CreditLife>
→<CLMinLoanTerm>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
This element contains the minimum loan term (in months) for which credit life
coverage is allowed. A value of 0
indicates that no minimum loan term is in
effect.
🟥 <CreditLife>
→<CLMinTruncTerm>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
This element holds the minimum term (in months) that credit life may be
truncated. If the coverage term is truncated to a value less than this amount,
then coverage will be dropped. A value of 0
indicates that there is no credit
life minimum truncation term.
🟥 <CreditLife>
→<CLAllowNonMonthlyGross>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If single premium gross credit life is allowed on loans with payment frequencies
of 1, 2, 4, or 6 payments per year, then this element will hold a value of 1
.
A value of 0
indicates that coverage is not allowed on these payment
frequencies, and hence the UI need not display credit life prompts.
🟥 <CreditLife>
→<CLAllowWeeklyGross>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If single premium gross credit life is allowed on loans with payment frequencies
of 24, 26, or 52 payments per year, then this element will hold a value of 1
.
A value of 0
indicates that coverage is not allowed on these payment
frequencies, and hence the UI need not display credit life prompts.
🟥 <CreditLife>
→<CLAllowNonMonthlyNet>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If single premium net credit life is allowed on loans with payment frequencies
of 1, 2, 4, or 6 payments per year, then this element will hold a value of 1
.
A value of 0
indicates that coverage is not allowed on these payment
frequencies, and hence the UI need not display credit life prompts.
🟥 <CreditLife>
→<CLAllowWeeklyNet>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If single premium net credit life is allowed on loans with payment frequencies
of 24, 26, or 52 payments per year, then this element will hold a value of 1
.
A value of 0
indicates that coverage is not allowed on these payment
frequencies, and hence the UI need not display credit life prompts.
🟥 <CreditLife>
→<CLAllowNonMonthlyMOB>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If MOB credit life is allowed on loans with payment frequencies of 1, 2, 4, or 6
payments per year, then this element will hold a value of 1
. A value of 0
indicates that coverage is not allowed on these payment frequencies, and hence
the UI need not display credit life prompts.
🟥 <CreditLife>
→<CLAllowWeeklyMOB>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If MOB credit life is allowed on loans with payment frequencies of 24, 26, or 52
payments per year, then this element will hold a value of 1
. A value of 0
indicates that coverage is not allowed on these payment frequencies, and hence
the UI need not display credit life prompts.
🟥 <CreditLife>
→<CLMult>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | 1 , 3 , 6 , 12 |
If the user is allowed to specify a truncated term of coverage for credit life
(see <CLPromptTermGross>
,
<CLPromptTermNet>
and
<CLPromptTermMOB>
above), then this value defines the
multiple which the entered term of coverage must with. Possible values are: 1
(any), 3
, 6
and 12
.
🟥 <CreditLife>
→<CLNBCManditory>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
This was a custom modification made for a specific client, and can safely be ignored by all others.
🟥 <CreditLife>
→<LLTitle>
Element Type | Data Type |
---|---|
Data | Text |
This element holds the product title associated with the SCE's level credit life
calculation. This title defaults to Level Life
, although customers who wish to
customize the name of this offering may do so.
The title may be used for inputs (e.g. "Level Life Option") and outputs (e.g. "Level Life Premium").
🟥 <CreditLife>
→<LLAbbrev>
Element Type | Data Type |
---|---|
Data | Text |
Like the <LLTitle>
element above, this element provides an
abbreviation to be used for the product associated with the SCE’s level credit
life calculation option. The value of this element defaults to LL
, although
customers who wish to customize this abbreviation may do so. The title is
primarily useful when producing outputs (e.g. "LL Coverage Term").
🟥 <AccidentHealth>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements describing user interface issues dealing with accident and health coverage (A&H).
🟥 <AccidentHealth>
→<AHTitle>
Element Type | Data Type |
---|---|
Data | Text |
This element holds the product title associated with the SCE's accident and
health calculation option. This title defaults to Accident & Health
, although
customers who wish to customize the name of this offering may do so. For
example, it could simply be called Disability
.
🟥 <AccidentHealth>
→<AHAbbrev>
Element Type | Data Type |
---|---|
Data | Text |
Like the <AHTitle>
element above, this element provides an
abbreviation to be used for the product associated with the SCE’s accident and
health calculation option. The value of this element defaults to AH
, although
customers who wish to customize this abbreviation may do so. Customers who offer
debt cancellation instead of insurance will also usually wish to change the
abbreviations of their life product for regulatory reasons (e.g., DCD
for debt
cancellation disability).
The title may be used for inputs (e.g., "AH Option") and outputs (e.g., "AH Coverage Term").
🟥 <AccidentHealth>
→<AHAllow>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | [0..2] |
If A&H coverage is allowed by the account settings, then this element will
contain a value of either 1
(single A&H only) or 2
(both single and joint A&H
offered). A value of 0
indicates that A&H coverage is not allowed for this
account.
🟥 <AccidentHealth>
→<AHSingleOnCoBorrower>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If single coverage is allowed on the co-borrower, then this element will hold a
value of 1
. If it holds a value of 0
, then single life is only allowed on
the primary borrower.
🟥 <AccidentHealth>
→<AHMethod>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | [0..2] |
This element describes the method used to compute the A&H premium: 0
= Single
Premium, 1
= MOB Net, 2
= MOB Gross.
🟥 <AccidentHealth>
→<AHAllowBalloonGross>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If A&H coverage is allowed on balloon loans covered with single premium gross
credit life insurance, then this element will hold a value of 1
. Otherwise, a
value of 0
will be present.
🟥 <AccidentHealth>
→<AHAllowBalloonNet>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If A&H coverage is allowed on balloon loans covered with single premium net
credit life insurance, then this element will hold a value of 1
. Otherwise, a
value of 0
will be present.
🟥 <AccidentHealth>
→<AHDefault>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | [0..3] |
Specifies the default A&H option: 0
= None, 1
= Single, 2
= Joint, 3
= Single on
Co-borrower.
🟥 <AccidentHealth>
→<AHPromptBenefit>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If the account has been set up to allow for a benefit amount to be specified by
the user, then this value will be set to 1
to indicate that the UI should
prompt the user for the desired A&H benefit amount. A value of 0
indicates
that only the default benefit amount will be considered, and hence there is no
need to prompt for a user specified benefit.
🟥 <AccidentHealth>
→<AHPromptTermGross>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If this element holds a value of 1
, then the user may be prompted for a
desired term of coverage for A&H coverage with single premium gross credit life.
A value of 0
indicates that user specified truncation is not allowed and
should not be prompted.
🟥 <AccidentHealth>
→<AHPromptTermNet>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If this element holds a value of 1
, then the user may be prompted for a
desired term of coverage for A&H coverage with single premium net credit life. A
value of 0
indicates that user specified truncation is not allowed and should
not be prompted.
🟥 <AccidentHealth>
→<AHMinTruncTerm>
Element Type | Data Type |
---|---|
Data | Integer |
This element holds the minimum term (in months) that A&H may be truncated. If
the coverage term is truncated to a value less than this amount, then coverage
will be dropped. A value of 0
indicates that there is no minimum truncation
term.
🟥 <AccidentHealth>
→<AHPromptBirthdays>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If age caps are in effect for A&H, and the UI needs to prompt for birthdays,
then this value will be set to 1
. If age truncation is not set up, then this
element will hold a value of 0
.
🟥 <AccidentHealth>
→<AHMult>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | 1 , 3 , 6 , 12 |
If the user is allowed to specify a truncated term of coverage for A&H (see
<AHPromptTermGross>
and
<AHPromptTermNet>
above), then this value defines the
number of which the entered term of coverage must be a multiple. Possible values
are: 1
(any), 3
, 6
and 12
.
🟥 <AccidentHealth>
→<AHOnly>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If A&H is allowed without credit life, then this element will hold the value 1
.
A value of 0
indicates that A&H may not be written without life coverage.
🟥 <AccidentHealth>
→<AHJointWOJointCL>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If Joint A&H is allowed without joint credit life, then this element will hold
the value 1
. A value of 0
indicates that joint A&H may not be written
without joint life coverage. Note that if the value of <AHOnly>
is 0
, then this setting should be ignored.
🟥 <AccidentHealth>
→<AHNonMonthly>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If A&H is allowed on loans with payment frequencies other than monthly, then
this element will hold a value of 1
. A value of 0
indicates that coverage is
not allowed on non-monthly loans, and hence the UI need not display A&H prompts.
🟥 <AccidentHealth>
→<AHSetCount>
Element Type | Data Type |
---|---|
Data | Integer |
The number of A&H rate sets available is specified by this element.
🟥 <AccidentHealth>
→<AHSetTitle>[]
Element Type | Data Type |
---|---|
Data | Text |
For each A&H rate set available (see above for the number available), there will
be one <AHSetTitle>
element holding the name of the set. The order of these
elements corresponds to the Table numbers used to specify the sets. Thus, the
first <AHSetTitle>
element holds the name of the first A&H rate set, and
corresponds to Table="0"
.
🟥 <AccidentHealth>
→<AHTermEqualsCL>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
Some accounts are set up such that specified terms of coverage are allowed for
credit life and disability, however they must be the same. If this is the case,
then this element will hold a value of 1
.
On the other hand, if different specified terms of coverage are allowed, then
this element will contain a value of 0
.
🟥 <InvoluntaryUnemployment>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements describing user interface issues dealing with involuntary unemployment coverage (IUI).
🟥 <InvoluntaryUnemployment>
→<IUITitle>
Element Type | Data Type |
---|---|
Data | Text |
This element holds the product title associated with the SCE’s involuntary
unemployment calculation option. This title defaults to Involuntary Unemployment
, although customers who wish to customize the name of this
offering may do so. For example, it could simply be called Unemployment
, or
Job Loss
. Customers who offer debt cancellation instead of insurance will also
usually wish to change the name of their disability product for regulatory
reasons.
The title may be used for inputs (e.g., "Involuntary Unemployment Option") and outputs (e.g., "Involuntary Unemployment Premium").
🟥 <InvoluntaryUnemployment>
→<IUIAbbrev>
Element Type | Data Type |
---|---|
Data | Text |
Like the <IUITitle>
element above, this element provides an
abbreviation to be used for the product associated with the SCE’s involuntary
unemployment calculation option. The value of this element defaults to IU
,
although customers who wish to customize this abbreviation may do so. Customers
who offer debt cancellation instead of insurance will also usually wish to
change the abbreviations of their life product for regulatory reasons (e.g.,
DCU
for debt cancellation unemployment).
The title may be used for inputs (e.g., "IU Option") and outputs (e.g., "IU Coverage Term").
🟥 <InvoluntaryUnemployment>
→<IUAllow>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | [0..2] |
If IUI coverage is allowed by the account settings, then this element will
contain a value of either 1
(single IUI only) or 2
(both single and joint
IUI offered). A value of 0
indicates that IUI coverage is not allowed for this
account.
🟥 <InvoluntaryUnemployment>
→<IUIDefault>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | [0..2] |
Specifies the default IUI option. 0
= None, 1
= Single, 2
= Joint, 3
=
Single on Co-borrower.
🟥 <InvoluntaryUnemployment>
→<IUSingleOnCoBorrower>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If single coverage is allowed on the co-borrower, then this element will hold a
value of 1
. If it holds a value of 0
, then single life is only allowed on
the primary borrower.
🟥 <InvoluntaryUnemployment>
→<IUOnly>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If IUI is allowed without A&H, then this element will hold the value 1
. A value
of 0
indicates that IUI may not be written without A&H coverage.
🟥 <InvoluntaryUnemployment>
→<IUJointWOJointCL>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If Joint IUI is allowed without joint credit life, then this element will hold
the value 1. A value of 0
indicates that joint IUI may not be written without
joint life coverage. Note that if the value of <IUOnly>
is 0
,
then this setting should be ignored.
🟥 <InvoluntaryUnemployment>
→<IUwoAH>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If IUI is allowed without A&H, then this element will hold the value 1
. A value
of 0
indicates that IUI may not be written without A&H coverage.
🟥 <InvoluntaryUnemployment>
→<IUJointWOJointAH>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If joint IUI is allowed without joint A&H, then this element will hold the value
1
. A value of 0
indicates that joint IUI may not be written without joint
A&H.
🟥 <InvoluntaryUnemployment>
→<IUPromptBenefit>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If the account has been set up to allow for a benefit amount to be specified by
the user, then this value will be set to 1
to indicate that the UI should
prompt the user for a the desired IUI benefit amount. A value of 0
indicates
that only the default benefit amount will be considered, and hence there is no
need to prompt for a user specified benefit.
🟥 <InvoluntaryUnemployment>
→<IUPromptTerm>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If this element holds a value of 1
, then the user may be prompted for a
desired term of coverage for IUI coverage. A value of 0
indicates that user
specified truncation is not allowed and should not be prompted.
🟥 <InvoluntaryUnemployment>
→<IUMult>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | 1 , 3 , 6 , 12 |
If the user is allowed to specify a truncated term of coverage for IUI (see
<IUPromptTerm>
above), then this value defines the number
of which the entered term of coverage must be a multiple. Possible values are:
1
(any), 3
, 6
and 12
.
🟥 <InvoluntaryUnemployment>
→<IUPromptBirthdays>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If age caps are in effect for IUI, and the UI needs to prompt for birthdays,
then this value will be set to 1
. If age truncation is not set up, then this
element will hold a value of 0
.
🟥 <InvoluntaryUnemployment>
→<IUTermEqualsCLTerm>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
Some accounts are set up such that specified terms of coverage are allowed for
credit life and IUI, however they must be the same. If this is the case, then
this element will hold a value of 1
.
On the other hand, if different specified terms of coverage are allowed, then
this element will contain a value of 0
.
🟥 <InvoluntaryUnemployment>
→<IUNonMonthly>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If IUI is allowed on loans with payment frequencies other than monthly, then
this element will hold a value of 1
. A value of 0
indicates that coverage is
not allowed on non-monthly loans, and hence the UI need not display IUI prompts.
🟥 <PersonalProperty>
Element Type | Data Type |
---|---|
Parent | - |
This element contains child elements describing user interface issues dealing with personal property coverage (PP).
🟥 <PersonalProperty>
→<PPTitle>
Element Type | Data Type |
---|---|
Data | Text |
This element holds the product title associated with the SCE’s personal
property calculation option. This title defaults to Personal Property
,
although customers who wish to customize the name of this offering may do so.
For example, it could simply be called Property
. Customers who offer debt
cancellation instead of insurance will also usually wish to change the name of
their personal property product for regulatory reasons.
The title may be used for inputs (e.g. "Personal Property Option") and outputs (e.g. "Personal Property Premium").
🟥 <PersonalProperty>
→<PPAbbrev>
Element Type | Data Type |
---|---|
Data | Text |
Like the <PPTitle>
element above, this element provides an
abbreviation to be used for the product associated with the SCE’s personal
property calculation option. The value of this element defaults to PP
,
although customers who wish to customize this abbreviation may do so. Customers
who offer debt cancellation instead of insurance will also usually wish to
change the abbreviations of their life product for regulatory reasons (e.g.
DCP
for debt cancellation property).
The title may be used for inputs (e.g. "PP Option") and outputs (e.g. "PP Coverage Term").
🟥 <PersonalProperty>
→<PPAllow>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | [0..2] |
If PP coverage is allowed by the account settings, then this element will
contain a value of either 1
(single PP only) or 2
(both single and joint PP
offered). A value of 0
indicates that PP coverage is not allowed for this
account.
🟥 <PersonalProperty>
→<PPDefault>
Element Type | Data Type | Values |
---|---|---|
Data | Integer | [0..2] |
Specifies the default PP option: 0
= None, 1
= Single, 2
= Joint.
🟥 <PersonalProperty>
→<PPPromptCoverage>
Data Type | Values |
---|---|
Boolean | true , false , 1 , 0 |
If the account has been set up with a personal property type which allows the
user to specify a coverage amount, then this element will hold the value of 1
.
Otherwise, a value of 0
indicates that no coverage prompt need be displayed
for PP.
Setup Cache
In the section covering the SCEX's Account module, it was shown how to list all of the accounts present in a given data directory path. In this chapter, a setup file is defined as the tuple (data path, account number).
As of the January, 2009 release of the SCEX, a setup file cache is initialized when the SCEX is first loaded. This cache will store setup files in memory, so that later calls to the SCEX which utilize cached setup files will not need to reload the files for each calculation, so long as the setup file remains in the cache. This cache will prove most beneficial to applications which allow access to multiple setup files, such as those commonly found in ASP and SAAS solutions and web hosted applications.
Sample Request
The following is a sample SCEX request for setup file cache information:
<inSETUPS Cmd="List" Arg1="all" Arg2="all" />
Much like the Account
and Version
module
requests of previous chapters, this input query is made up of a single (empty)
element with three (3) optional attributes.
Sample Response
No matter what Cmd
attribute value is specified in
the request, the format of the response is the same. The following is a sample
response generated by the previous request:
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE outSETUPS SYSTEM "outSETUPS.dtd">
<outSETUPS>
<Setups Count="3" Max="100">
<Setup Index="1" Path="c:\scex\" Account="2" LastUsed="00:00:16" UseCount="0" HitCount="1" />
<Setup Index="2" Path="c:\scex\" Account="1" LastUsed="00:00:04" UseCount="0" HitCount="1" />
<Setup Index="3" Path="c:\banks\" Account="9" LastUsed="00:00:24" UseCount="0" HitCount="1" />
</Setups>
</outSETUPS>
Setup Cache - Request
Please see the Legend to understand the conventions used to document each element and attribute. Note that for requests, the XML elements are documented in alphabetical order by parent element.
Element | Attributes |
---|---|
<inSETUPS> | 🔹Arg1 , 🔹Arg2 , 🔹Cmd |
🟥 <inSETUPS>
Element Type | Data Type |
---|---|
Parent | - |
This is the module element of the XML setup file cache request. This
element is empty, and thus contains neither data nor child elements. The
following attributes of the <inSETUPS>
element are defined:
🔹 Arg1
Element Type | Data Type | Default |
---|---|---|
Data | Text | NULL |
This optional attribute is used to specify the first argument for the specified
Cmd
. Please see the Cmd
attribute to determine if
this argument is necessary, and if so, what values are valid.
🔹 Arg2
Element Type | Data Type | Default |
---|---|---|
Data | Text | NULL |
This optional attribute is used to specify the second argument for the specified
Cmd
. Please see the Cmd
attribute to determine if
this argument is necessary, and if so, what values are valid.
🔹 Cmd
Element Type | Data Type | Default |
---|---|---|
Enum | List , Flush , HardFlush , SetMax | List |
There are four commands (Cmd
) which the setup file cache request
recognizes. Each of these commands is detailed below, along with the number of
arguments (Arg1
and Arg2
) supported.
-
List
- TheList
command is the default command used if none is provided, and requires no arguments. Any values specified inArg1
orArg2
are ignored. This command simply returns the setup file cache status, and does not act on the setup file cache in any manner. -
Flush
- TheFlush
command flushes (clears) a specified setup file (or files) from RAM based upon values provided in the arguments.The Flush command flushes a specified setup file (or files) based upon values provided in the arguments. For each setup file in the cache which matches the criteria found in both of the arguments, if the
UseCount
is equal to zero, then the setup file will be cleared from the cache.-
Arg1
holds the path value against which all setup files in the cache will be compared. If the value ofArg1
isall
, then all setup files will be matched. Please note that this comparison is case sensitive! -
Arg2
holds the account value against which all setup files will be compared. Similar toArg1
, a value ofall
indicates that all setup file wills be matched.
Example 1: Flush all setup files.
<inSETUPS Cmd="Flush" Arg1="all" Arg2="all" />
Example 2: Flush all setup files in directory
c:\scex\
.<inSETUPS Cmd="Flush" Arg1="c:\scex\" Arg2="all" />
Example 3: Flush all setup files with account number one.
<inSETUPS Cmd="Flush" Arg1="all" Arg2="1" />
-
-
HardFlush
- TheHardFlush
command operates identically to theFlush
command, with the sole exception that all setup files in the cache which match both criteria will be flushed, even ifUseCount
is greater than zero. -
SetMax
- This command allows the calling application to set the maximum cache size to the integer value specified inArg1
. Acceptable values range from 1 to 10,000.Note that if an application sets a new maximum cache size to a value less than the number of setup files already present in the cache, none will be flushed. To do so, the application much send a separate
Flush
command.
Setup Cache - Response
Please see the Legend to understand the conventions used to document each element and attribute. Note that for responses, the XML elements are documented in the order that they appear in the response.
Element | Attributes |
---|---|
<outSETUPS> | |
<XMLDetail>[] | |
<Setups> | 🔸Count , 🔸Max |
<Setup>[] | 🔸Account , 🔸HitCount , 🔸Index , 🔸LastUsed , 🔸Path , 🔸UseCount |
🟥 <outSETUPS>
(Module)
Element Type | Data Type |
---|---|
Parent | - |
This is the module element of the XML setup file cache response. This element simply acts as a container for all of the result child elements.
Attributes: None
🟦 <XMLDetail>[]
Element Type | Data Type | Default |
---|---|---|
Data | Text | NULL |
The <XMLDetail>
elements are messages passed back to the calling application
which detail the status of the XML request. If the SCEX issues any warnings
regarding unrecognized elements or attributes, then each warning message will be
displayed in an <XMLDetail>
element.
Attributes: None
🟥 <Setups>
Element Type | Data Type |
---|---|
Parent | - |
This element contains the number of setup files currently cached (as an attribute), as well as the capacity of the cache. It is also the parent element for the individual elements containing the information for each cached setup file.
🔸 Count
Data Type | Values |
---|---|
Integer | [1...999] |
This attribute specifies the number of setup files currently cached.
🔸 Max
Data Type | Values |
---|---|
Integer | [1...999] |
This attribute specifies the maximum number of setup files which may be cached.
An application can alter this value using the SetMax
command (see the
Cmd
attribute).
🟦 <Setups>[]
→ <Setup>
Element Type |
---|
Empty |
This element contains relevant data for every setup file present in the cache. The element itself contains no data. Instead, all of the information of use is contained in the following attributes of the element:
Attributes:
🔸Account
,🔸HitCount
,🔸Index
,🔸LastUsed
,🔸Path
,🔸UseCount
🔸 Account
Data Type | Values |
---|---|
Integer | [1...9999] |
This account number associated with the setup file in the cache.
🔸 HitCount
Data Type | Values |
---|---|
Integer | [0...] |
This attribute contains a value indicating the number of times this setup file
was requested for check-out. It is zero based, thus the first time a setup file
is requested, it's HitCount
is set to zero.
🔸 Index
Data Type | Values |
---|---|
Integer | [1...9999] |
This attribute associates the a number with each setup file in the cache.
🔸 LastUsed
Data Type | Values |
---|---|
Time | hh:mm:ss |
The LastUsed
attribute reports the number of hours, minutes, and seconds
(hh:mm:ss) since the setup file was last requested by the SCE.
🔸 Path
Data Type | Values |
---|---|
Text | special |
The Path
attribute is the data directory path associated with the setup file.
Note that on the Windows platform, file and path names are not case sensitive.
Thus, all data directory paths are converted to lowercase upon entry to the SCE.
Howwever, on platforms which are case sensitive (e.g. Linux), no changes are
made to the case of characters which make up the data directory path.
🔸 UseCount
Data Type | Values |
---|---|
Integer | [1...9999] |
The UseCount
attribute returns the number of times the setup file is currently
in use at the time the request is made. When setup files are used in the SCE, a
check-out and check-in process is used. That is, the SCE checks out a setup file
and increments it's use count to signal to the SCE to not do anything with the
setup file until the SCE is done with the setup file, it checks it back in and
decreases its use count.
Thus, if a setup file's use count is greater than zero, it means that the setup
file could still be in use somewhere within the engine (or it could mean that
for some reason, it was not checked back in). In either case, a Flush
command
will not remove any setup files with a UseCount
> 0
.
To remove a setup file from the cache with a UseCount
> 0
, one would need to
use the HardFlush
command. Please see the Cmd
attribute for more information on the various commands you can send to the XML
interface.
Version
The SCEX's Version interface is the simplest contained in the SCEX, and hence makes an ideal starting point. The versions of libraries in use by their host applications is also of critical importance, so let us tackle it now.
Sample Request
All XML requests sent to the SCEX must conform to a document structure that the SCEX expects and can understand. Since the application calling the SCEX is providing the XML data which the SCEX will parse, it is necessary that the calling application create valid XML queries.
The following is a sample SCEX request for version information:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE inVERSION SYSTEM "inVERSION.dtd">
<inVERSION/>
As this is the first XML message we are documenting, let’s go through this (admittedly small) XML document line by line.
Line 1 is the XML declaration, and will be the same for all requests sent to the SCEX, no matter the loan type and/or data contained within the request. Note that the XML declaration line is optional.
Line 2 is the document type declaration, and will vary depending upon the
'calculation' you wish the SCEX to perform. In this instance, the document type
declaration specifies that this XML request is for the Version module, and that
the inputs will adhere to the definition found in the DTD (document type
definition) file inVERSION.dtd
. If you are familiar with DTD files, then you
may view each to get a concise (and completely up to date) definition of the
input and output XML queries supported by the current version of the SCEX. Note
that DTD declaration line is also optional.
Note that the file name inVERSION.dtd
is not a fully qualified path name
(FQPN). That is, it does not include the entire file system path to the DTD
file. If a FQPN is not provided for the DTD, then the SCEX assumes that the DTD
is located in the xml directory where the SCEX.DLL is located. If you are using
the SCEX in its installed location, then this would be InstallDir\xml\
.
Also, please note that the DTD files should never be modified by you unless you have been instructed to do so by Sherman and Associates, Inc. The DTD files describe the valid interface to the SCEX, and if modified, may render the SCEX unable to verify if input and output XML messages are valid.
Line 3 contains the version request in its entirety. The version request is a trivial request, made up of a single element.
Since lines 1 and 2 are optional, an even more compact request that results in the same response is as follows:
<inVERSION/>
Sample Response
After submitting an inVERSION request to the SCEX, and receiving a successful
calculation result from the xmlcalc()
routine, the buffer for the result XML
is ready to be parsed.
The following is a sample XML result generated by the previous sample request, at the time this documentation was being written (2007-01):
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE outVERSION SYSTEM "outVERSION.dtd">
<outVERSION>
<SCEVersion>N/A</SCEVersion>
<SCEVersion>2007.1.0</SCEVersion>
<SCEXPath>N/A</SCEXPath>
<SCEXPath>C:\Sherman\SCEX\</SCEXPath>
<DefaultDataDirPath>C:\Sherman\SCEX\</DefaultDataDirPath>
<CurrentPath>C:\Sherman\SCEX\</CurrentPath>
</outVERSION>
Lines 1 and 2 consist of the XML declaration and the document type declaration, respectively. If a FQPN for the DTD was specified in the request, then the result XML will also contain a FQPN for the DTD file name.
Line 3 is the root element for the outputs of the Version response. This element contains all the child elements holding the calculation results.
Line 5 returns the version information for both the SCEX. Lines 6 through 9 return path information about the SCEX and current directory. Line 10 closes out the root element and terminates the XML result.
Please note that the SCE is now subsumed within the SCEX, so lines 4 and 6 will
always return a value of N/A
.
Version - Request
Please see the Legend to understand the conventions used to document each element and attribute. Note that for requests, the XML elements are documented in alphabetical order by parent element.
Element | Attributes |
---|---|
<inVERSION> |
🟥 <inVERSION>
Element Type | Data Type |
---|---|
Parent | - |
This is the root element of the XML request, and is required. This element is empty, and thus contains neither data nor child elements.
Attributes: None
Version - Response
Please see the Legend to understand the conventions used to document each element and attribute. Note that for responses, the XML elements are documented in the order that they appear in the response.
Element | Attributes |
---|---|
<outVERSION> | |
<XMLDetail>[] | |
<SCEVersion> | |
<SCEXVersion> | |
<SCEPath> | |
<SCEXPath> | |
<DefaultDataDirPath> | |
<CurrentPath> |
🟥 <outVERSION>
Element Type | Data Type |
---|---|
Parent | - |
This is the root element of the XML response, and is required. This element simply acts as a container for all of the result child elements.
Attributes: None
🟦 <XMLDetail>[]
Element Type | Data Type | Default |
---|---|---|
Data | Text | NULL |
The <XMLDetail>
elements are messages passed back to the calling application
which detail the status of the XML request. If the SCEX issues any warnings
regarding unrecognized elements or attributes, then each warning message will be
displayed in an <XMLDetail>
element.
Attributes: None
🟥 <SCEVersion>
Contains the version information for the SCE. As discussed above, since the SCE
is now contained within the SCEX, the value of this element will always be
N/A
.
Attributes: None
🟥 <SCEXVersion>
Contains the version information for the SCEX, as found in the SCEX library.
Attributes: None
🟥 <SCEPath>
Contains the fully qualified path for the SCE. Since the SCE is now contained
within the SCEX, the value of this element will always be N/A
.
Attributes: None
🟥 <SCEXPath>
Contains the fully qualified path for the SCEX. That is, it specified the
location on the filesystem of the scex.dll
or libscex.so
in use. For the
Linux build of the SCEX, the value returned will be the path of the host
application using the SCEX library.
Attributes: None
🟥 <DefaultDataDirPath>
Contains the fully qualified path for the default directory in which the SCEX
will look for a data/
folder containing setup files. To temporarily override
the default data directory path for an XML request, specify a different
DataDirPath
attribute when sending XML to the SCEX, or use one of the SCEX API
calls which allow the calling application to specify the default data directory
for the request. When the SCEX is first loaded, the default data directory is
initialized to the same value as that returned by the <SCEXPath>
element
above.
Attributes: None
🟥 <CurrentPath>
Contains the fully qualified path for the current directory, as reported by the operating system.
Attributes: None
Documentation History
This chapter provides a history of modifications made to this reference manual in reverse chronological order, grouped by release. By referencing this chapter when a new release arrives, you may quickly discern any documentation changes which may or may not be of interest to you.
Release 2025-04
- No documentation changes.
Release 2025-01
- The Loan Builder module's
Amount
attribute for the<PmtStream>
element has been updated to document the new options available for fixed payment streams.
Release 2024-10
- New
MinPnIDetails
andMaxPnIDetails
atttributes for the<TILARESPA2015>
element in the ARM module allow the calling application to request detailed information about theMinPnI
andMaxPnI
payments that may be returned in the amortization schedule for ARM loans with TILARESPA2015 disclosures. If set totrue
, then the amounts to interest and principal for each of these payments may also be returned in the<AmLine>
response element.
Release 2024-07
- The Loan Builder module's
<PmtStream>
element now supports the newReplaceIdx
attribute which is used to apply a replacement payment stream to a subset of the payments.
Release 2024-04
-
The Loan Builder module’s
<Advance>
element now supports newNewPmt
andPosition
attributes which are used when the calling application wishes to compute a loan with multiple advances, where each advance generates a new payment stream. -
Loan Builder now supports a
<BalAdj>
element, which will adjust the loan balance during amortization. The origin of this element is to allow an easy mechanism to replenish the balance for HELOC lending.
Release 2024-01
-
The
<NBCDebtCancelation>
element has been removed from the Input Tool module response as the setup file setting which corresponded to this element has been deprecated and removed. -
The Refund module now supports
TermInDays
andLLMatuirty
attributes which allow the refund module to compute level life refunds for single payment notes whose term of coverage is expressed in days instead of months.
Accrual Codes
The following table is the master list of all possible Accrual Codes available with the Sherman Calculation Engine.
Different elements or attributes, however, will be limited to a subset of these codes. Careful attention must, therefore, be paid to the particular element or attribute in question.
APR Codes's, however, are different from Interest Accrual Codes. APR Codes are conventions for analyzing a loan's finance charge after the loan has been computed. Accrual Codes, on the other hand, are the ways to compute interest charges as a part of computing the loan before an APR can be assessed.
Accrual Code | Description | PmtAccrual |
---|---|---|
default | Keep previous method. Original default is 201 - UnitPeriod/360 Simple | |
100 | UnitPeriod/Federal Calendar Actuarial | |
101 | UnitPeriod/Toyota Motor Credit Actuarial | |
201 | UnitPeriod/360 Simple | X |
202 | UnitPeriod/365 Simple | X |
203 | UnitPeriod/DaysPerPeriod Simple (e.g. 91 for quarterly payment frequencies) | X |
204 | UnitPeriod True360/360 Simple | X |
205 | UnitPeriod True360/365 Simple | X |
206 | UnitPeriod True360/DaysPerPeriod Simple (e.g. 91 for quarterly payment frequencies) | X |
207 | UnitPeriod/Federal Calendar Simple | |
208 | UnitPeriod/365.25 Simple | |
209 | UnitPeriod True360/365.25 Simple | |
210 | Actual/360 Simple | X |
211 | True365/360 Simple | X |
220 | Actual/365 Simple | X |
221 | True365/365 Simple | X |
230 | Actual/Actual Simple | X |
231 | Midnight 366 Simple | X |
240 | Actual/365.25 Simple | |
250 | UnitPeriod/VarDPY Simple | X |
301 | UnitPeriod/360 US Rule | X |
302 | UnitPeriod/365 US Rule | X |
303 | UnitPeriod/DaysPerPeriod US Rule (e.g. 91 for quarterly payment frequencies) | X |
304 | UnitPeriod True360/360 US Rule | X |
305 | UnitPeriod True360/365 US Rule | X |
306 | UnitPeriod True360/DaysPerPeriod US Rule (e.g. 91 for quarterly payment frequencies) | X |
307 | UnitPeriod/Federal Calendar US Rule | |
308 | UnitPeriod/365.25 US Rule | |
309 | UnitPeriod True360/365.25 US Rule | |
310 | Actual/360 US Rule | X |
311 | True365/360 US Rule | X |
320 | Actual/365 US Rule | X |
321 | True365/365 US Rule | X |
330 | Actual/Actual US Rule | X |
331 | Midnight 366 US Rule | X |
340 | Actual/365.25 US Rule | X |
350 | UnitPeriod/VarDPY US Rule | X |
401 | UnitPeriod/360 Add-On | |
402 | UnitPeriod/365 Add-On | v |
403 | UnitPeriod/DaysPerPeriod Add-On (e.g. 91 for quarterly payment frequencies) | |
404 | True360/360 Add-On | |
405 | True360/365 Add-On | |
406 | True360/DaysPerPeriod Add-On (e.g. 91 for quarterly payment frequencies) |
Table 13.3: Loan Builder Accrual Codes and Descriptions
Countries
This chapter provides a list of countries supported by the SCE, along with their associated two character and three digit codes, as well as the default number of decimal places allowed for currency values.
Country | Alpha-2 | Numeric-3 | Currency DP |
---|---|---|---|
Canada | CA | 124 | 2 |
China | CN | 156 | 2 |
Czech Republic | CZ | 203 | 2 |
Hong Kong | HK | 344 | 2 |
Hungary | HU | 348 | 2 |
Ireland | IE | 372 | 2 |
Italy | IT | 380 | 2 |
Philippines | PH | 608 | 2 |
Poland | PL | 616 | 2 |
Romania | RO | 642 | 2 |
Slovenia | SI | 705 | 2 |
Ukraine | UA | 804 | 2 |
United Kingdom | GB | 826 | 2 |
United States of America | US | 840 | 2 |
Protection Formula Codes
Formula Code | Description |
---|---|
None | No coverage requested. |
Unknown | Unknown formula code. |
SP_Gross_Standard | Single premium standard gross. |
SP_Gross_AllLevelAsDecreasing | Single premium gross on each individual payment. |
SP_Gross_Discounted | Single premium discounted gross. |
SP_Gross_RemPmts | Single premium gross, sum of partial premiums computed on outstanding payments vis-a-vis actuarial net. |
SP_Gross_Level | Single premium gross using level life. |
SP_Gross_Level_EachPmt | Single premium gross, each payment is covered with level life as if each were a single payment note. |
SP_Gross_Level_AsDecreasing | Not currently used. |
SP_Gross_Level_RemPmts | Single premium gross, balance at truncated term covered with level. |
SP_Net_Standard | Single premium standard net. |
SP_Net_Discounted | Single premium discounted net. |
SP_Net_StraightLine | Single premium straight-line net. |
SP_Net_MainTruncation | Single premium net, Maine truncation formula. |
SP_Net_AmericanBankers | Single premium net, American Bankers formula. |
SP_Net_PekinTruncation | Single premium net, Pekin insurance truncation formula. |
SP_Net_WarmSprings | Single premium net, Warm Springs formula. |
SP_Net_StraightLine_AmerRepub | Single premium straight-line net, American Republic formula. |
SP_Net_RemBals | Single premium net, sum of partial premiums, each computed as rate times remaining balance. |
SP_Net_Level | Single premium net with level. |
SP_Net_LevelAtCap | Single premium net, level at the cap. |
MOB_Net | Standard MOB net. |
MOB_Gross | Standard MOB gross. |
MOB_Benefit | Standard MOB on the benefit. |
TrueMOB_Net | True MOB net. |
TrueMOB_Gross | True MOB gross. |
Ordinary_ExecTerm_AR | Southern Pioneer's Executive Term ordinary life product for Arkansas. |
Ordinary_ProtectAllAL | Protective Life's (now a part of Life of the South) Protect-All ordinary life product for Alabama. |
Ordinary_ProtectAll_GA | Protect-All ordinary life product for Georgia. |
Ordinary_ProtectAll_NC | Protect-All ordinary life product for North Carolina. |
Ordinary_ProtectAll_LA | Protect-All ordinary life product for Louisiana. |
Ordinary_ProtectAll_SC | Protect-All ordinary life product for South Carolina. |
Ordinary_Uniguard_TN | Uniguard ordinary life product for Tennessee. |
CUNA_SP_Formula1 | TruStage's single premium formula #1. |
CUNA_SP_Formula2 | TruStage's single premium formula #2. |
CUNA_SP_Formula3 | TruStage's single premium formula #3. |
CUNA_SP_Formula6 | TruStage's single premium formula #6. |
Formula Code | Description |
---|---|
gmAllLevelBalloon | All payments covered with level insurance. |
gmAllLevelBalloonAsDecreasing | Decreasing coverage on covered payments, computed using level rates. |
gmAllLevelEqual | Level coverage on each payment. |
gmAllLevelEqualAsDecreasing | Decreasing coverage on covered payments, computed using level rates. |
gmAllLevelPmts | Gross coverage on covered payments, level coverage on remaining payments. |
gmBalloonStandard | Gross coverage on balloon payment loans (standard). |
gmDiscounted | Discounted gross coverage. |
gmDiscountedBalloon | Discounted gross coverage on regular payments only. |
gmEPStandard | Gross coverage on equal payments (standard). |
gmIntOnly | Level coverage on final payment. |
gmIntOnlyPlus | Level coverage on final payment, gross decreasing on interest only. |
gmIrreg | Gross coverage on outstanding sum of remaining & payments. |
gmLevelRemPmts | Gross coverage on covered payments, level coverage on remaining payments. |
gmLevelTruncated | Level coverage on covered payments, level coverage on remaining balance. |
gmNone | No coverage requested. |
gmSinglePay | Gross coverage on single payment loans (standard). |
mobBenefit | Coverage on the payment. |
mobCreditRE | Constant monthly premium product. |
mobCUNALevelRate | TruStage’s Level Rate product. |
mobCUNAMonthlyRenewable | TruStage’s Monthly Renewable product. |
mobNone | No coverage requested. |
mobOnBalance | Standard coverage on outstanding balance. |
mobOnPayments | Coverage on outstanding payments. |
nmAnicoLevel | A special ANICO method used to compute level and decreasing coverage on the loan. |
nmBalDiscounted | Discounted net pay-off on balloon payment loan. |
nmBalLevelOnFinal | Net coverage, with final payment covered by level. |
nmBalStandard | Actuarial net pay-off on balloon payment loan. |
nmBalStraightLine | Straight line net pay-off on balloon payment loan. |
nmBalStraightLineAmerRepub | Straight line net pay-off formula used by American Republic. |
nmCUNAAmort | TruStage's formula used in specified amortization term balloon loans. |
nmCUNASP1 | TruStage’s single premium formula #1. |
nmCUNASP2 | TruStage’s single premium formula #2. |
nmCUNASP3 | TruStage’s single premium formula #3. |
nmCUNASP4 | TruStage’s single premium formula #4. |
nmCUNASP5 | TruStage’s single premium formula #5. |
nmEPDiscounted | Discounted net pay-off on equal payments. |
nmEPStandard | Actuarial net pay-off on equal payments. |
nmEPStraightLine | Straight line net pay-off on equal payments. |
nmIrregDecreasing | Net coverage on outstanding balances. |
nmIrregDiscounted | Discounted net coverage on outstanding balances. |
nmLevelAtCap | Single premium net coverage, constant premium until balance is below cap. |
nmNone | No coverage requested. |
nmSPNDecreasing | Decreasing coverage on the principal balance. |
nmSPNDiscounted | Actuarialy discounted decreasing coverage. |
nmSPNStandard | Level coverage on the principal balance. |
olExecutiveTerm_AR | Southern Pioneer’s Executive Term ordinary life product for Arkansas. |
olProtectAll_AL | Protective Life’s (now a part of Life of the South) Protect-All ordinary life product for Alabama. |
olProtectAll_GA | Protect-All ordinary life product for Georgia. |
olProtectAll_LA | Protect-All ordinary life product for Louisiana. |
olProtectAll_NC | Protect-All ordinary life product for North Carolina. |
olProtectAll_SC | Protect-All ordinary life product for South Carolina. |
olProtectAll_TN | Protect-All ordinary life product for Tennessee. |
olUniGuardDecreasing | Uniguard decreasing ordinary life product. |
olUniGuardDecreasingAndLevel | Uniguard level coverage written in conjunction with decreasing coverage. |
olUniGuardLevel | Uniguard level ordinary life product. |
ppmGross | Personal property coverage on total of payments. |
ppmNet | Personal property coverage on principal balance. |
ppmOnEntry | Personal property coverage on entered amount. |
SinglePremium | Single premium coverage for A&H or IUI. |
Drop Code | Drop Reason |
---|---|
0 | Successful Calculation |
1 | This insurance must be written with CL |
2 | No coverage on non-monthly loans |
3 | No coverage on Equal Payment Loans |
4 | No coverage on Balloon Loans |
5 | No coverage on Single Payment Loans |
6 | No coverage on Interest Only Loans |
7 | No coverage on Principal Plus Loans |
8 | No coverage on Skips/Pickups/Irregs |
9 | Borrower too old at loan inception |
10 | Co-Borrower too old at loan inception |
11 | Term exceeded cap |
12 | Borrower became too old during loan |
13 | Co-Borrower became too old during loan |
14 | Loan term is less than minimum allowed |
15 | Computed rate was zero |
16 | An invalid AH Plan was passed |
17 | Truncation term less than the minimum |
18 | Benefit cap was exceeded |
19 | Coverage cap was exceeded |
20 | Windows experienced an error |
21 | Windows error reading the setup file |
22 | NOT CURRENTLY USED |
23 | Equal Payment or Balloons Only |
24 | NOT CURRENTLY USED |
25 | Coverage is not allowed on this loan |
26 | Truncation term isn’t a valid multiple |
27 | Keyboard truncation not allowed |
28 | No keyboard truncation with Net |
29 | No keyboard truncation with Gross |
30 | No decreasing life. All coverage level |
31 | Term too big for insurance coverage |
32 | Joint requested, only single allowed |
33 | The age is above the maximum in band |
34 | The term is above the maximum in band |
35 | Balloon is too small for Level Life |
36 | All Coverage allocated to decreasing. |
37 | No keyboard truncation with MOB |
38 | TruStage No Single Pay Terms ¡ 6 Months |
39 | Credit Life not allowed on Annual Loans |
40 | Below the Minimum Insurance Term |
41 | Below the Minimum Loan Term |
42 | Formula is undefined |
43 | AH Requires use of a table of rates |
44 | LR Requires single rates, not tables |
45 | Customer not eligible for Insurance |
46 | The insurance code (e.g., 1=single) was not valid |
47 | Monthly Renewable exception |
48 | Borrower is currently older than the termination age |
49 | CoBorrower is older than the termination age |
50 | Maine Truncation only defined for monthly loans |
51 | Converting SP ARHate to MOB caused an exception |
52 | Non-Monthly not allowed with Ordinary Life |
53 | AH is not allowed with Ordinary Life |
54 | Probably a log calc tripped up an exception |
55 | Entry for Borrower Birthday is zero |
56 | Entry for CoBorrower Birthday is zero |
57 | No coverage for loans; Monthly |
58 | No coverage on construction loans |
59 | The term of coverage must equal CL Term |
60 | Loan Setup is a premium type not Single premium |
61 | No insurance allowed on ARM Loans |
62 | ARM Loans are only covered with MOB Net |
63 | Coverage is not allowed on Coborrower |
64 | Borrower is less than the minimum age |
65 | CoBorrower is less than the minimum age |
66 | Loan To Value (** Not Implemented **) |
67 | ARM Loans only use MOB Net or MOB on Benefit |
68 | Credit Life does not permit CMOB rollbacks |
69 | Credit Life does not permit CMOB on interest only payments nor construct loans |
70 | This insurance must be written with AH |
71 | This insurance must be written with Joint AH |
72 | Coverage not allowed with partial benefit and truncation |
73 | This insurance must be written with Joint CL |
74 | Preceding Interest Only payments do not allow for protection |
75 | Coverage not allowed on Open end loans |
76 | PrimaFacie rates must be expressed as $/100/Year |
77 | Loans with "Open End=1" must be equal payments |
78 | Premium is zero |
79 | The loan has an error and therefore reports no protection info |
80 | Product not available for any loan |
81 | Level cannot be offered if decreasing has been removed |
82 | An unknown ordinary life method has been chosen |
83 | No Keyboard benefit allowed |
84 | TrueMOB protection requested, but no events were logged |
85 | Keyboard truncation is not allowed with gross truncated level insurance |
The SCEX Loan Server Service
As mentioned in the introductory chapter of this reference manual, the SCEX Loan Server goes one step beyond the SCEX, turning the SCEX into a multi-platform calculation engine, allowing applications on non-Windows platforms to harness the power of the SCEX.
The SCEX Loan Server provides a TCP/IP communication wrapper around the SCEX. As long as the platform on which your application resides can communicate via TCP/IP, you can use the Sherman Calculation Engine in your product.
The SCEX Loan Server is a 32-bit Windows 2000 / XP / 2003 service. The Loan Server listens on a specified port for incoming loan calculation requests. When it receives a loan request, the Loan Server dispatches the SCEX XML loan request to the SCEX. Once the SCEX returns an XML result, the SCEX Loan Server then returns the XML result buffer to the client via TCP/IP.
Installation and Administration
The SCEX Loan Server Service is provided as an optional installation component in the main SCEX installer application. Refer to the Installation chapter for further details on how to install the SCEX Loan Server service.
Important: Since the SCEX Loan Server is a service and will run without a logon, it is best to install the service and all related files in a local subdirectory (i.e., NOT located on a network drive).
Once installed, the SCEX Loan Server will automatically start and configure itself to launch whenever the computer restarts. The service will appear as "SCEX Loan Server" in the Windows Services application.
To access Services:
- Click
Start
. - Choose
Run...
and typeSERVICES.MSC
.
From there, you can start, pause, resume, and stop the service.
Configuration
When the service first starts, it creates a configuration file called
LoanServerService.INI
with default values. You can modify these key-value
pairs using any text editor. To apply changes:
- Pause the SCEX Loan Server service.
- Resume the service, which will read and implement the new values.
Default Configuration:
[Settings]
Port=8000
TimeOut=30
[Logging]
Enabled=0
LogLevel=0
FileName=C:\LoanServerLog.txt
General Settings
- Port: The port number on which the server listens for client connections.
- Timeout: The number of seconds a client connection can remain idle before being automatically disconnected.
Logging Settings
- Enabled: Whether file logging is enabled (
1
) or disabled (0
). - LogLevel: Specifies the detail of the logs:
0
: Minimal (errors, service start/stop/pause/resume).1
: Adds details for connections (remote address, loan processed, disconnection).2
: Logs XML input from the client.3
: Logs XML output sent to the client.
- FileName: The path of the log file. Note: If logging is enabled, monitor the file size periodically as it will grow over time.
Usage
To use the SCEX Loan Server Service, the client application must:
-
Establish a TCP/IP connection to the server's IP address, specifying the appropriate port (default:
8000
). -
Send an XML request formatted as follows:
<BEGIN DATA> ...normal XML input query goes here... <END DATA>
-
The server will process the query and return the result in the following format:
RESULT-CODE: ### RESULT-LENGTH: ### ...normal XML result query goes here...
Response Format:
- RESULT-CODE: Numeric result of the processed query. Refer to Table 3.1 for code meanings.
- RESULT-LENGTH: The character length of the XML result body (excluding the header).
The header ends with a blank line. If RESULT-LENGTH > 0
, the body of the
response follows the header.
After sending the result, the server will disconnect the client automatically.
Persistent Connections
If you need to send multiple XML requests in quick succession, persistent connections can be used to avoid creating a new TCP/IP connection for each request. For this, wrap the XML query in:
<BEGIN PDATA>
...XML query...
<END PDATA>
This method keeps the TCP/IP connection open after the result is sent, ready to receive another XML envelope. Note: The timeout value still applies, so idle connections will be disconnected.