Professional Documents
Culture Documents
Version 1.5.1
Last Updated: February 2, 2016
3/4/2015 1.3 Updated Hard Stop Codes and Hard Stop Override Codes Sections
under Appendix A: Hard Stop, Override, and Error Codes with new
FHA hard stops.
3/19/2015 1.4 Updated FHA5005 hard stop description under Appendix A:
Hard Stop, Override, and Error Codes.
1/21/2016 1.5 Added FHA505 hard stop description under Appendix A: Hard
Stop, Override, and Error Codes.
Added FHA3700 hard stop description under Appendix A: Hard
Stop, Override, and Error Codes.
Added error code 300013 description under Appendix A: Hard
Stop, Override, and Error Codes.
Overview .................................................................................................................................................. 45
5.1 Validate Input XML Files during Development ................................................................................... 45
5.2 Record the Business Service Request GUID ....................................................................................... 45
5.3 Use a Conversation ID..................................................................................................................... 45
5.4 Monitoring and Health Checks ........................................................................................................ 45
5.5 DNS Best Practices ......................................................................................................................... 45
5.6 Set Appropriate Network Socket Timeout Intervals .......................................................................... 46
5.7 MIME Best Practices....................................................................................................................... 46
Appendix A: Hard Stop, Override, and Error Codes ............................................................................................ 47
Description ............................................................................................................................................... 54
Routing Input ............................................................................................................................................ 54
1.1 Overview
The Electronic Appraisal Delivery (EAD) portal is the portal through which lenders will electronically submit
appraisal reports for delivery to the Federal Housing Administration (FHA). The Electronic Appraisal Delivery
Technical Integration Guide (EAD TIG) is intended for lenders and third-party vendors that are developing
interfaces to submit appraisal data to EAD. Direct Integration projects must be managed in consultation with the
third-party vendor selected by FHA, Veros Real Estate Solutions.
For designated appraisal report forms, lenders will be required to deliver electronic appraisal data through EAD
to FHA.
The following three appraisal report forms must be submitted in MISMO 2.6 Errata 1 format:
Small Residential Income Property Appraisal Report (Freddie Mac Form 72/Fannie Mae Form 1025)
Manufactured Home Appraisal Report (Freddie Mac Form 70B/Fannie Mae Form 1004C)
Appraisal Update and/or Completion Report (Freddie Mac Form 442/Fannie Mae Form 1004D)
The following two appraisal report forms must be submitted in MISMO 2.6 GSE Extended format and must also
meet the standards provided in the Uniform Appraisal Dataset (UAD) Specification:
Uniform Residential Appraisal Report (Freddie Mac Form 70/Fannie Mae Form 1004)
Individual Condominium Unit Appraisal Report (Freddie Mac Form 465/Fannie Mae Form 1073)
The UAD includes all data points required for a complete appraisal report form and standardizes key appraisal
data elements for a subset of fields.
DTD
Document Type Definitions (DTDs) are a set of rules that define the structure of an XML document.
The Routing Input/Output and Control Input/Output defined in this specification comprise a proprietary
message header to complete an EAD transaction. The xml structures are defined using DTDs which are
provided in the Integration Tool Kit available from Veros. There are multiple examples rendered within
the specification which conform to the DTD structure.
GUID
A Globally Unique Identifier (GUID) is a value returned via the EAD response file. In the PostBack
connectivity model, the GUID is used as the unique identifier to reference the original request when receiving
the complete request response file. A GUID is returned with all requests.
HTML
Hypertext Markup Language (HTML) is the primary markup language used to create Web pages. It is a return
file format option for EAD response files.
HTTPS
HyperText Transfer Protocol Secure (HTTPS) is a secure protocol used on the Web to transfer hypertext
media. It is a stateless application level protocol, which takes place over TCP/IP using the default port 443.
MIME
Multipurpose Internet Mail Extensions (MIME) refers to an official Internet standard that specifies how
messages must be formatted so that they can be exchanged between different mail systems. MIME messages
can contain text, images, audio, video, or other application-specific data.
URL
A Uniform Resource Locator (URL) is the file or place in a file on a particular machine where a resource is
located. Most users are familiar with URLs as domain names.
UAD
The Uniform Appraisal Dataset (UAD) has been developed to improve the quality and consistency of appraisal
data on delivered loans. The UAD includes all data points required for a complete appraisal report form and
standardizes key data points.
XML
Extensible Markup Language (XML) is a set of standardized rules for marking-up documents that can be
shared on the Internet. It provides data independence from formatting constraints.
2.1 Overview
Executing transactions in the EAD XML environment involves posting a multi-part MIME containing a well-formed
Extensible Markup Language (XML) file to the appropriate URL. The XML file contains a user id, password, and
connection mode specification (e.g. Synchronous) as well as data specific to the requested business service. The XML
file must be formatted according to the required Document Type Definition (DTD) for the transaction. Format validation
should be done on the client side. A Hypertext Transfer Protocol(s) (HTTPS) POST command is used to submit
transactions to EAD and receive responses. When the transaction is complete, a response multi-part MIME file will be
returned.
The following URLs are used to connect to the EAD integration services:
EAD URLs
URL Network Environment
https://direct-intg.electronicappraisaldelivery.com/servicerequest/ Internet Integration
https://direct.electronicappraisaldelivery.com/servicerequest/ Internet Production
To minimize customer impact when we make internal changes we do not publish the IP Addresses for the EAD
URLs. If you have a network configuration that requires this information, please contact Veros.
The XML Integration Server supports two connection models: Synchronous and PostBack. The following
sections describe the flow of each model.
2.2.1 Synchronous
Definition
Synchronous is a model of communication where the request and the response are processed in a single
operation. The requestor initiates the synchronous mode by setting the element: <CONNECTION
_ModeIdentifier="Synchronous"/> in the service request XML. Posting of a synchronous request will result in
EAD returning a response XML envelope and any service output file(s).
Synchronous Transaction
Client EAD
Service Request
Service Response
Usage
The table below lists business services that can be requested synchronously. If the service is unavailable or the
request was not received, the user should send the initial request again.
2.2.2 PostBack
Definition
PostBack is an additional model of communication in which data is transmitted to the customer when results are
ready. The customer will specify a URL where the responses will be delivered. This model of communication
eliminates the need for the customer to poll for the initial EAD response; the initial response will be delivered
when ready to the customers designated PostBack URL. If a request is submitted to more than one investor and
there is a delay between the investor response times, additional PostBack requests will be required as explained
on page 10.
The requestor initiates the PostBack mode by setting the following element and attributes: <CONNECTION
ModeIdentifier="PostBack" PostBackURLIdentifier="https://www.url.com" /> in the RI XML file. It is
important that the customer indicates a valid PostBack URL for the transmission to work.
Submission of a PostBack request will result in EAD returning a GUID within the response XML envelope. It is
recommended that the returned GUID be placed in a persistent datastore for use later after the output from the
requested service is received from the EAD PostBack session. The GUID should be used to correlate the request
to the PostBack response. It is also recommended that you utilize the Conversation ID for request/response
correlation which can be defined by the client at the creation of the request.
In the Session 1 diagram below a service request is made in the PostBack mode. The EAD server will return a
GUID to the requestor and close the connection. The requestor stores the returned GUID for later use.
The EAD system will initiate Session 2 at a later time (based on business service requirements) and make a
PostBack to the designated URL from the original request. The EAD server will return any available results from
the initial service request at this time and close the connection. The diagram below demonstrates the PostBack
workflow for a GetFindingsWait transaction. The first PostBack response is initiated when the
RECIPIENT_STATUS changes.
PostBack Transaction
Client EAD
Session 1
Service Request
(Conversation ID)
RECIPIENT_STATUS
In Progress/FHA
Service Response
(GUID)
Session 2
Service Response
to www.url.com
RECIPIENT_STATUS
FHA Findings (if available) Successful/FHA
HTTP Response
MIME was originally developed as a standard for defining the types of files attached to standard Internet mail
messages. The MIME standard has come to be used in many situations where one computer program needs to
communicate with another program about what kind of file is being sent.
EAD requests and responses are each composed of one or multiple sections, and a multipart MIME structure
allows the caller and the service to communicate about and identify these sections.
When your customer application submits a request, the EAD service expects to receive an HTTP header and multipart
MIME stream in the body of the HTTP message. The HTTP header must include the following:
Content-Type must be multipart/form-data. This refers to the MIME header parameter in the
message header. All requests must be UTF-8 encoded.
Boundary parameter must be set and utilized as outlined in RFC 1521. The numbers of dashes
that mark the boundary are significant. The header line that sets the boundary (i.e., boundary="-----------
-92A1B91BE760813DD832E784") always has two less dashes than the actual boundary lines. The final
boundary line always ends in two dashes.
Content-Disposition must be present in each body header and set to form-data. The name and
filename parameters are used as:
i. Name parameter is required for all body sections. See example below for required string
values.
ii. Filename parameter is optional and can represent the source filename for Business Input
file data.
Content-Type may be required to specify the type of Business Input file data. See the business
service definitions in Section 3.
When you receive a response from EAD, the HTTP header will include the following:
Content-Type will be multipart/form-data. This refers to the MIME header parameter in the
message header.
Boundary parameter is set and utilized as outlined in RFC 1521. The numbers of dashes that
mark the boundary are significant. The value of the boundary string is entirely arbitrary. Client
applications must read it and use it to parse the body of the response message, but must make no
assumptions about its value.
Content-Disposition will be present in each body header and set to form-data. The name and
filename parameters are used as:
i. Name parameter is required for all body sections. See example below for required string
values.
ii. Filename parameter may be returned in the response Business Output sections. See the
business service definitions in Section 3.
The content of the HTTP post to EAD is multi-part MIME which contains the request XML files and any
business data files. Your multipart MIME implementation must conform to the IETF Guidelines. Please refer to
RFC 2388, RFC 1806, RFC 822 and RFC 1521 at http://www.ietf.org for further information.
The MIME is comprised of three parts: Routing Input, Control Input, and Business Input.
Routing Input, RI, is an XML file containing information that identifies the requestor, the service
requested and the transaction model. See the Encryption Addendum for additional details.
Control Input, CI, is an XML file containing data required by the service, but not contained in a
business data file.
Business Input, BI, can be any file containing the business data required by a service e.g. an appraisal
file.
The HTTP headers and MIME section boundaries/headers conform to the requirements in section 2.3.1 above.
The table below lists the headers required for each section of the MIME:
---------------------7d93d82e30658
Content-Disposition: form-data; name="EAD_RI"
---------------------7d93d82e30658
Content-Disposition: form-data; name="CI"
---------------------7d93d82e30658
Content-Disposition: form-data; name="APPRAISAL_1"; filename="00002EAD-AS_MISMO.XML"
Content-Type: text/xml
---------------------7d93d82e30658--
The format of the response from EAD is multi-part MIME, which contains the response XML files and any
attached output data files. The MIME is comprised of three parts: Routing Output, Control Output, and Business
Output.
Routing Output, RO, is an XML file containing information that identifies the requestor, the service
requested and the transaction model. The input RI will be returned in the response file.
Control Output, CO, is an XML file containing data returned by the service, but not contained in a data
file e.g. Hard Stops, Status, etc.
Business Output, BO, can be any file containing the business data returned from a service e.g. a findings
file.
The HTTP headers and MIME section boundaries/headers conform to the requirements in section 2.3.1 above.
The table below lists the headers required for each section of the MIME:
HTTP/1.1 200 OK
Content-Type: multipart/form-data; boundary=--------ieoau._._+2_8_GoodLuck8.3-
ds0d0J0S0Kl234324jfLdsjfdAuaoei-----; charset=UTF-8
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Tue, 08 Jun 2014 17:37:26 GMT
Content-Length: 1285
----------ieoau._._+2_8_GoodLuck8.3-ds0d0J0S0Kl234324jfLdsjfdAuaoei-----
Content-Disposition: form-data; filename=EAD_RO; name=EAD_RO
Content-Type: text/plain; charset=UTF-8
This section defines the elements associated with making a request to EAD. The envelope elements serve as a
wrapper around the request data. The Routing Input is required by all services. The Routing Input must also be
encrypted before it is transmitted; please see the Encryption Addendum for details.
Routing Input
ELEMENT: REQUEST_GROUP
Required: Yes
Cardinality: 1
Description: This element contains general information to make a request.
ELEMENT: REQUEST
Required: Yes
Cardinality: 1
Description: Contains the calling users credentials and the business service to be called.
ELEMENT: KEY
Required: No
Cardinality: 0 or 1
Description: The Conversation ID will persist the transaction and can be used for tracking
purposes.
ELEMENT: REQUEST_DATA
Required: Yes
Cardinality: 1
Description: This element defines the EAD Service and Connection mode.
ELEMENT: PRODUCT
Required: Yes
Cardinality: 1
Description: Identifies the business service requested. Please see section 3 for the available
business services.
ELEMENT: CONNECTION
Required: Yes
Cardinality: 1
Description: Identifies the connection model and relevant information for this request.
This section defines the elements associated with receiving a response from EAD. The envelope elements
serve as a wrapper around the response data. The Routing Output is returned by all services. Please refer to the
business services in Section 3 for Control Output and Business Output requirements.
Routing Output
ELEMENT: RESPONSE_GROUP
Required: Yes
Cardinality: 1
Description: This element contains information returned in a response.
ELEMENT: RESPONSE
Required: Yes
Cardinality: 1
Description: This element contains information returned in a response.
ELEMENT: RESPONSE_DATA
Required: No
Cardinality: 0 or 1
Description: Element contains the GUID returned by EAD.
ELEMENT: PRODUCT
Required: No
Cardinality: 0 or 1
Description: Identifies the EAD product or service requested.
ELEMENT: STATUS
Required: Yes
Cardinality: 1
Description: Contains EAD application level error information if one occurs. Please note this
element does not include errors from the requested business service. Please refer to
Appendix B, EAD Error Codes, for a list of potential errors.
2.5 STATUS_LOG
When a failure occurs or UAD messages are present the STATUS_LOG will be returned as Business Output and
should be parsed and displayed to the end user. The STATUS_LOG provides additional detailed information that
helps the user identify what action is required. The information also assists in the troubleshooting process if
contacting a help desk is necessary. The STATUS_LOG is returned in the MIME section
name=EAD_STATUS_LOG.
Service Errors
If a request encounters multiple errors, only a single error code can be returned in the EAD_CO STATUS
element, but all applicable errors will be returned in the STATUS_LOG.
----------ieoau._._+2_8_GoodLuck8.3-ds0d0J0S0Kl234324jfLdsjfdAuaoei-----
Content-Disposition: form-data; filename=EAD_STATUS_LOG; name=EAD_STATUS_LOG
Content-Type: text/plain; charset=UTF-8
EAD will return an error message to the user if certain data is not provided or does not conform to the
compliance rules defined in the UAD Specification and its appendices.
When an appraisal has failed one or more UAD Compliance rules checks, EAD will return a Hard Stop Code 401
(if one or more of the rules are Fatal severity) or 402 (if all of the rules are Warning severity). For each appraisal
----------ieoau._._+2_8_GoodLuck8.3-ds0d0J0S0Kl234324jfLdsjfdAuaoei-----
Content-Disposition: form-data; filename=EAD_STATUS_LOG; name=EAD_STATUS_LOG
Content-Type: text/plain; charset=UTF-8
3.1 Overview
This service is used to submit appraisal data prior to loan endorsement. Appraisals may be submitted in one of
the supported XML formats (MISMO 2.6, MISMO 2.6 Errata 1, MISMO 2.6GSE). Submissions in XML format
must also include an embedded copy of the first-generation appraisal PDF file.
Upon first submission, the request will be assigned a Document File ID by EAD. If submitting a
resubmission/correction, this identifier should be referenced to avoid having the submission rejected as a
duplicate submission for the loan. For product types where two or three appraisals are required, multiple
appraisals may be submitted together, and will be associated with the same Document File ID.
After submission, an initial confirmation of receipt will be returned. Findings may be retrieved through the
GetFindings service and/or through the EAD web portal.
This service is used to retrieve findings generated by EAD after your submission has been evaluated.
The processing status of the submission (in progress, success, failure, override requested) is returned by this
service. It is recommended that submitters poll the Get Findings service to ensure that their submissions have
been processed successfully, to retrieve findings, or to retrieve Hard Stop messages in the case of a failure.
If a submission has failed and Hard Stop messages have been received through this service, a request to override
some types of Hard Stops can be submitted through the Submit Appraisal service.
This service is a variant of the Get Findings Service that is designed for clients who implement a PostBack
service.
This service is used to retrieve reports from EAD. Currently, the Submission Summary Report (SSR) is available
through this service.
The diagram below demonstrates a successful Submit Appraisal request and two subsequent Get Findings
requests to obtain the results. While EAD is processing the appraisal, Get Findings returns the recipient status
IN PROGRESS. Once the appraisal has been processed and has no hard stops that need to be addressed, Get
Findings returns the recipient status SUCCESSFUL.
The diagram below demonstrates the workflow for resolving an overridable hard stop. As above, the Submit
Appraisal request results in the issuance of a Document File ID. After the appraisal has been processed by EAD,
the call to Get Findings indicates that the recipient status of NOT SUCCESSFUL and returns the hard stops
that apply to the appraisal. The submitter then calls Submit Appraisal again to submit a hard stop override
request, and after that request is approved by the system, a final call to Get Findings indicates that the recipient
status is now SUCCESSFUL.
Description
This service is used to submit appraisal data in designated XML format, or to provide updates or corrections to
an existing submission.
The format for a Submit Appraisal request is comprised of the following files and MIME sections:
* A single appraisal is required for the vast majority of submissions to EAD. Where there are changes to the
single appraisal, those updates should be resubmitted as a replacement/update to Appraisal 1. A secondary or
tertiary appraisal data file should only be submitted where additional appraisals are used as part of the
underwriting decision or if an update or report of reinspection is required.
The format for a Submit Appraisal response is comprised of the following files and MIME sections
Routing Input
PRODUCT
_Name: EAD
_FunctionName: SubmitAppraisal
_VersionNumber: 1.0
ELEMENT: SUBMIT_APPRAISAL_REQUEST
Required: Yes
Cardinality: 1
Description: This element contains all required information for a Submit Appraisal request.
On an initial submission:
When an appraisal is initially submitted to EAD, the Lender Loan Number, DATA_FILE,
SOFTWARE_PROVIDER and RECIPIENT_FHA are required. The Business Unit Number must also
be specified.
If you are a lender, your EAD lender administrator may have configured multiple business units in EAD
to represent your company's organizational hierarchy. The business unit you specify will determine
which users may access your submission. Please contact your EAD lender administrator to determine
the proper Business Unit Number to be used.
If you are a lender agent, you have the ability to submit appraisals on behalf of one or more lenders. The
business unit you specify will determine which lender you are submitting for, and which Lender IDs are
available for use. Please contact your EAD lender agent administrator to determine the proper Business
Unit Number to be used for each lender.
On a resubmission:
The DocumentFileIdentifier is generated by EAD after the initial submission of appraisal data for a
loan. To resubmit appraisal data for updates or corrections, this identifier must be populated with the
proper value; otherwise, a duplicate check will reject the submission.
If the Lender Loan Number has changed, it may be updated through direct integration or the EAD web
portal. To correct a value through direct integration, provide the new value in the
SUBMIT_APPRAISAL_REQUEST element.
A resubmission may include any one or more of the following: (1) updates to the Lender Loan Number
or FHA attributes, (2) an updated appraisal file to replace a previously submitted file, or (3) a new
Secondary Appraisal file to be added to a previous submission.
ELEMENT: SOFTWARE_PROVIDER
Required: Yes
Cardinality: 1
Description: This element provides the account information.
ELEMENT: RECIPIENT_FHA
Required: No
Cardinality: 0 or 1
Description: This element contains all information specific to a submission to FHA. It must be
included when initially submitting an appraisal to FHA. It may also be included when
making subsequent updates to FHA attributes.
* The Appraisal Update and/or Completion Report form may only be submitted as an
APPRAISAL_2 or APPRAISAL_3 file. One of the other supported appraisal form
types must be submitted or be already present as APPRAISAL_1.
_Name $ Y APPRAISAL_1
APPRAISAL_2
APPRAISAL_3
ELEMENT: DELETE_FILE
Required: No
Cardinality: 0 or more
Description: This element allows you to remove a secondary or tertiary file from the submission if
it was uploaded in error.
Typically, a file that requires corrections should be replaced with an updated file using the DATA_FILE
element. However, if a file was uploaded in error and should be deleted completely from the document
file, use the DELETE_FILE element. Every Document File must have an APPRAISAL_1 file, so the
APPRAISAL_1 file cannot be deleted, only replaced.
Example Control Input SubmitAppraisal (Change FHA Case Number and Loan Number)
<?xml version="1.0" encoding="UTF-8"?>
<SUBMIT_APPRAISAL_REQUEST LenderLoanNumber="NewLoan#"
EADDocumentFileIdentifier="DocumentFileId">
<SOFTWARE_PROVIDER _AccountNumber="Account#"/>
<RECIPIENT_FHA HUDCaseNumber="NewFHACaseNo"/>
</SUBMIT_APPRAISAL_REQUEST>
Business Input
For an initial Submit Appraisal Request the appraisal XML file must be included as Business Input. The
secondary appraisal file is Optional. Files must be UTF-8 encoded. The following Content-Type declaration
must be included in the Business Input BI MIME section:
Control Output
ELEMENT: SUBMIT_APPRAISAL_RESPONSE
Required: Yes
Cardinality: 1
Description: This element contains the response to the submission.
ELEMENT: STATUS
Required: Yes
Cardinality: 1
Description: This element contains error messages from the requested business service.
ELEMENT: RECIPIENT_FHA
Required: Conditional
Cardinality: 0 or 1
Description: This element contains information specific to a submission to FHA.
Description
This service is used to check on the status of an appraisal submission and retrieve findings.
The format for a Get Findings request is comprised of the following MIME sections:
The format for a Get Findings response is comprised of the following files and MIME sections:
The Get Findings Service supports the Synchronous connection mode only. For the PostBack connection mode, use the
GetFindingsWait service described in section 3.4 below.
PRODUCT
_Name: EAD
_FunctionName: GetFindings
_VersionNumber: 1.0
Control Input
ELEMENT: GET_FINDINGS_REQUEST
Required: Yes
Cardinality: 1
Description: This element contains all required information for a Get Findings request.
ELEMENT: _RETURN_FILE
Required: No
Cardinality: 0 or more
Description: This element contains the list of requested return files.
ELEMENT: SOFTWARE_PROVIDER
Required: Yes
Cardinality: 1
Description: This element provides the account information.
Control Output
ELEMENT: GET_FINDINGS_RESPONSE
Required: Yes
Cardinality: 1
Description: This element contains the available information for the specified Document File.
ELEMENT: STATUS
Required: Yes
Cardinality: 1
Description: This element contains error messages from the requested business service.
ELEMENT: RECIPIENT_STATUS
Required: Yes
Cardinality: 0 or more
Description: This element contains error messages from the processing of the submission by EAD.
This element may not be returned if the service call resulted in an error (see STATUS
element above).
ELEMENT: RECIPIENT_FHA
Required: Conditional
Cardinality: 0 or 1
Description: This element contains all information specific to a submission to FHA.
ELEMENT: HARD_STOP
Required: No
Cardinality: 0 or more
Description: These elements contain the Hard Stop errors encountered while processing the
appraisal submission. Appendix A lists the current Hard Stop codes, but since new
codes may be added in the future, your implementation must not fail when
encountering a code that is not recognized.
ELEMENT: HARD_STOP_RECIPIENT
Required: Yes
Cardinality: 1 or more
Description: This element identifies the recipient to whom the hard stop is associated.
Example Control Output Get Findings (Hard Stop Override Request in Progress)
In the following example, one Hard Stop override request has been accepted, but the other is still pending:
<?xml version="1.0" encoding="UTF-8"?>
<GET_FINDINGS_RESPONSE DocumentFileIdentifier="DocumentFileId" LenderLoanNumber="Loan#">
<STATUS _Condition="SUCCESS" _Name="SERVICE" _Code="0" _Description="Request
Successful"/>
<RECIPIENT_STATUS _Name="FHA" _Condition="OVERRIDE REQUESTED" _Code="IS0002"
_Description="Your Hard Stop override request(s) are in the process of being reviewed."/>
<RECIPIENT_FHA FHALenderID="FHALenderID" HUDCaseNumber="FHACaseNo"/>
<HARD_STOP _Name="APPRAISAL_1" _Code="302" _Description="Unknown subject address"
_OverrideStatus="IN PROGRESS">
<HARD_STOP_RECIPIENT _Name="FHA"/>
</HARD_STOP>
<HARD_STOP _Name="APPRAISAL_1" _Code="202" _Description="Unverified appraiser license
information" _OverrideStatus="APPROVED" _OverrideDecisionCode="OD002"
_OverrideDecisionDescription="Override request accepted. Submitter's delegated authority
accepted">
<HARD_STOP_RECIPIENT _Name="FHA"/>
</HARD_STOP>
<FINDINGS_SUMMARY/>
</GET_FINDINGS_RESPONSE>
Example Control Output Get Findings (Hard Stop Override Requests Approved)
Example Control Output Get Findings (Hard Stop Override Request Denied)
In the following example, one of the Hard Stop override requests has been denied, so the submission has not
been accepted:
<?xml version="1.0" encoding="UTF-8"?>
<GET_FINDINGS_RESPONSE DocumentFileIdentifier="DocumentFileId" LenderLoanNumber="Loan#">
<STATUS _Condition="SUCCESS" _Name="SERVICE" _Code="0" _Description="Request
Successful"/>
<RECIPIENT_STATUS _Name="FHA" _Condition="NOT SUCCESSFUL" _Code="IS0004"
_Description="Hard Stop override request(s) have been denied. Review the HARD_STOP elements
for details."/>
<RECIPIENT_FHA FHALenderID="FHALenderID" HUDCaseNumber="FHACaseNo"/>
<HARD_STOP _Name="APPRAISAL_1" _Code="302" _Description="Unknown subject address"
_OverrideStatus="DENIED" _OverrideDecisionCode="OD003" _OverrideDecisionDescription="Override
request denied. Resubmit a corrected appraisal file">
<HARD_STOP_RECIPIENT _Name="FHA"/>
</HARD_STOP>
<HARD_STOP _Name="APPRAISAL_1" _Code="202" _Description="Unverified appraiser license
information" _OverrideStatus="APPROVED" _OverrideDecisionCode="OD002"
_OverrideDecisionDescription="Override request accepted. Submitter's delegated authority
accepted">
<HARD_STOP_RECIPIENT _Name="FHA"/>
</HARD_STOP>
<FINDINGS_SUMMARY/>
</GET_FINDINGS_RESPONSE>
The Business Output for a GetFindings Request will include the STATUS LOG if an error or one or more UAD
Messages is encountered. The Business Output will also include FHA findings if requested in the Control Input
and available. The following table lists the current file and its location within the MIME Response.
ELEMENT: STATUS_LOG
Required: No
Cardinality: 1
Description: This element contains error messages and UAD compliance messages.
ELEMENT: SERVICE_ERRORS
Required: No
Cardinality: 0 or 1
Description: This element contains one or more error message from EAD.
ELEMENT: SERVICE_ERROR
Required: No
Cardinality: 1 or more
Description: This element contains a specific error message from EAD.
ELEMENT: UAD_COMPLIANCE_ERROR
Required: No
Cardinality: 1 or more
Description: This element contains a specific UAD message from EAD.
If FHA findings are available, the file(s) requested in the RETURN_FILE element will be returned. The
following defines the file structure for FHA XML Findings.
ELEMENT: FINDINGS_MESSAGES_LOG
Required: Yes
Cardinality: 1
Description: This element contains findings for up to three appraisals, based on how many
appraisals were submitted to EAD and have findings available.
ELEMENT: FINDINGS_MESSAGES
Required: Yes
Cardinality: 1 or more
Description: This element contains one or more findings messages for the specified appraisal.
ELEMENT: FINDINGS_MESSAGE
Required: Yes
Cardinality: 1 or more
Description: This element contains a specific Findings Message.
Description
This service is used to check on the status of an appraisal submission and retrieve findings. The GetFindingsWait
service is identical to the GetFindings function described above, but its response model is tailored for the
PostBack connection mode.
Clients that choose to implement the PostBack model will typically want the EAD Service to wait to respond if
the specified Document File ID is still being processed by the system. Utilizing the GetFindingsWait service call
allows the client to make reduced calls to the service, and receive a PostBack response only when the processing
of the desired Document File has resulted in a SUCCESSFUL or NOT SUCCESSFUL status. If processing
results are complete when the request is received, the PostBack response will be sent immediately.
Routing Input
The GetFindingsWait Service supports the PostBack connection mode only. For the Synchronous connection mode, use
the GetFindings service described in section 3.3 above.
PRODUCT
_Name: EAD
_FunctionName: GetFindingsWait
_VersionNumber: 1.0
Control Input
Control Output
Business Output
Description
This service is used to retrieve reports from EAD. Currently, the Submission Summary Report (SSR) is available
through this service.
The format for a Get Reports request is comprised of the following MIME sections:
The format for a Get Reports response is comprised of the following files and MIME sections:
Routing Input
PRODUCT
_Name: EAD
_FunctionName: GetReports
_VersionNumber: 1.0
Control Input
ELEMENT: GET_REPORTS_REQUEST
Required: Yes
Cardinality: 1
Description: This element contains all required information for a Get Reports request.
ELEMENT: RETURN_SSR
Required: No
Cardinality: 0 or 1
Description: This element contains the details of a Submission Summary Report (SSR) request.
ELEMENT: SOFTWARE_PROVIDER
Required: Yes
Cardinality: 1
Description: This element provides the account information.
Control Output
ELEMENT: GET_REPORTS_RESPONSE
Required: Yes
Cardinality: 1
Description: This element contains the requested reports.
ELEMENT: STATUS
Required: Yes
Cardinality: 1
Description: This element contains error messages from the requested business service.
ELEMENT: RETURN_SSR_DATA
Required: No
Cardinality: 0 or more
Description: This element identifies the SSR report files returned.
Business Output
The Business Output for a Get Reports request corresponds to the RETURN_SSR_DATA elements in the
Control Output. Each returned report indicated in the Control Output will have a corresponding Business Output
MIME section. Files in PDF format will be Base64 encoded. The Business Output MIME sections for the above
Control Output example are shown below:
---------------------7d93d82e30658
Content-Disposition: form-data; filename="SSR_FHA_DocumentFileID.pdf", name="BO_EAD1"
Content-Type: application/pdf
Content-Transfer-Encoding: base64
012345ABC
... base64 PDF data here ...
012345ABC
---------------------7d93d82e30658--
EAD Errors are specific to the formatting of the MIME file and the validation of the user id. If any part of the
MIME file is not well formatted or is missing data you will receive an EAD Error. You will also receive an EAD
error if the User ID is not authenticated for the requested business service. For a complete list of EAD Errors
please refer to Appendix B. These errors will be returned in the STATUS element of the Routing Output
response xml file.
When there is not an EAD error, the STATUS element will contain the following parameters:
Business Errors are errors returned from the service requested e.g. SubmitAppraisal, GetFindings, etc.
Examples of such errors include invalid Control Input request parameters or structure, or user account
authorization. When a Business error occurs, the _Condition attribute in the STATUS element in the Control
Output response file will be FAILURE. The _Description and _Code attributes will contain information about
the critical error. For a complete list of errors please refer to Appendix A (Status/Error Codes).
When a failure occurs the STATUS_LOG will be returned as Business Output and should be displayed to the end
user. The STATUS_LOG provides additional detailed information that helps the user identify what action is
required. The information also assists in the trouble shooting process if contacting a help desk is necessary.
Please refer to the next pages for an Example Error Workflow and STATUS_LOG.
Routing
Output
_Condition = _Condition =
Using Appendix B Check Using Appendix B
ERROR PROCESSING
determine error from STATUS_Condition determine request status
_Code Attribute attribute from _Code Attribute
_Condition = DONE
Control
Output
Check Attribute
STATUS_Condition SUCCESS Process
for "FAILURE" or Successful
"SUCCESS" Response Data
FAILURE
Perform exception
processing based on Business
_Code and _Description Output
Attribute STATUS_LOG
Display STATUS_
LOG to user
Overview
Whether you are building or buying specific components for your solution, your implementation must take into
account the EAD Integration Recommendations. This is critical to ensure the efficient flow of information
through the EAD interface.
It is important for client applications to validate input and output XML files during development. EADs best
practice is to build the customer application so that validation is an optional behavior, turned off by default,
which can be turned on by editing a configuration file.
This is critical for troubleshooting in case of a business service error. The customer application should always
log service request GUIDs, along with enough information to correlate them with specific customer requests.
Conversation IDs are another useful aid to troubleshooting. Since they are set by the customer system, they
provide proof of end-to-end service completion from the customer perspective.
Customers desiring to perform automated, scheduled checks of EAD system health may do so by sending a
MONITOR request not more often than once every five minutes.
Customers must not perform SubmitAppraisal or other business service requests to test system health.
The EAD URL Names are resolvable across the Internet. We strongly recommend following the DNS Practices
to ensure reliability of your connections to EAD:
Customers should use one DNS server to resolve all queries to EAD. This server should be able to do
recursive DNS queries and another DNS server should be used only if the first one fails to respond.
It is strongly suggested that customers not round robin their DNS queries.
Customers should allow DNS to perform queries for address resolution from the authoritative source,
and honor the default Time To Live (TTL).
Caching of the DNS resolution beyond 60 seconds can cause application problems. Note: Unexpected
sources of DNS caching include the Unix Name Service Caching Daemon (NSCD) as well as the Java
The network driver on the customers computer is designed to gracefully timeout and return control to the calling
application if normal operations exceed a predetermined interval. The default value of the network timeout can
be as long as five minutes. If the customer system does not set network timeout intervals, the user may be forced
to wait longer than necessary in the event of a network problem.
EAD strongly recommends that customer systems set the timeout intervals for network events as follows, and
that the timeout intervals are configurable within the application, using these:
We also recommend that these timeout intervals be configurable in the application, with the default values as
shown above.
Common pitfalls can occur when creating a MIME request or when processing the MIME response. The
following is a list of recommendations:
Creating MIME
Use a Third Party MIME solution
Follow RFC 2046 guidelines regarding boundaries.
Processing MIME
If you decided to use a string comparison method:
Consider issues with case comparison.
Trim spaces to avoid leading blanks, etc.
Use classes like HTTPClient.Util to get the Boundary by parsing the contentType
string and take care of spaces and delimiters. See example below:
HTTPClient.Util.getParameter("boundary", contentType);
Avoid hard coding expected order.
Need to have ability to handle changes to header sections.
Do not merge header lines into a single line, i.e. merge of Content-Type and Content-
Disposition declarations.
In addition to supporting the current Hard Stop codes below, your implementation must not fail when
encountering a code that is not recognized, as new codes may be added in the future.
1
The following data characteristics result in an automatic system override:
a. appraisal with unknown subject address if year built is equal to 2 years old or less
b. appraisal with unknown subject address that is in Puerto Rico, U.S. Virgin Islands, or Guam
c. appraisal with subject address that cannot be validated against the property associated with the FHA Case Number
d. appraisal with XML digital signature that is missing or could not be validated e. UAD Compliance check failure
(warnings only)
2
Hard Stop that applies to form 442/1004D only.
The Hard Stop will be recorded, automatically overridden and included in the response. These automatic overrides may be changed to manual overrides
or hard stops with a fatal severity in future releases.
FHA4001: Appraisal Update indicates that the market value of the subject property has declined in value
Status/Error Codes
Error Messages may be returned in the Control Output STATUS Element and/or the STATUS_LOG.
EAD error - authentication complete but ERROR EAD User not authenticated 1
user authentication failed.
EAD error - authentication system failure ERROR EAD System error, cannot 2
- LDAP unavailable or some other authenticate user
problem.
EAD error - cannot parse MIME input ERROR EAD Cannot parse MIME input 4
stream. stream
EAD error - cannot parse RI XML file. ERROR EAD Cannot parse RI XML file 5
EAD error - expected number of MIME ERROR EAD Expected file attachments are 6
parts are missing. missing
EAD error - cannot parse CI XML file. ERROR EAD Cannot parse CI XML file 7
EAD error - an exception other than those ERROR EAD EAD internal application error 9
described.
EAD error - cannot parse SECURE RI ERROR EAD Cannot parse SECURE RI XML 10
XML file. file
EAD error - error with RI encryption ERROR EAD Invalid encryption algorithm 11
EAD error - error with RI encryption ERROR EAD Invalid symmetric key 12
encryption
EAD error - error with RI encryption ERROR EAD Invalid RI XML file encryption 13
EAD error - error with RI encryption ERROR EAD RI XML file SHA1 hash 14
mismatch
EAD error - SECURE_RI request has ERROR EAD SECURE_RI XML request has 15
expired expired
Response to poll with GUID, service still PROCESSING SERVICE The response for GUID XXX is 2
in process, no results, GUID returned. not available or may not exist
Service results returned. Service results DONE SERVICE Service request completed 0
might indicate a service error.
Description
The Timeserver test is a simple round trip test. The Timeserver Service sends a request to EAD and receives a
response from the EAD server with the current date and time.
The format for a Timeserver request is comprised of the following files and MIME sections:
The format for a Timeserver response is comprised of the following files and MIME sections:
Routing Input
Please refer to section 2.4.1 for detailed description of the Routing Input.
PRODUCT
_Name: MONITOR
_VersionName: ReturnEST
_VersionNumber 2.0