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:
🟥 Description,🟦 XMLDetail[],🟦 IsQm,🟦 AprTrigger,🟦 FeaturesTrigger,🟦 PointsFeesTrigger🟦 SmallCreditorBalloonTrigger
🟥 Description
| Object Type | Data Type | Values |
|---|---|---|
| Data | Text | - |
If the calculation was completed successfully, then this object will contain the value 'Valid Calculation'. Otherwise, this object will contain a description of the problem encountered during the attempted computation.
Fields:
NoneObjects:
None
🟦 XMLDetail[]
| Object Type | Data Type | Default |
|---|---|---|
| Data | Text | n/a |
The XMLDetail objects are messages passed back to the calling application which
detail the status of the XML request. If the SCEX issues any warnings regarding
unrecognized objects or fields, then each warning message will be displayed
in an XMLDetail object.
In our sample output above, no warnings are returned by the SCEX, and hence
there are no XMLDetail objects returned.
Fields:
NoneObjects:
None
🟥 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.
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 | - |
This object itself contains no data. 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.