Arrowbase API Documentation
Introduction Getting Started AuthenticationPre-Order
Quote OrderNew Order
Create an Order Transaction Details Additional Details Requesting Party Order Details Loan Details Order Contacts Linked Products Order ResponseOrder Workflow
Actions Add Comments Add Documents Manage Contacts On Hold Resume Cancel Borrower Delivery Scheduling Notifications New Comments New Documents On Hold Resume Cancellation Provider Assignment Fee Changes Delivery Date Changes Inspection Appointment Product Unavailable Status Update Completed ReportHTTP Responses & Status Codes
HTTP Responses HTTP Status CodesAppendices
Document Types Event Codes Contact Types Product Codes Loan Types Property TypesClient API
Arrowbase Technologies, Inc. provides intuitive, secure, and powerful technology to banks, credit unions, loan servicers and mortgage lenders. Our flagship appraisal management technology, AppraisalWorks, enables clients and LOS partners to access more appraisal and alternative valuation providers, with seamless order tracking, and turnkey automation – modernizing appraisal management functions through our open APIs.
AppraisalWorks has a strong desire to work with you and align our goals for success. Here’s how we can help ...
Implement Quickly and Confidently
The AppraisalWorks system is built on RESTful APIs that are easy to implement and configure to support unique workflows. Our system also supports MISMO-based XML APIs and we can provide detailed documentation upon request. Process event updates, messaging, and document transmission for all your stakeholders and clients with one standardized integration. When a ‘minimal marketing functionality’ approach is preferred, our team can advise on the best practices for quickly implementing a successful integration and tacking on additional features as requested – getting your product to market quicker and with less setbacks.
Access a Broad Menu of Valuation Services
Access turn-key provider integrations with top-tier AMC providers and a nationwide panel of individual appraisers – ensuring your diverse needs are met. Gain access to more options with innovative valuation tools and partnering with providers at the forefront of how real estate is valued. Don’t worry about having to frantically add AMCs to your integration roadmap, we’ve got you covered!
Improve Client and Borrower Experience
Through AppraisalWorks, clients can standardize the communication they receive from providers and the outbound communication they send to their borrowers. Configurable automation enables a lender to live within their LOS and let AppraisalWorks do the heavy lifting. This standardization and automation ultimately lead to improved stakeholder satisfaction, resulting in better ratings for your services and fueling business growth.
Future-Proof Valuation Integration Strategy
Save time on your technology roadmap for other projects by leveraging AppraisalWorks’ integrations with valuation providers. Rely on the AppraisalWorks development team to build new integrations and stay current with new products and services offered by provider partners so you can reserve room on your backlog for your top priorities.
Advanced Technology with Rapid Improvements
AppraisalWorks stays on top of the complexity of real estate lending, implementing intuitive technology and reliable features to support lenders’ workflows. Our roadmap supports a rapid-release strategy, allowing us to deploy new features to production environments weekly – keeping up with constant demand for system improvements.
About AppraisalWorks
AppraisalWorks is a cloud-based appraisal management technology platform that enables lenders to order, manage, review, maintain, and analyze real estate appraisals and collateral valuations.
The platform improves process efficiency, ensures regulatory compliance and facilitates collaboration between lenders, processors, appraisers and borrowers — significantly improving loan turnaround time, reducing cost per loan, and enhancing the borrower experience.
Patented under U.S. Patent 10,635,999, AppraisalWorks has the power to transform appraisal management functions into a competitive advantage and provide opportunities to expand your business – contact us today.
Getting Started
Interested in setting up a sandbox account and getting started? Reach out to the team here.
The Arrowbase technology team and AppraisalWorks software implementation specialists are ready to assist with the design and implementation of your integration. Whether you are looking to integrate every method into your system, support minimum functionality for quicker time to market, or establish a custom workflow, our teams can advise on best practices and shorten your integration project.
We recommend an initial call with our experienced developers and project managers who can provide integration examples, detailed test cases, and implementation advice.
Authentication
The Arrowbase REST API authentication begins when you receive an AppraisalWorks issued Public/Private encryption key pair. AppraisalWorks will also issue you a Client ID.
Contact us to get setup.
After you receive your Public and Private keys, all new Requests will need to be signed to create an HMAC signature. Using your private key, generate a hash of the following comma separated elements using the SHA256 algorithm.
Element | Description |
---|---|
HTTP Verb | The HTTP verb being used for this request. |
Content-Type | The format of the content being sent. This will always be "application/json". |
URL | The relative URL of this request. |
Timestamp | The UTC timestamp of this request. |
"POST,application/json,,/Orders,2022-04-12 16:32:25Z"
"GET,application/json,,/Orders/8189-F16E-03D8-4C3F/Comments/3702215,2022-04-12 16:32:25Z"
Note: The timestamp must be added to the ‘x-request-date’ header of the request.
Note: The timestamp must reflect the time at which the request is prepared for transmission. Basic security protocols will reject the request if it is processed by the server outside of a limited time window.
This string is being used for encryption and is case sensitive, especially to the HTTP Request method and the relative path.
hmac PublicKey:{signature}
Example Signature (C#):
string hmacPrivateKey = … your private key as a GUID string canonical_string = "POST,application/json,,/Orders,2022-04-12 16:32:25Z"; UTF8Encoding encoder = new (); var hmachasher = new HMACSHA256(encoder.GetBytes(hmacPrivKey)); byte[] hashedDataBytes = hmachasher.ComputeHash(encoder.GetBytes(canonical_string)); var signature = Convert.ToBase64String(hashedDataBytes);
Replace the ‘{signature}’ portion of the Authorization header with the ‘signature’ string from the code example.
Provider Fee Quote
Endpoint: POST /Orders/{transactionUID}/FeeQuote
The Fee Quote method pre-selects a provider for the order based on the client’s assignment criteria and returns that provider’s fee for the subject property location and product defined.
This provides the client an opportunity to receive a provider fee quote before an order is placed.
The call only needs a client ID, the property address and a product code.
The API call will then return valid data which the client can use to acquire prepayment from a borrower before placing an order for that property address and product code.
When placing the order for a subject property that was previously quoted, the UniqueAssignment value provided in response to a quote request must be used in the new order request. This UniqueAssignment value should be inserted in the Additional Details section of the order request.
{ "clientId": "123456", "address": { "streetAddress": "6000 Freedom Square Dr.", "city": "Independence", "state": "OH"", "zip": "44131", "county": "Cuyahoga", }, "product": { "code": "A001" } }
The data fields required to fulfill this request are outlined below.
Property | Required | Data Type | Description |
---|---|---|---|
clientId | Yes | String | AppraisalWorks Client ID for the lender account provided to you at setup. |
address.streetAddress | Yes | String | The subject property street address. |
address.city | Yes | String | The subject property city. |
address.state | Yes | String | The subject property state. |
address.zip | Yes | String | The subject property zip code. |
address.county | Yes | String | The subject property county. |
product.code | Yes | String | Refer to the Product Types appendix for acceptable values. |
If the Fee Quote request succeeds the following JSON will be returned to the client.
{ "quoteFee": "250.00", "vendorId": 1234, "uniqueAssignment": "F16E-81B9-4C3F-03D8", "isSuccess": true, "description": "Only present if isSuccess is false.", "datetime": "2022-04-04 16:58:31Z", }
Property | Data Type | Description |
---|---|---|
quoteFee | String | The base fee charged by the selected provider for the given address and product. |
vendorId | Integer | The identifier for the provider that will be assigned to this order if it is entered. |
uniqueAssignment | String | The unique identifier for this quote request that may be used to enter an order and have the order assigned to this provider. |
isSuccess | Bool | When true the HTTP Status will be 200 (OK). When false the HTTP Status will be 400 (Bad Request). |
description | String | When the Request fails, this provides a description of the error. If isSuccess is true this property is not present. |
datetime | Date | UTC timestamp when the response was created. |
Create an Order
This section details how to create an order and define all the components of the request that will determine how the order is fulfilled. Supporting multiple product workflows through the Arrowbase interface is easy – simply change the product code in the order request.
Orders can be created at the following endpoint:
https://uat-api.arrowbasetech.com/RapiV1/Orders
To create a new order, submit a POST request to: https://uat-api.arrowbasetech.com/RapiV1/Orders
POSTing the following Order object to the specified endpoint starts the order process.
A comprehensive order JSON object example is provided below.
{ "referenceNumber": "demoAPI-012345", "complexProperty": false, "priority": false, "requestedDueDate": "12/22/2023", "fhaCaseNumber": "456-1569785", "internalComment": "Comments for the appraisal desk and review team.", "duCaseFileID": "02-34567890", "lpaKey": "01-23456789", "vendorInstructions": "Comments for the appraiser or AMC.", "requestingParty": { "clientID": "4564", "name": "ABC Lender", "contactName": "John Smith" }, "request": { "internalAccountID": "12345", "branchID": "Branch4567", "loanAmount": 300000.00, "salesPrice": 350000.00, "estimatedValue": 350000.00, "loanType": "Purchase", "transactionUID": "81B9-F16E-03D8-4C3F", "requestData": { "action": "Original", "loan": { "application": { "property": { "streetAddress": "6000 Freedom Square Dr.", "city": "Independence", "state": "OH", "county": "Cuyahoga", "zip": "44131", "propertyType": "Single Family" } }, "product": { "name": "FNMA 1004 Single Family", "code": "A001" }, "embeddedFile": [ { "typeID": "1010", "name": "purchasecontract.PDF", "description": "Purchase Contract", "document": "Base64 encoded document" } ], "parties": [ { "partyType": "Borrower", "firstName": "Connie", "middleName": "H", "lastName": "Borrower", "fullName": "Connie H Borrower", "contactMethod": { "contactInfo": [ { "contactLabel": "Home", "contactType": "Phone", "contactValue": "(440) 222-3333" }, { "contactLabel": "Home", "contactType": "Email", "contactValue": "connie@donotusetest.com" } ] } }, { "partyType": "Appraisal Coordinator", "firstName": "Angie", "middleName": "T", "lastName": "Manager", "fullName": "Angie T Manager", "contactMethod": { "contactInfo": [ { "contactLabel": "Mobile", "contactType": "Phone", "contactValue": "(919) 933-7717" }, { "contactLabel": "Home", "contactType": "Email", "contactValue": "angie@donotusetest.com" } ] } }, { "partyType": "Property Contact", "firstName": "Peter", "middleName": "T", "lastName": "contact", "fullName": "Peter T Contact", "contactMethod": { "contactInfo": [ { "contactLabel": "Home", "contactType": "Phone", "contactValue": "(919) 933-2517" }, { "contactLabel": "Work", "contactType": "Email", "contactValue": "peter@donotusetest.com" } ] } }, { "partyType": "Loan Officer", "firstName": "Debbie", "middleName": "", "lastName": "Officer", "fullName": "Debbie Officer", "contactMethod": { "contactInfo": [ { "contactLabel": "Work", "contactType": "Phone", "contactValue": "(984) 219-5641" }, { "contactLabel": "Work", "contactType": "Email", "contactValue": "Debbie@donotusetest.com" } ] } }, { "partyType": "Loan Processor", "firstName": "Martin", "middleName": "J", "lastName": "Processor", "fullName": "Martin J Processor", "contactMethod": { "contactInfo": [ { "contactLabel": "Work", "contactType": "Phone", "contactValue": "(222) 333-5555" }, { "contactLabel": "Work", "contactType": "Email", "contactValue": "Martin@donotuse.test.com" } ] } } ] } } } }
Transaction Details
The transaction details segment of the order request includes pertinent information about the new order. A detailed breakdown of the properties and descriptions are provided below.
{ "referenceNumber": "API-012345", "complexProperty": false, "priority": true, "requestedDueDate": "12/1/2022", "fhaCaseNumber": "123456789", "internalComment": "Internal Comments for Appraisal Desk and Review Team", "duCaseFileID": "0123456789", "lpaKey": "01-2345678", "manualAssignOverride": true, "vendorInstructions": "Please reach out to the property contact to schedule the appointment.", "additionalDetails": [{ … }], "requestingParty": { … }, "request": { … } }
Property | Required | Data Type | Description |
---|---|---|---|
referenceNumber | No | String | Additional order identifier that may be used for tracking purposes or for consolidated tracking of portfolio or batch orders. |
complexProperty | No | Boolean | Flags the order as a complex property. |
priority | No | Boolean | Flags the order as a priority or rush order. |
requestedDueDate | No | Date | Defines the due date for the order. |
fhaCaseNumber | No* | String | Defines FHA case number for the order and is required for FHA appraisals. |
internalComment | No | String | Internal instructions to the appraisal desk or the review team. |
duCaseFileID | No | String | Desktop Underwriter identifier for Fannie Mae. |
lpaKey | No | String | Loan Prospector unique identifier for Freddie Mac. |
manualAssignOverride | No | Bool | When true disables auto-assignment of a provider. |
vendorInstructions | No | String | Order level instructions passed to the provider on assignment. |
additionalDetails | No | Object | Client may specify any number of Name/Value string pairs to annotate the Order notes. See here |
requestingParty | Yes | Object | This object contains data related to the requestor. |
request | Yes | Object | This object contains data related to the order request. |
Additional Details
The additional details portion of the order data is an optional array of name/value pairs that can be used to annotate an order or drive additional order logic. Names that are well-defined (i.e. recognized by AppraisalWorks) will be applied to the order data when it is processed. The remaining name/value pairs will be annotated in a note placed on the order.
additionalDetails
[ { "fieldName": "BorrowerPrepayment", "fieldValue": "250.00" }, { "fieldName": "UniqueAssignment", "fieldValue": "F16E-81B9-4C3F-03D8" } ]
Property | Required | Data Type | Description |
---|---|---|---|
fieldName | Yes | String | Any name that describes the field value. |
fieldValue | Yes | String | Data for this field name, always presented as a string. |
In the example shown above the additional details property supports logic to pull a prior payment from the order request and update the payment history in the system accordingly.
Defined Name/Value Pairs
Name | Description |
---|---|
BorrowerPrepayment | Amount of a prepayment made by the borrower(s). |
UniqueAssignment | Value returned from a call to FeeQuote that identifies the individual quote response. |
Requesting party
The requestingParty object contains information pertaining to the entity placing the order as defined below.
requestingParty
{ "clientID": "4645", "name": "ABC Lender", "contactName": "John Smith" }
Property | Required | Data Type | Description |
---|---|---|---|
clientID | Yes | String | AppraisalWorks Client ID for the lender account provided to you at setup. |
name | Yes | String | Lender's entity name. |
contactName | No | String | Name of the party that places the order. |
Order Details
This object contains information specific to the transaction and subsequent order request.
request
{ "internalAccountID": "12345", "branchID": "Branch4567", "loanAmount": 150000.00, "salesPrice": 210000.00, "estimatedValue": 200000.00, "loanType": "Refinance", "transactionUID": "0987-OB8C-FE36-9AC9", "requestData": { "action": "Original", "loan": {...} } }
Property | Required | Data Type | Description |
---|---|---|---|
internalAccountID | Yes | String | Unique client identifier for the loan. This may be your loan number or another unique identifier. |
branchID | No | String | Unique identifier for individual lending branches. |
loanAmount | No | Decimal | Amount of the loan. |
salesPrice | No | Decimal | Value of the sale. |
estimatedValue | No | Decimal | The property’s estimated value. |
loanType | Yes | String | Refer to the Loan Types appendix for acceptable values. |
TransactionUID | Yes | String | (Globally) Unique ID value to maintain the interface connection. This could be your LOS unique identifier. |
requestData | Yes | Object | Container object holding data related to this specific request. |
requestData.action | Yes | String | The request type. i.e. “Original” (New Order Request) or “StatusQuery” (Status Request) |
requestData.loan | Yes | Object | Container object holding data related to the loan. |
Loan Details
The Loan object is contained in the RequestData object and specifies data related to the property, loan, involved parties, and the product ordered.
request.requestData.loan
{ "application": { "property": { "streetAddress": "6000 Freedom Square Dr.", "city": "Independence", "state": "OH"", "zip": "44131", "county": "Cuyahoga", "propertyType": "Single Family" } }, "product": { "name": "FNMA 1004 Single Family", "code": "A001" }, "embeddedFile": [{ "typeID": "1010", "name": "SalesContract.pdf", "description": "Sales Contract", "document": "Base64 encoded document" }], "parties": [{ … }] }
Property | Required | Data Type | Description |
---|---|---|---|
property.streetAddress | Yes | String | The subject property street address. |
property.city | Yes | String | The subject property city. |
property.state | Yes | String | The subject property state. |
property.zip | Yes | String | The subject property zip code. |
property.county | Yes | String | The subject property county. |
property.propertyType | Yes | String | Refer to the Property Types appendix for acceptable values. |
product.name | No | String | The name of the product being ordered. |
product.code | Yes | String | Refer to the Product Types appendix for acceptable values. |
embeddedFile | No | Object | Object containing details of the embedded file. |
embeddedFile.typeID | Yes* | Integer | Refer to the Document Types appendix for acceptable values. |
embeddedFile.name | Yes* | String | Name of the embedded file. |
embeddedFile.description | Yes* | String | Description of the embedded file. |
embeddedFile.document | Yes* | String | Base 64 encoded document. |
parties | Yes** | Object | Container object holding data related to the parties involved in this order. |
Order Contacts
The Parties object contains data related to all parties involved in the transaction.
request.requestData.loan.parties
"parties": [ { "partyType": "Borrower", "firstName": "Connie", "middleName": "H", "lastName": "Borrower", "contactMethod": { "contactInfo": [ { "contactLabel": "Home", "ContactType": "Phone", "ContactValue": "(440) 222-3333" }, { "contactLabel": "Home", "ContactType": "Email", "ContactValue": "connie@donotusetest.com" } ] } }, { "partyType": "Appraisal Coordinator", "firstName": "Angie", "middleName": "T", "lastName": "Manage", "contactMethod": { "contactInfo": [ { "contactLabel": "Mobile", "ContactType": "Phone", "ContactValue": "(919) 933-7717" }, { "contactLabel": "Home", "ContactType": "Email", "ContactValue": "angie@donotusetest.com" } ] } }, { "partyType": "Property Contact", "firstName": "Peter", "middleName": "T", "lastName": "Proper", "contactMethod": { "contactInfo": [ { "contactLabel": "Home", "ContactType": "Phone", "ContactValue": "(919) 933-2517" }, { "contactLabel": "Work", "ContactType": "Email", "ContactValue": "peter@donotusetest.com" } ] } }, { "partyType": "Loan Officer", "firstName": "Debbie", "middleName": "", "lastName": "Officer", "contactMethod": { "contactInfo": [ { "contactLabel": "Work", "ContactType": "Phone", "ContactValue": "(984) 219-5641" }, { "contactLabel": "Work", "ContactType": "Email", "ContactValue": "debbie@donotusetest.com" } ] } }, { "partyType": "Loan Processor", "firstName": "Martin", "middleName": "J", "lastName": "Processor", "contactMethod": { "contactInfo": [ { "contactLabel": "Work", "ContactType": "Phone", "ContactValue": "(222) 333-5555" }, { "contactLabel": "Work", "ContactType": "Email", "ContactValue": "martin@donotuse.test.com" } ] } } ]
Property | Required | Data Type | Description |
---|---|---|---|
partyType | Yes* | String | The Party Type being added (refer to the Party Types appendix for acceptable values). |
firstName | No | String | First name of the contact. |
middleName | No | String | Middle name of the contact. |
lastName | Yes | String | Last name of the contact. |
contactMethod | Yes | Object | Object containing the methods of contacting the party. |
contactMethod.contactInfo | Yes | Object | Object containing contact method information. |
contactInfo.contactLabel | Yes | String | Label for this contact method (i.e. Home, Work). |
contactInfo.contactType | Yes | String | Type of contact information being provided (i.e. Phone, email, etc). |
contactInfo.contactValue | Yes | String | Contact information (i.e. email address, phone number, etc.). |
Response to Placing an Order
Upon placing an order, the integration will return the following response describing the state.
{ "orderNumber": "111977-1", "condition": "In Progress", "isSuccess": true, "description": "Not present if the order was successfully placed.", "datetime": "2022-04-20 13:56:09Z", }
Property | Data Type | Description |
---|---|---|
orderNumber* | String | The AppraisalWorks order number associated with this order. |
condition | String | Description of the order request state. |
isSuccess | Bool | Json value indicating success or failure. (true | false) |
description | String | On failure to place the order, provides a description of the error. |
datetime | String | UTC timestamp when the Response was sent back. |
Linked Products
AppraisalWorks supports linked ordering and tracking of multiple products on an order number. When an order is entered for the same internalAccountID and Subject Property Address as a prior order with that same information, the orders will be considered ‘linked’. This enables cascading product strategies and easier order tracking when multiple valuation solutions are needed for one property.
When products have been linked together on an order number, the resulting products will be identified by the item number component of the orderNumber, where the order number is constructed as follows: orderNumber-itemNumber.
Linked Products Example:
AVM Order will be orderNumber: 105998-1
Property Condition Report will be orderNumber: 105998-2
FNMA 1004 Single Family Appraisal will be orderNumber: 105998-3
Actions
Once an order is placed, the client may continue to manage the order without leaving their LOS or operating system, using workflow actions to update the order information, communicate with stakeholders, or manage the workflow of the order.
The following sections describe the POST and PUT Requests supported by the Arrowbase API.
For all the Requests documented in this section, the HTTP status code in the Response is outlined in the HTTP Status Codes section.
Adding Comments to an Order
Endpoint: POST /Orders/{TransactionUID}/Comments
Comments enable communication with all stakeholders throughout the order lifecycle. To add a comment to an order, submit a POST request to the specified URL with the following payload.
{ "comment": "Hello, this is a comment." "actionRequired": true }
Property | Required | Data Type | Description |
---|---|---|---|
comment | Yes | String | The comment to be added to the order. |
actionRequired | No | Boolean | Flags the comment as requiring an action. |
Adding Documentation to an Order
Endpoint: POST /Orders/{TransactionUID}/Documents
Clients can also add documents at any point during the order lifecycle. To add documents to an order submit a POST request to the specified URL with the following payload.
{ "embeddedFile": { "typeID": "2060", "name": "filename.docnewdocument.PDF", "description": "Appraisal Support Document", "document": "Base64 encoded document" } }
Property | Required | Data Type | Description |
---|---|---|---|
embeddedFile | Yes | Object | Object containing details of the embedded file. |
embeddedFile.typeID | Yes | Integer | Refer to the Document Types appendix for acceptable values. |
embeddedFile.name | Yes | String | Name of the embedded file. |
embeddedFile.description | Yes | String | Description of the embedded file. |
embeddedFile.document | Yes | String | Base 64 encoded document. |
This request will return standard HTTP responses, typically 200 (Ok).
Managing Contacts for an Order
Endpoint: PUT /Orders/{TransactionUID}/Contacts
Contact objects are established during the order post entry and managed through the Contacts endpoints following your initial order. To add a contact for an order, submit a POST request to the specified URL with the following payload defined below.
{ "partyType": "Property Contact", "firstName": "Jane", "LastName": "Smith", "emailAddress": "JaneSmith@test.com", "phone": "555-555-5555" }
Property | Required | Data Type | Description |
---|---|---|---|
partyType | Yes | String | Refer to the Party Types appendix for acceptable values. |
firstName | Yes | String | The contact first name. |
lastName | Yes | String | The contact last name. |
emailAddress | Yes | String | The email address of the contact. |
phone | Yes | String | The phone number of the contact. |
This request will return standard HTTP responses, typically 200 (Ok).
On Hold
Endpoint: PUT /Orders/{TransactionUID}/Hold
To place an order on hold, submit a PUT request to the specified URL with the following object defined below.
{ "reason": "Borrower payment not received" }
Property | Required | Data Type | Description |
---|---|---|---|
reason | Yes | String | The reason for placing the order on hold. |
This request will generate a standard HTTP response. For successful requests a 200 (Ok) will be generated and if the request is not successful an HTTP response describing the error will be returned.
Resume
Endpoint: PUT /Orders/{TransactionUID}/Resume
To remove a hold from an order and resume the workflow, submit a PUT request to the specified URL with the following object defined below.
{ "reason": "Borrower payment received." }
Property | Required | Data Type | Description |
---|---|---|---|
reason | Yes | String | The reason the hold is being removed from the order. |
Please note that this request applies only to an order that is on hold. It has no effect on an order that has been cancelled.
Cancelling an Order
Endpoint: PUT /Orders/{TransactionUID}/Cancel
To cancel an order, submit a PUT request to the specified URL with the following object defined below.
{ "reason": "Borrower has decided not to proceed with the loan." }
Property | Required | Data Type | Description |
---|---|---|---|
reason | No | String | The reason for the cancellation request. |
Borrower Delivery
Endpoint: PUT /Orders/{TransactionUID}/DeliverToBorrower
To request report delivery to the borrower, submit a PUT request to the specified URL with the following object defined below.
{ "borrowerEmail": "JohnHomeowner@test.com", "borrowerAddress1": "123 Main St", "borrowerAddress2": "Apt 2", "borrowerCity": "SomewhereVille", "borrowerState": "OH", "borrowerZip": "42131" }
Property | Required | Data Type | Description |
---|---|---|---|
borrowerEmail | Yes | String | Email address of the borrower. |
borrowerAddress1 | Yes | String | Address line 1 of the borrower. |
borrowerAddress2 | Yes | String | Address line 2 of the borrower. |
borrowerCity | Yes | String | City of the borrower. |
borrowerState | Yes | String | State of the borrower. |
borrowerZip | Yes | String | Zip code of the borrower. |
This request will generate a standard HTTP response. For successful requests a 200 (Ok) will be generated and if the request is not successful an HTTP response describing the error will be returned.
Inspection Schedule
Endpoint: PUT /Orders/{TransactionUID}/InspectionSchedule
To request appointment dates for the appraisal inspection, submit a PUT request to the specified URL with the following object defined below.
{ "option1Date": "2022-08-15", "option1TimeSlot": "1", "option2Date": "2022-08-16", "option2TimeSlot": "1", "option3Date": "2022-08-17", "option2TimeSlot": "2", "comments": "I have a big friendly dog" }
Property | Required | Data Type | Description |
---|---|---|---|
option1Date | Yes | Date | Preferred date from property contact. |
option1TimeSlot | Yes | String | Values are 1, 2 or 3. |
option2Date | No | Date | Preferred date from property contact. |
option2TimeSlot | No | String | Values are 1, 2 or 3. |
option3Date | No | Date | Preferred date from property contact. |
option3TimeSlot | No | String | Values are 1, 2 or 3. |
comments | No | String | Additional comment for the appraiser. |
This request will generate a standard HTTP response. For successful requests a 200 (Ok) will be generated and if the request is not successful an HTTP response describing the error will be returned.
Notes
TimeSlots – there are 3 time slots available: 1 = 8 – Noon, 2 = noon – 5, 3 = 5-9. The requested options are delivered to the appraisal provider by AW. AW will reply back with the “Scheduled” notification which contains the specific data and time the provider will arrive.
Notifications & Event codes
After an Order is placed, the client can receive milestone event notifications that are delivered as the Order is being processed.
Using the Postback URL provided by the client at sign-up, each event will trigger a notification request message using the format described below.
Of course, the most important event occurs when the Order is completed. Here is an example:
{ "apiEvent": { "transactionUID": "0987-0bbc-fe36-9AC9-123456" "eventCode": 199, "eventName": "Completed", "path": "/Orders/0987-0bbc-fe36-9AC9-123456/Completed" } }
To demonstrate the use of the 'detailId' the following example gives notice to the Client that a hold on an Order has been cleared so that workflow processing will resume.
{ "apiEvent": { "transactionUID": "0987-0bbc-fe36-9AC9-123456" "eventCode": 30, "eventName": "Resume", "detailId": 1999005, "path": "/Orders/0987-0bbc-fe36-9AC9-123456/Resume/1823005" } }
Property | Data Type | Description |
---|---|---|
apiEvent | Object | Object providing details of an event in a postback request to the client. |
transactionUID | String | The (globally) unique ID used by the client to reference the Order when it was placed. |
eventCode | Integer | An enumeration representing the event. |
eventName | String | Text description of the event code. |
detailId | Integer | Specifies an additional identifier needed to retrieve data for an event. Can be zero for some events. |
path* | String | The relative route path that can be used to call into the RESTful API to retrieve data for this event. |
Upon receipt of an apiRequest the client should return an HTTP Status 200 (OK). No body text is required in the response.
It is at the discretion of the client to call into the Arrowbase API using the ‘path’ provided in the event message to retrieve the data pertinent to that event.
The following sections describe each event and detail the data fields returned upon success in the response to a GET request.
After a successful call to the API, additional property fields will precede the data in the table below, as outlined in the sections to follow.
If an error occurs or the data is unavailable, the following table details the data returned with an HTTP Status 400 (Bad Request).
Property | Data Type | Description |
---|---|---|
isSuccess | Bool | When true the HTTP Status will be 200 (OK). When false the HTTP Status will be 400 (Bad Request). |
description | String | Explanation of the error. (Only present if isSuccess is false.) |
datetime | Date | UTC timestamp when the response was created. |
For a detailed list of events refer to the Event Codes appendix.
New Comments
Endpoint: GET /Orders/{transactionUID}/Comments/{detailId}
If a comment is added to an order, a notification will be sent to the client and they will be able to retrieve the detailed comment information depicted below.
{ "comment": "A new comment was placed on your order.", "actionRequired": false, "commentcategory": "Order Notes", "isSuccess": true, "datetime": "2022-04-04 16:58:31Z" }
Property | Data Type | Description |
---|---|---|
comment | String | The new comment. |
actionRequired | Boolean | Specifies whether the comment requires an action. |
commentcategory | String | The category associated with the comment. |
isSuccess | Boolean | When true the HTTP Status will be 200 (OK). When false the HTTP Status will be 400 (Bad Request). |
datetime | Date | UTC timestamp when the response was created. |
New Documents
Endpoint: GET /Orders/{transactionUID}/Documents/{detailId}
Documents may be automatically returned upon final completion of an order, all at once. Post-delivery, clients may receive additional supplemental documents via the documents endpoint.
{ "embeddedFile": { "typeID": "2061" "name": "O-111924-1-202204041550272228958.txt", "description": "Revised Appraisal Report", "document": " . . . base64 encoded data . . . " }, "isSuccess": true, "datetime": "2022-04-04 16:58:31Z" }
Property | Data Type | Description |
---|---|---|
embeddedFile | Object | Provides details of the document. |
embeddedFile.typeID | Integer | Refer to the Document Types appendix for acceptable values. |
embeddedFile.name | String | The filename of the document. |
embeddedFile.description | String | Description of the file type and additional comments. |
embeddedFile.document | String | Base64 encoded string. |
isSuccess | Bool | When true the HTTP Status will be 200 (OK). When false the HTTP Status will be 400 (Bad Request). |
datetime | Date | UTC timestamp when the response was created. |
On Hold
Endpoint: GET /Orders/{transactionUID}/Hold/{detailId}
Notification that the order has been placed on hold, pending further information or action.
{ "reason": "On Hold per Borrower – there is an unforeseen delay.", "isSuccess": true, "datetime": "2022-04-04 16:58:31Z" }
Property | Data Type | Description |
---|---|---|
reason | String | An explanation to justify placing the order on hold. |
isSuccess | Bool | When true the HTTP Status will be 200 (OK). When false the HTTP Status will be 400 (Bad Request). |
datetime | Date | UTC timestamp when the response was created. |
Resume
Endpoint: GET /Orders/{transactionUID}/Resume/{detailId}
The order delay has been resolved and the order is proceeding.
{ "reason": "The unforeseen issue has been addressed.", "isSuccess": true, "datetime": "2022-04-04 16:58:31Z" }
Property | Data Type | Description |
---|---|---|
reason | String | An explanation to justify removing the hold on the order. |
isSuccess | Bool | When true the HTTP Status will be 200 (OK). When false the HTTP Status will be 400 (Bad Request). |
datetime | Date | UTC timestamp when the response was created. |
Cancel
Endpoint: GET /Orders/{transactionUID}/Cancel/{detailId}
This transaction is generated when the order has been cancelled.
{ "reason": "Order cancelled by user request.", "isSuccess": true, "datetime": "2022-04-04 16:58:31Z" }
Property | Data Type | Description |
---|---|---|
reason | String | An explanation to justify cancelling the order. |
isSuccess | Bool | When true the HTTP Status will be 200 (OK). When false the HTTP Status will be 400 (Bad Request). |
datetime | Date | UTC timestamp when the response was created. |
Provider Assignment
Endpoint: GET /Orders/{transactionUID}/Assignment/{detailId}
This transaction is generated when a provider has been assigned to the order and accepted that assignment.
{ "appraiserName": "Jane Appraiser", "companyName": "Appraisers INC.", "distance": "147.65", "appraiserLicenseNumber": "tst-12345" "isSuccess": true, "datetime": "2022-04-04 16:58:31Z" }
Property | Data Type | Description |
---|---|---|
appraiserName | String | The name of the appraiser. |
companyName | String | The name of the company. |
distance | Integer | The distance to the subject property. |
appraiserLicenseNumber | String | The appraiser's license number. |
isSuccess | Bool | When true the HTTP Status will be 200 (OK). When false the HTTP Status will be 400 (Bad Request). |
datetime | Date | UTC timestamp when the response was created. |
Fee Changes
Endpoint: GET /Orders/{transactionUID}/FeeChanged/{detailId}
This event is generated if the provider requests a fee change for an order.
{ "reason": "This property is complex and will require a higher fee to complete." "revisedVendorFee": "350.00", "isSuccess": true, "datetime": "2022-04-04 16:58:31Z" }
Property | Data Type | Description |
---|---|---|
revisedVendorFee | Decimal | The revised fee amount requested by the provider. |
reason | String | The reason the provider is requesting the fee change. |
isSuccess | Bool | When true the HTTP Status will be 200 (OK). When false the HTTP Status will be 400 (Bad Request). |
datetime | Date | UTC timestamp when the response was created. |
Delivery Date Changes
Endpoint: GET /Orders/{transactionUID}/ExpectedDelivery
Throughout the order process, the assigned provider may update the estimated delivery date of the order. This notification is triggered anytime the estimated delivery date has been revised, notifying the client when the provider anticipates have the report completed.
The ‘detailId’ in the postback request is not used for this GET call into the RESTful API.
{ "expecteddate": "2022-04-21 19:49:00Z", "isSuccess": true, "datetime": "2022-04-04 16:58:31Z" }
Property | Data Type | Description |
---|---|---|
expecteddate | String | The UTC timestamp on which the Final Report is expected to be available. |
isSuccess | Bool | When true the HTTP Status will be 200 (OK). When false the HTTP Status will be 400 (Bad Request). |
datetime | Date | UTC timestamp when the response was created. |
Inspection Appointment
Endpoint: GET /Orders/{transactionUID}/Scheduled
Endpoint: GET /Orders/{transactionUID}/Rescheduled
When the provider has scheduled the inspection appointment for the subject property, the ‘Scheduled’ notification will occur. Any subsequent changes to this inspection date will be accompanied by a ‘Rescheduled’ notification.
The ‘detailId’ in the postback request is not used for this GET call into the RESTful API.
{ "appointmentdate": "2022-04-28 14:15:00Z", "isSuccess": true, "datetime": "2022-04-04 16:58:31Z" }
Property | Data Type | Description |
---|---|---|
appointmentDate | Date | The UTC (re)scheduled appointment date. |
isSuccess | Bool | When true the HTTP Status will be 200 (OK). When false the HTTP Status will be 400 (Bad Request). |
datetime | Date | UTC timestamp when the response was created. |
Status Update
Endpoint: GET /Orders/{transactionUID}/Status
When the status of an order changes, a notification will be sent to the LOS alerting the client that a change has occurred. In the notification provided, the overall status of the order and the current work queue assignment will be provided.
{ "internalStatus": "Complete", "workQueueStatus": "Complete", "isSuccess": true, "datetime": "2023-09-08 16:58:31Z" }
Property | Data Type | Description |
---|---|---|
internalStatus | String | The overall status of the order, as presented to client users and providers. |
workQueueStatus | String | The current work queue assignment status, determining which work queue the order will be routed to for assignment and management. |
isSuccess | Bool | When true the HTTP Status will be 200 (OK). When false the HTTP Status will be 400 (Bad Request). |
datetime | Date | UTC timestamp when the response was created. |
Completed Report
Endpoint: GET /Orders/{transactionUID}/Completed
When the report is delivered and the order has been marked complete, AppraisalWorks will package up the client’s pre-defined delivery documents and submit them through the API with the below defined data payload. Additional data elements not present in the data payload below may also be accessible from the data file of the report that is being delivered.
The ‘detailId’ in the postback request is not used for this GET call into the Arrowbase API.
{ "property": { "assessorsParcelIdentifier": "1234" "lotSize": "", "livingArea": "", "stories": "2", "yearBuilt": "1992", "totalRooms": "8" }, "valuationResults": { "value": "100000.00", "valuationDate": "2021-11-03 11:01 AM EST", "appraiserName": "Jane Appraiser", "appraiserLicenseNumber": "tst-12345" }, "embeddedFile": [ { "typeID": "2010", "name": "FinalAppraisalDoc.xml", "description": "MISMO 2.6 GSE Appraisal Dataset with embedded PDF file", "document": "Base64 encoded document" }, { "typeID": "1000", "name": "Invoice.PDF", "description": "Invoice for service", "document": "Base64 encoded document" } ] }
Property | Data Type | Description |
---|---|---|
property | Object | Object containing property related data. |
property.assessorsParcelIdentifier | String | Parcel identifier of the assessor. |
property.lotSize | String | The size of the lot. |
property.livingArea | String | The living area (in sq. ft.). |
property.stories | Integer | The number of stories in the property. |
property.yearBuilt | Integer | The year the property was built. |
property.totalRooms | Integer | The number of rooms in the property. |
valuationResults | Object | Object containing results of the valuation. |
valuationResults.value | String | The estimate of the value. |
valuationResults.valuationDate | Date | Date the valuation occurred. |
valuationResults.appraiserName | String | Name of the appraiser. |
valuationResults.appraiserLicenseNumber | String | License number of the appraiser. |
embeddedFile | Object | Object containing details of the embedded file. |
embeddedFile.typeID | Integer | Refer to the Document Types appendix for acceptable values. |
embeddedFile.name | String | Name of the embedded file. |
embeddedFile.description | String | Description of the embedded file. |
embeddedFile.document | String | Base 64 encoded document. |
Appointment Set
Appointment objects contain all information on the appointment that was set within the order. You can receive the appointment date and request a reschedule of the appointment date.
When the appointment is scheduled, you will receive the appointment date to your specified endpoint destination from your order request as a confirmation. The object sent in this notification is defined below.
{ "appointmentDate": "11/1/2021 12:00PM EST" }
Property | Data Type | Description |
---|---|---|
orderID | String | The ID associated with this order. |
appointmentDate | Date | The scheduled appointment date. |
Reschedule Appointment Request
Endpoint: PUT /Orders/{TransactionUID}/Reschedule
If you need to request that an appointment be rescheduled submit a PUT request to the specified URL..
{ "orderID": "12345", "appointmentDate": "1/1/2021 12:00PM EST", "comment": "Property contact needs to reschedule." }
Property | Required | Data Type | Description |
---|---|---|---|
orderID | Yes | String | The ID associated with this order. |
appointmentDate | Yes | Date | The date requested. |
comment | Yes | String | Reason for the request. |
Standard HTTP responses are generated by this request and will typically be 200 (Ok) for successful request.
HTTP Responses
The default Response to any Request will comprise of the JSON properties as defined below:
{ "isSuccess": true, "descripton": "Not present if the Request call succeeded.", "datetime": "2022-04-04 16:58:31Z" }
Property | Data Type | Description |
---|---|---|
isSuccess* | Bool | Value indicating success or failure. (true | false) |
description | String | When the Request fails, provides a description of the error. If isSuccess is ‘true’ this property is not present. |
datetime | Date | UTC timestamp when the response was created. |
HTTP Status Codes
200 – OK
The Request succeeded. isSuccess in the Response will always be ‘true’. A POST to place an order or request a Fee Quote and all the GET calls will return additional data properties, as described throughout this document, prefixed to the default JSON Response.
400 – Bad Request
The Request contained mal-formed JSON or invalid or missing data and could not be processed.
401 – Unauthorized
The authentication and encryption process detected invalid header data or failed to match the encrypted signature provided by the client.
500 – Internal Server Error
The server was unable to handle the Request or suffered an unexpected error condition.
501 – Not Implemented
The HTTP Request methed is not supported. Only POST, PUT and GET Request methods are allowed.
Appendix - Document types
Client Documents
The folllowing documents may be added by the client at any time throughout the order process and will aid the provider in completion of the services.
Document Code | Description |
---|---|
1010 | Purchase Contract |
2060 | Appraisal Support Document |
2061 | Engagement Letter |
2062 | Original Appraisal for Review |
2063 | Value Dispute |
Provider Documents
The following documents may be returned by the provider upon completion of the order request and subsequent deliveries.
Document Code | Description |
---|---|
1000 | Invoice for service |
1020 | Submission Summary Report - FNMA |
1025 | Submission Summary Report - FMAC |
2000 | Appraisal PDF |
2010 | MISMO 2.6 GSE Appraisal Dataset with Embedded PDF |
2020 | MISMO 3.4 Appraisal Dataset with Embedded PDF |
2040 | Compliance Report |
2041 | Review Form |
2042 | Review Summary |
2043 | Automated Review |
2050 | Property Inspection Data |
2060 | Appraisal Support Document |
Appendix - Contact types
Contact Roles
The following is a list of valid contact roles supported that may be used to define the partyType in the requests.
- Borrower
- Loan Officer
- Loan Processor
- Property Contact
- Appraisal Coordinator
- Attorney
- Builder
- Buyer
- Lender
- Other
- Owner
- Real Estate Agent – Buyer
- Real Estate Agent – Seller
- Seller
Contact Types
The following is a list of valid supported contact types that may be used to define the contactType in the requests and will determine the type of contact information being provided.
- Phone
Contact Labels
The following is a list of valid supported contact labels that may be used to define the contactLabel in the requests and will determine how the information that is supplied should be used.
- Home
- Work
- Mobile
Appendix - Event Code Dictonary
Each of the notification event codes are detailed below.
Name |
Event Code |
Detail Id Required |
Description |
---|---|---|---|
Comment | 1 | Yes | A comment was added to the order. |
Document | 2 | Yes | A document was added to the order. |
Cancel | 15 | No | The order has been cancelled. |
Hold | 25 | Yes | The order has been placed on hold. |
Resume | 30 | Yes | A hold on an order has been removed. The provider will continue to process this order. |
Assignment | 50 | Yes | A provider has accepted the order. |
FeeChanged | 70 | Yes | The Provider fee has changed. |
ProcessPayment | 75 | Yes | The order has reached the payment request milestone. |
Appointments/Scheduled | 110 | No | An appointment to inspect the property has been scheduled by the provider. |
Appointments/Rescheduled | 135 | No | An appointment to inspect the property has been rescheduled by the provider. |
ExpectedDelivery | 185 | No | The provider has updated the expected delivery date for the order. |
Unavailable | 198 | No | A request for a product could not be completed. The reason will be returned to the Client. |
Completed | 199 | No | Completed Report. order details and embedded files will be returned to the Client. |
Appendix - Product Codes
Product Codes | Description |
---|---|
A001 | FNMA 1004 Single Family |
A002 | FNMA 1025 2-4 Unit |
A004 | FNMA 2006 Desk Review |
A005 | FNMA 2000 Field Review |
A007 | FNMA 1073 Condo |
A009 | FNMA 1050A |
A010 | FNMA 2090 Co-op |
A011 | FNMA 2095 Co-op Exterior |
A012 | Land Appraisal |
A013 | FNMA 1004-D |
A014 | Draw Inspection |
A018 | FNMA 2055 Exterior |
A019 | FHA 1004 Single Family |
A021 | FHA 1073 Condo |
A022 | USDA |
A023 | FNMA 1004C Mfg Housing |
A026 | FNMA 2075 Property Inspection |
A027 | FHA 1025 2-4 Unit |
A030 | FNMA 216 Operating Income |
A035 | FHA 1004C Mfg Housing |
A036 | FNMA 1004 New Construction |
A038 | FNMA 1025 2-4 Unit New Construction |
A039 | FNMA 2055 Exterior New Construction |
A041 | FNMA 216 + FNMA 1007 |
A042 | FNMA 1007 Comparable Rent |
A043 | FNMA 2000 Single Family |
A044 | FNMA 2000 Field Review 2-4 Unit |
A055 | FNMA 1025 + FNMA 216 |
A060 | FNMA 1004C + FNMA 1007 |
A061 | FNMA 1004 + FNMA 1007 |
A062 | FNMA 1073 + FNMA 1007 |
A063 | FNMA 1073 + FNMA 216 |
A065 | FNMA 1004D Update/Value Recertification |
A066 | FNMA 1004D Completion |
A070 | FHA 1004 203K |
A073 | FNMA 1075 Ext Condo |
A075 | FNMA 1004 + FNMA 216 |
A076 | FNMA 1004 + FNMA 216 + FNMA 1007 |
A081 | FNMA 1025 + FNMA 1007 |
A082 | FNMA 1073 + FNMA 216 + FNMA 1007 |
A083 | FNMA 2055 + FNMA 1007 |
A085 | ValueNet 55 (Comp Photos) |
A088 | FNMA 2055 + FNMA 1007 + FNMA 216 |
A089 | FNMA 2055 + FNMA 216 |
A092 | FNMA 1075 + FNMA 216 |
A093 | FNMA 1075 + FNMA 1007 |
A094 | FNMA 1004C + FNMA 216 + FNMA 1007 |
A095 | FNMA 1004C + FNMA 216 |
A096 | FNMA 1075 + FNMA 1007 + FNMA 216 |
A104 | ValueNet 55 |
A105 | ValueNet Basic |
A106 | ValueNet Plus |
A107 | ValueNet EX |
A112 | Broker Price Opinion Ext |
A113 | Broker Price Opinion Int |
A114 | Broker Price Opinion Land |
A115 | Property Condition Report |
A119 | Interior Property Condition Report |
A120 | Commercial FIRREA/USPAP Compliance Review |
A124 | FHA Compliance Inspection |
A125 | eSign Valuation |
A143 | CA AVM |
A157 | iValueNet Plus |
A158 | iValueNet EX |
A159 | iValueNet 55 |
A15R | eValWorks (PCR + Review) |
A160 | iValueNet 55 (Comp Photos) |
A161 | iValueNet 55 AIV+ARV |
A169 | CA Risk Profiler |
A170 | ValueNet Plus (Comp Photos) |
A176 | FieldSmart LTE – Exterior |
A17A | FieldSmart Full – Exterior |
A183 | ValueNet 55 (Comp Photos + Cost Approach) |
A194 | CDAIR Interior Inspection Report |
A196 | AIV/ARV FNMA 1004 |
A197 | AIV/ARV FNMA 1025 |
A198 | AIV/ARV FNMA 1073 |
A199 | AIV/ARV FNMA 2055 Exterior |
A209 | FNMA Property Data Collection (PDC) |
A211 | iValueNet Plus (Comp Photos) |
A220 | FieldSmart Full – Interior |
A221 | FieldSmart LTE – Interior |
A222 | FieldSmart SI – Interior |
A223 | FieldSmart SI – Exterior |
A224 | CA Value MC AVM |
A230 | AIV/ARV FNMA 1004 + FNMA 1007 |
A231 | AIV/ARV FNMA 1025 + FNMA 216 |
A232 | AIV/ARV FNMA 1073 + FNMA 1007 |
A233 | AIV/ARV FNMA 2055 + FNMA 1007 |
A234 | CA Commercial Value |
A237 | FMAC Property Data Report (PDR) |
A238 | Home Value Explorer |
A254 | 1004/70H Bifurcated Appraisal FNMA |
A255 | FNMA 1004/70 Desktop |
A256 | 1004/70H Bifurcated Appraisal FMAC |
A258 | 1004 Hybrid / 70H |
A260 | ValueNet 55 AIV+ARV |
A261 | ValueNet 55 AIV+ARV (Comp Photos) |
A262 | iValueNet 55 AIV+ARV |
A263 | iValueNet 55 AIV+ARV (Comp Photos) |
A264 | ValueNet 55 with Rent Addendum |
A265 | iValueNet 55 with Rent Addendum |
A266 | iValueNet 55 with Rent Addendum (Comp Photos) |
A267 | ValueNet 55 with Rent Addendum (Comp Photos) |
A268 | iValueNet 55 AIV/ARV with Rent Addendum |
A269 | Broker Price Opinion Ext w/ARV |
A270 | Broker Price Opinion Int w/ARV |
A271 | ValueNet 55 Basic |
A277 | Evaluation Exterior |
A281 | Broker Price Opinion Int + 24 hour rush |
A282 | Broker Price Opinion Int + 48 hour rush |
A283 | Broker Price Opinion Ext + 24 hour rush |
A284 | Broker Price Opinion Ext + 48 hour rush |
A285 | Evaluation Interior |
A286 | Evaluation Interior + 24 hour rush |
A287 | Evaluation Interior + 48 hour rush |
A288 | Evaluation (No Inspection) |
A289 | Evaluation Exterior + 24 hour rush |
A290 | Evaluation Exterior + 48 hour rush |
A291 | Broker Price Opinion Int w/ARV + 24 hour rush |
A292 | Broker Price Opinion Int w/ARV + 48 hour rush |
A293 | Broker Price Opinion Ext w/ARV + 24 hour rush |
A294 | Broker Price Opinion Ext w/ARV + 48 hour rush |
A297 | Evaluation Exterior with Rent Addendum |
A298 | Evaluation Interior with Rent Addendum |
A301 | Restricted Appraisal Report (No Inspection) |
A302 | Restricted Appraisal Report Exterior |
A303 | Restricted Appraisal Report Interior |
A306 | Completion Report |
A308 | CDAIR Disaster Inspection Report |
A501 | Interior Hybrid Appraisal with Rent Addendum |
A502 | Interior Hybrid Appraisal ARV with Virtual Inspection |
A503 | Interior Hybrid Appraisal ARV - Traditional Inspection w/ Sketch |
A504 | Interior Hybrid Appraisal ARV - Traditional Inspection |
A505 | Interior Hybrid Appraisal AIV - Virtual Inspection |
A506 | Interior Hybrid Appraisal AIV - Traditional Inspection w/ Sketch |
A507 | Interior Hybrid Appraisal AIV - Traditional Inspection |
A508 | Interior Hybrid Appraisal AIV/ARV - Virtual Inspection |
A509 | Interior Hybrid Appraisal AIV/ARV - Traditional Inspection w/ Sketch |
A510 | Interior Hybrid Appraisal AIV/ARV - Traditional Inspection |
A511 | Exterior Hybrid Appraisal ARV |
A512 | Exterior Hybrid Appraisal AIV |
A513 | Exterior Hybrid Appraisal AIV/ARV |
A514 | Evaluation ARV Non-Appraiser (No Inspection) |
A515 | Evaluation AIV Non-Appraiser (No Inspection) |
A516 | Evaluation AIV/ARV Non-Appraiser (No Inspection) |
A517 | Disaster Exterior Property Condition Report |
A518 | Disaster Interior Property Condition Report |
A519 | Desktop Appraisal AIV No Inspection |
A520 | Desktop Appraisal ARV No Inspection |
A521 | Desktop Appraisal AIV/ARV No Inspection |
A522 | Interior Virtual Property Condition Report |
A523 | Interior Property Condition Report with Sketch |
A524 | FNMA 1025 (2 Unit) |
A525 | FNMA 1025 (3-4 Unit) |
A526 | Borrower Property Inspection |
A527 | Exterior Property Photos |
AAVM | GEO AVM |
AC01 | AVM – GEO AVM |
ACA1 | Exterior Consolidated Appraisal with Property Inspection |
ACA2 | Interior Consolidated Appraisal with Property Inspection |
AE11 | eVal |
AEVM | eVal-AVM |
AS01 | Commercial Appraisal Report |
AS02 | Commercial Evaluation (Form Report) |
AS03 | Commercial Desk Technical Review |
AS04 | Commercial Narrative Restricted Appraisal Report |
AS05 | Commercial Form Restricted Appraisal Report |
AS06 | Commercial Concise Summary Appraisal Report |
AS07 | Commercial Field Technical Review |
AS08 | Commercial Review Form |
AS09 | Commercial Construction Draw Inspection |
AS10 | Commercial General Market Data Report |
AS12 | Commercial Evaluation Exterior |
AS13 | Commercial Evaluation (No Inspection) |
AS14 | Commercial Vacant Land |
AS15 | Farm/Ag Evaluation (No Inspection) |
AS16 | Farm/Ag Evaluation Exterior |
AS17 | Farm/Ag Evaluation Interior |
AS18 | Commercial Restricted Appraisal Report (No Inspection) |
AS19 | Commercial Restricted Appraisal Report Exterior |
AS20 | Commercial Restricted Appraisal Report Interior |
AS21 | Farm/Ag Restricted Appraisal Report (No Inspection) |
AS22 | Farm/Ag Restricted Appraisal Report Exterior |
AS23 | Farm/Ag Restricted Appraisal Report Interior |
AS24 | Commercial Appraisal Report AIV/ARV |
AS25 | Commercial Appraisal Report Condo Sellout |
AS26 | Commercial Appraisal Report New Construction |
AVMM | AVM – Collateral Analytics |
AX1 | Appraisal Review |
AX2 | APR QC Review |
AX3 | DVR Desk Review - Owner Occupied |
AX4 | DVR Desk Review - Non-Owner Occupied |
AX5 | DVR Desk Review - MF Clerical Review |
AX6 | AVM - ARV Analysis |
AX7 | AVM - Rental Analysis |
AX8 | AVM - As Is Only Analysis |
AX9 | QC Review 1 |
AX10 | QC Review 2 |
AX11 | Reconciliation Review |
AX12 | Diligence Recon |
AX13 | High Dollar - Complexity Review |
AX14 | USPAP Review |
AX15 | DVR Desk Review – Fix n Flip |
AX16 | DVR Desk Review – Investment Property |
CDA | CDA |
CML | CDA with MLS |
CTRK | Compliance Track AVM Cascade |
E001 | Environmental Site Report - Phase 1 |
E002 | Environmental Site Report - Phase 2 |
E003 | Environmental Site Report - Phase 3 |
E004 | Environmental Database Report |
E005 | Environmental Property Screen Report |
E006 | Environmental Property Scan Report |
LNOC | OptiVal AVM Cascade |
R001 | Review - FNMA 1004 Single Family |
R002 | Review - FNMA 1025 2-4 Unit |
R007 | Review - FNMA 1073 Condo |
R013 | Review – FNMA 1004-D |
R018 | Review - FNMA 2055 Exterior |
R023 | Review - FNMA 1004C Mfg Housing |
R030 | Review - FNMA 216 Operating Income |
R042 | Review – FNMA 1007 Comparable Rent |
R065 | Review - FNMA 1004D Update |
R066 | Review - FNMA 1004D Completion |
R073 | Review - FNMA 1075 Ext Condo |
R104 | Review - ValueNet 55 |
R115 | Review - Property Condition Report |
R119 | Review - Interior Property Condition Report |
R258 | Review - 1004 Hybrid / 70H |
RCA1 | Review - Ext Consolidated Appraisal with Property Inspection |
RCA2 | Review - Int Consolidated Appraisal with Property Inspection |
Appendix - Loan Types
- Acquisition
- Construction
- Default
- Home Equity
- Land Contract
- Purchase
- Refinance
- Renewal
- REO
- Reverse
- Workout
- Unknown
Appendix - Property Types
- Commercial
- Condo
- Duplex
- Farm Property
- Manufactured Home
- Multi-Family
- Other
- PUD
- Single Family
- Town Home
- Vacant Land
Appendix - Note Types
- Accounting
- Appraisal
- Appraisal Correction Requested
- Appraisal QC Request
- Appraisal Report Due
- Appraisal- Appointment Date/time
- Borrower Report Delivery
- Follow Up
- On Hold