Qualified Mortgages - 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.

🟥 <outQM>

Element TypeData Type
Parent-

This is the root element of the QM response, and is required. This contains child elements which specify the particulars of the already computed loan which is being examined to see if the data is QM compliant. The following attributes and child elements of the <outQM> element are as follows:

Attributes: None

Elements: 🟥 <Description>, 🟦 <XMLDetail>[], 🟦 <IsQm>, 🟦 <AprTrigger>, 🟦 <FeaturesTrigger>, 🟦 <PointsFeesTrigger 🟦 <SmallCreditorBalloonTrigger


🟥 <Description>

Element TypeData TypeValues
DataText-

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

Elements: None


🟦 <XMLDetail>[]

Element TypeData TypeDefault
DataTextn/a

The <XMLDetail> elements are messages passed back to the calling application which detail the status of the 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

Elements: None


🟥 <IsQm>

Element TypeData TypeValues
DataBooleantrue, false

Qualified mortgage designation is specified by the value of this element. 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 attribute triggers below has been violated.

Attributes: 🔸Apr, 🔸Features, 🔸PointsFees, 🔹SmallCreditorBalloon

Elements: None

🔸 Apr

Data TypeValues
Booleantrue, false

The value of this required boolean attribute 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.

Note that if the request's QmType attribute is SmallCreditor, the value of this attribute will always be false, as the APR trigger is not enforced for small creditors.

🔸 Features

Data TypeValues
Booleantrue, false

The value of this required boolean attribute is true if the <FeaturesTrigger> has been violated, false otherwise.

🔸 PointsFees

Data TypeValues
Booleantrue, false

The value of this required boolean attribute is true if the <PointsFeesTrigger> has been violated, false otherwise.

🔹 SmallCreditorBalloon

Data TypeValues
Booleantrue, false

The value of this optional boolean attribute is true if the <SmallCreditorBalloonTrigger> has been violated, false otherwise.

Note that this attribute will not be present unless the request's QmType attribute is set to SmallCreditor, and the request contains the <SmallCreditorBalloon> element.


🟦 <AprTrigger>

Element TypeData Type
Empty-

This element itself contains no data. The attributes of this element expose the determination of the Apr attribute value. <AprTrigger> contains the following attributes:

See §1026.43(e)(2)(vi) for more.

Attributes: 🔸Spread, 🔸SpreadCap, 🔸Enforced

Elements: None

🔸 Spread

Data TypeValues
Decimalany

The value of this required decimal attribute 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 TypeValues
Decimalany

The value of this required decimal attribute represents the Apr - Apor threshold beyond which a loan is disqualified from being considered a qualified mortgage.

🔸 Enforced

Data TypeValues
Booleantrue, false

The value of this required boolean attribute 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 attribute is true.

If the QmType is SmallCreditor, the Enforced attribute is false.


🟦 <FeaturesTrigger>

Element TypeData Type
Empty-

This element itself contains no data. The attributes of this element expose the determination of the Features attribute. Any attribute being True violates conditions for a loan being a qualified mortgage. <FeaturesTrigger> contains the following attributes:

Attributes: 🔸Balloon, 🔸BalloonEnforced, 🔸DeferredPrincipal, 🔸LoanTermTooLong, 🔸NegativeAm

Elements: None

🔸 Balloon

Data TypeValues
Booleantrue, false

The value of this required boolean attribute represents whether or not the Balloon Trigger prohibition has been tripped. If the value this attribute is identical to the value of the HasBalloon input attribute.

See §1026.43(e)(2)(i)(C).

🔸 BalloonEnforced

Data TypeValues
Booleantrue, false

The value of this required attribute is false when the QmType attribute is SmallCreditor, HasBalloon is true, and element <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 TypeValues
Booleantrue, false

The value of this required attribute is identical to the request value of HasDeferredPrincipal. As with the other attributes of the <Features> element, if the value of this attribute is true, the loan may not be considered a qualified mortgage.

See §1026.43(e)(2)(i)(B).

🔸 LoanTermTooLong

Data TypeValues
Booleantrue, false

If the value of the request attribute, TermInYears, is greater than 30, the value of this attribute is true; otherwise, the value is false.

See §1026.43(e)(2)(ii) for more information on this stipulation.

🔸 NegativeAm

Data TypeValues
Booleantrue, false

The value of this required attribute is identical to the request value of HasNegativeAm.

See §1026.43(e)(2)(i)(A) for more information on this stipulation.


🟦 <PointsFeesTrigger>

Element TypeData Type
Empty-

This element itself contains no data. The attributes of this element expose the determination of the PointsFees attribute for the determination of whether or not a loan qualifes as a qualified mortgage. <PointsFeesTrigger> contains the following attributes:

Attributes: 🔸TotalPointsFees, 🔸MaxPointsFees

Elements: None

🔸 TotalPointsFees

Element TypeData TypeValues
DataDecimalCurrency > 0

This required decimal attribute holds the value of the TotalPointsFees from the request payload.

🔸 MaxPointsFees

Element TypeData TypeValues
DataDecimalCurrency > 0

This required decimal attribute 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>

Element TypeData Type
Empty-

This element itself contains no data. The attributes of this element expose the determination of the SmallCreditorBalloon attribute for the determination of whether or not a loan qualifes as a qualified mortgage. <SmallCreditorBalloon> contains the following attributes:

Attributes: 🔸AmortLoanTermTooLong, 🔸HasRateIncrease, 🔸LoanTermTooShort

Elements: None

🔸 AmortLoanTermTooLong

Data TypeValues
Booleantrue, false

If the value of the request attribute, AmortTermInYears, is greater than 30, the value of this attribute is true; otherwise, the value is false. See § 1026.43(f)(1)(iv)(A) for more information on this stipulation.

🔸 HasRateIncrease

Data TypeValues
Booleantrue, false

The value of this required attribute is identical to the request value of HasRateIncrease.

🔸 LoanTermTooShort

Data TypeValues
Booleantrue, false

If the value of the request attribute, TermInYears, is less than 5, the value of this attribute is true; otherwise, the value is false. See §1026.43(f)(1)(iv)(C) for more information on this stipulation.