Arrowbase API Documentation

Introduction Getting Started Authentication

Pre-Order

Quote Order

New Order

Create an Order Transaction Details Additional Details Requesting Party Order Details Loan Details Order Contacts Linked Products Order Response

Order 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 Report

HTTP Responses & Status Codes

HTTP Responses HTTP Status Codes

Appendices

Document Types Event Codes Contact Types Product Codes Loan Types Property Types

Client 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.
For example, to create an order, generate the SHA256 hash (using your private key) of:

"POST,application/json,,/Orders,2022-04-12 16:32:25Z"

To retrieve a comment that has been added to an order generate the SHA256 hash (using your private key) of:

"GET,application/json,,/Orders/8189-F16E-03D8-4C3F/Comments/3702215,2022-04-12 16:32:25Z"

The timestamp used in the example is in the well-defined 'yyyy-MM-dd HH:mm:ss' format, where the trailing ‘Z’ represents UTC Time.

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.

After this signature is generated, add the UTF8 encoded byte value to the Authorization header of the Request as a base64 encoded string in the following format:

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": { … }
}

For clarity, only the top-level properties of the Transaction object are shown here.
These properties specify the overall values of the Order and are defined as follows.

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.

*This field is required for FHA Appraisals.

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.

*Embedded files are optional but if one is specified all related data elements (prefixed with embeddedFile above) are required.
**AppraisalWorks requires that at least one Borrower be provided in every order request. The three required internal parties are Loan Officer, Loan Processor, and Appraisal Coordinator, and must be included in any new order request. Additional parties may be required depending on the transaction loan type.

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.).

*AppraisalWorks requires that at least one Borrower be provided in every order request. Additional parties may be required depending on the transaction loan type.
* The Appraisal Coordinator party is required but may be defaulted to a pre-defined contact on all new order requests. Contact your implementation consultant to discuss this setting.

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.

*An order may have multiple individual items associated with it, representing numerous products attached to that loan. Refer to Linked Products for details on linking individual items to one order number.

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.

*If the ‘detailId’ property is 0 then it is not included when building the route path in a call into the RESTful API.

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.

Product Unavailable

Endpoint: GET /Orders/{transactionUID}/Unavailable

When an automated product is ordered and the provider’s system determines that the product cannot be fulfilled, they will return an ‘unavailable’ notification and close out the order. This API notification is then passed to the client so they are aware that the order has been closed without a successful report.

{        
   "reason": "The property is too complex.",
   "isSuccess": true,
   "datetime": "2022-04-04 16:58:31Z"
}
Property Data Type Description
reason String An explanation of why the requested product could not be completed.
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.

*This property will only be ‘true’ if the Request succeeds and the Status Code is 200. For all other Status Codes, it will be ’false’.

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.

  • Email
  • 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