Qualified Mortgages - Response
Please see the Legend to understand the conventions used to document each object and field. Note that for responses, the XML objects are documented in the order that they appear in the response.
🟥 Data
| Object Type | Data Type |
|---|---|
| Parent | - |
This is the root object of the QM response, and is required. This contains
child objects which specify the particulars of the already computed loan which
is being examined to see if the data is QM compliant. The following fields
and child objects of the Data object are as follows:
Fields: None
Objects:
🟥 Errors[],🟥 Warnings[],🟦 IsQm,🟦 AprTrigger,🟦 FeaturesTrigger,🟦 PointsFeesTrigger🟦 SmallCreditorBalloonTrigger
🟥 Data.Errors[]
| Type | Required |
|---|---|
| Array of String | yes |
The Errors[] field contains an array of Strings which describe any errors
encountered while handling the request. If the length of the Errors[] Array is
zero (0), then the module processed the request successfully, and the Data
object can be further processed by the calling application for the returned
data.
On the other hand, if the length of the Errors[] Array is greater than zero
(0), then this indicates that an error condition has been detected, and the
calling application should not process the respons Data object further. In
this case, the contents of the Errors[] array will describe the error(s)
encountered.
Typical errors include the omission of 🟥 required fields, invalid field values, etc.
🟥 Data.Warnings[]
| Type | Required |
|---|---|
| Array of String | yes |
The Warnings[] field contains an array of Strings which describe any warnings
generated by the module handling the request. The most common warnings returned
by modules inform the calling application that the module does not recognize a
specified field (which may help to isolate a field name spelling error in the
calling application's code). Note that field names which start with "//" will
bre treated as comment fields by the SCE, and no warnings will be generated
for these unrecognized fields.
🟦 IsQm
| Object Type | Data Type | Values |
|---|---|---|
| Data | Boolean | true, false |
Qualified mortgage designation is specified by the value of this object. For a legal description of qualified mortgages, refer to §1026.43(e).
true means the loan has been assessed as a qualified mortgage.
false means one of the field triggers below has been violated.
🟦 Triggers
| Object Type | Data Type |
|---|---|
| Empty | - |
The fields of this object detail which, if any, of the four Qm triggers have been violated.
Fields:
🔸Apr,🔸Features,🔸PointsFees,🔹SmallCreditorBalloonObjects:
None
🔸 Apr
| Data Type | Values |
|---|---|
| Boolean | true, false |
The value of this required boolean field identifies whether or not the
Apr - Apor spread
has disqualified the loan from being considered a qualified mortgage.
True means the AprTrigger has been violated.
False means the loan is not disqualified over a Spread
violation.
🔸 Features
| Data Type | Values |
|---|---|
| Boolean | true, false |
The value of this required boolean field is true if the
FeaturesTrigger has been violated, false otherwise.
🔸 PointsFees
| Data Type | Values |
|---|---|
| Boolean | true, false |
The value of this required boolean field is true if the
PointsFeesTrigger has been violated, false otherwise.
🔹 SmallCreditorBalloon
| Data Type | Values |
|---|---|
| Boolean | true, false |
The value of this optional boolean field is true if the
SmallCreditorBalloonTrigger has been
violated, false otherwise.
Note that this field will not be present unless the request's
QmType field is set to SmallCreditor, and the
request contains the SmallCreditorBalloon object.
🟦 AprTrigger
| Object Type | Data Type |
|---|---|
| Empty | - |
The fields of this object expose the determination of the Apr
field value. AprTrigger contains the following fields:
See §1026.43(e)(2)(vi) for more.
Fields:
🔸Spread,🔸SpreadCap,🔸Enforced,Objects:
None
🔸 Spread
| Data Type | Values |
|---|---|
| Decimal | any |
The value of this required decimal field represents the difference between
the Apr and the Apor.
This spread is a basis for determining whether or not a loan qualifies as a
Qualified mortgage.
🔸 SpreadCap
| Data Type | Values |
|---|---|
| Decimal | any |
The value of this required decimal field represents the
Apr - Apor threshold
beyond which a loan is disqualified from being considered a qualified
mortgage.
🔸 Enforced
| Data Type | Values |
|---|---|
| Boolean | true, false |
The value of this required boolean field represents whether or not exceeding
the SpreadCap can disqualifies a loan from being
recognized as a qualified mortgage.
If the QmType is General, the Enforced field is
true.
If the QmType is SmallCreditor, the Enforced
field is false.
🟦 FeaturesTrigger
| Object Type | Data Type |
|---|---|
| Empty | - |
This object itself contains no data. The fields of this object expose the
determination of the Features field. Any field being
True violates conditions for a loan being a qualified mortgage.
FeaturesTrigger contains the following fields:
Fields:
🔸Balloon,🔸BalloonEnforced,🔸DeferredPrincipal,🔸LoanTermTooLong,🔸NegativeAmObjects:
None
🔸 Balloon
| Data Type | Values |
|---|---|
| Boolean | true, false |
The value of this required boolean field represents whether or not the
Balloon Trigger prohibition has been tripped. If the value this field is
identical to the value of the HasBalloon
input field.
See §1026.43(e)(2)(i)(C).
🔸 BalloonEnforced
| Data Type | Values |
|---|---|
| Boolean | true, false |
The value of this required field is false when the
QmType field is SmallCreditor,
HasBalloon is true, and object
SmallCreditorBalloon exists; otherwise, the
value is true. In other words, loans with balloons do not qualify as qualified
mortgages except those specified as small creditor balloons.
See §1026.43(f).
🔸 DeferredPrincipal
| Data Type | Values |
|---|---|
| Boolean | true, false |
The value of this required field is identical to the request value of
HasDeferredPrincipal. As with the
other fields of the Features object, if the value
of this field is true, the loan may not be considered a qualified
mortgage.
See §1026.43(e)(2)(i)(B).
🔸 LoanTermTooLong
| Data Type | Values |
|---|---|
| Boolean | true, false |
If the value of the request field,
TermInYears, is greater than 30, the value of
this field is true; otherwise, the value is false.
See §1026.43(e)(2)(ii) for more information on this stipulation.
🔸 NegativeAm
| Data Type | Values |
|---|---|
| Boolean | true, false |
The value of this required field is identical to the request value of
HasNegativeAm.
See §1026.43(e)(2)(i)(A) for more information on this stipulation.
🟦 PointsFeesTrigger
| Object Type | Data Type |
|---|---|
| Empty | - |
This object itself contains no data. The fields of this object expose the
determination of the PointsFees field for the
determination of whether or not a loan qualifes as a qualified mortgage.
PointsFeesTrigger contains the following fields:
Fields:
🔸TotalPointsFees,🔸MaxPointsFeesObjects:
None
🔸 TotalPointsFees
| Object Type | Data Type | Values |
|---|---|---|
| Data | Decimal | Currency > 0 |
This required decimal field holds the value of the
TotalPointsFees from the request
payload.
🔸 MaxPointsFees
| Object Type | Data Type | Values |
|---|---|---|
| Data | Decimal | Currency > 0 |
This required decimal field holds the value of the maximum points and fees threshold as determined by the values listed in §1026.43(e)(3), adjusted for CPI.
🟦 SmallCreditorBalloonTrigger
| Object Type | Data Type |
|---|---|
| Empty | - |
This object itself contains no data. The fields of this object expose the
determination of the SmallCreditorBalloon
field for the determination of whether or not a loan qualifes as a qualified
mortgage. SmallCreditorBalloon contains the following fields:
Fields:
🔸AmortLoanTermTooLong,🔸HasRateIncrease,🔸LoanTermTooShort,Objects:
None
🔸 AmortLoanTermTooLong
| Data Type | Values |
|---|---|
| Boolean | true, false |
If the value of the request field,
AmortTermInYears, is greater
than 30, the value of this field is true; otherwise, the value is false.
See §
1026.43(f)(1)(iv)(A)
for more information on this stipulation.
🔸 HasRateIncrease
| Data Type | Values |
|---|---|
| Boolean | true, false |
The value of this required field is identical to the request value of
HasRateIncrease.
🔸 LoanTermTooShort
| Data Type | Values |
|---|---|
| Boolean | true, false |
If the value of the request field,
TermInYears, is less than 5, the value of this
field is true; otherwise, the value is false. See
§1026.43(f)(1)(iv)(C)
for more information on this stipulation.