AMC Endpoints

Here you'll find documentation on all available endpoints. If you have suggestions on new endpoints you would like to see, please tell us. We would love to hear from you.

Required Parameters

All endpoints require that you provide the following parameters via HTTPS POST:

Parameter Type Possible Values Description Required
apiID varchar assigned API ID yes
apiKey varchar assigned API Key yes
username email registered user making request yes
format varchar json, xml response data format yes

POST /orders

The /orders endpoint will provide a list of appraisal orders assigned to AMC. This endpoint also requires the filter parameter which determines what list to return as follows:

Parameter Type Possible Values Description Required
filter varchar all, new determines list type yes

Filter Parameter Details

'all'

When using this value all orders assigned to AMC will be returned, including canceled and completed orders.

'new'

When using this value only new orders assigned to AMC will be returned. New orders have the status property set to 'Ordered'.

Example Request

$parameters = array(
     'format' => "json",
     'apiID' => YOUR_API_ID,
     'apiKey' => YOUR_API_KEY,
     'username' => YOUR_USER_EMAIL,
     'filter' => "new"
);

$curl = curl_init();
curl_setopt( $curl, CURLOPT_URL, "https://www.besmartee.com/api/amc/orders" );
curl_setopt( $curl, CURLOPT_POST, count( $parameters ) );
curl_setopt( $curl, CURLOPT_POSTFIELDS, $parameters );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, false );
$response = curl_exec( $curl );
curl_close( $curl );

print_r( $response );

Response Format

Response may contain one or more appraisal orders. If no orders are found, null will be returned.

{
     "appraisalID":"K1UJYQA4",
     "loanPurpose":"Refinance",
     "occupancy":Second,
     ...
},
{
     "appraisalID":"X1QQFQA3",
     "loanPurpose":"Purchase",
     "occupancy":Primary,
     ...
},
...

The /orders endpoint will return the following properties:

Property Type Possible Values Description
appraisalID varchar unique identifier
lenderLoanID varchar TBD, or {value} lender's loan number
FHACaseNumber varchar TBD, or {value} lender's FHA Case Number
loanPurpose varchar Refinance, Purchase purpose of the loan
occupancy varchar Primary, Second, Investment how property will be occupied
propertyType varchar Single Family, Condominium, Cooperative, Mobile, Manufactured, Vacant Residential Land, Duplex, Triplex, Quadruplex, Small Income, Other, Unknown type of property
loanType varchar Conventional, FHA, VA type of loan
mainForm varchar 216, 1004, 1004C, 1004D, 1004MC, 1007, 1025, 1073, 1075, 2000, 2000A, 2006, 2055, 2075, 2090, 2095, LND Fannie Mae appraisal form
addForm1 varchar same as mainForm Fannie Mae appraisal form
addForm2 varchar same as mainForm Fannie Mae appraisal form
salesPrice decimal purchase price of home
fee int appraisal fee to AMC
ccName varchar credit card cardholder name
ccNum int credit card number
ccExpMonth int 1-12 credit card expiration month
ccExpDay int 1-31, or null credit card expiration day
ccExpYear int 2015 and greater credit card expiration year
ccSecCode int 000-9999 credit card security code
agreeCC boolean 0 or 1 if cardholder agreed to legal
ccAddressStreet varchar credit card billing street address
ccAddressCity varchar credit card billing city
ccAddressState varchar(2) AA-ZZ credit card billing state
ccAddressZipcode int(5) 00000-99999 credit card billing zipcode
subjectAddressStreet varchar subject property street address
subjectAddressCity varchar subject property city
subjectAddressState varchar(2) AA-ZZ subject property state
subjectAddressZipcode int(5) 00000-99999 subject property zipcode
boName varchar full name of borrower
boEmail varchar email of borrower
boPhone1 varchar xxx-xxx-xxxx phone 1 of borrower
boPhone2 varchar xxx-xxx-xxxx phone 2 of borrower
coBoName varchar full name of co-borrower
coBoEmail varchar email of co-borrower
coBoPhone1 varchar xxx-xxx-xxxx phone 1 of co-borrower
coBoPhone2 varchar xxx-xxx-xxxx phone 2 of co-borrower
listingAgentName varchar full name of listing agent
listingAgentEmail varchar email of listing agent
listingAgentPhone1 varchar xxx-xxx-xxxx phone 1 of listing agent
listingAgentPhone2 varchar xxx-xxx-xxxx phone 2 of listing agent
sellingAgentName varchar full name of selling agent
sellingAgentEmail varchar email of selling agent
sellingAgentPhone1 varchar xxx-xxx-xxxx phone 1 of selling agent
sellingAgentPhone2 varchar xxx-xxx-xxxx phone 2 of selling agent
specialInstructions varchar(255) any special instructions for order

POST /order

The /order endpoint will provide an appraisal order assigned to AMC. This endpoint also requires the appraisalID parameter which determines what appraisal to return as follows:

Parameter Type Possible Values Description Required
appraisalID varchar unique identifier yes

Example Request

$parameters = array(
     'format' => "json",
     'apiID' => YOUR_API_ID,
     'apiKey' => YOUR_API_KEY,
     'username' => YOUR_USER_EMAIL,
     'appraisalID' => BSM_APPRAISAL_ID
);

$curl = curl_init();
curl_setopt( $curl, CURLOPT_URL, "https://www.besmartee.com/api/amc/order" );
curl_setopt( $curl, CURLOPT_POST, count( $parameters ) );
curl_setopt( $curl, CURLOPT_POSTFIELDS, $parameters );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, false );
$response = curl_exec( $curl );
curl_close( $curl );

print_r( $response );

Response Format

Response will contain one appraisal order. If no orders are found, null will be returned. Properties returned are identical to /orders endpoint above.

POST /order/status

The /order/status endpoint will provide the status of an appraisal order assigned to AMC. This endpoint also requires the appraisalID and filter parameters as follows:

Parameter Type Possible Values Description Required
appraisalID varchar unique identifier yes
filter varchar all, last determines status to return yes

Filter Parameter Details

'all'

When using this value a complete status history for the requested appraisal order assigned to AMC is returned. There may be one or more statuses returned. There will always be at least one status returned if appraisalID is valid.

'last'

When using this value only the last status for the requested appraisal order assigned to AMC is returned.

Example Request

$parameters = array(
     'format' => "json",
     'apiID' => YOUR_API_ID,
     'apiKey' => YOUR_API_KEY,
     'username' => YOUR_USER_EMAIL,
     'appraisalID' => BSM_APPRAISAL_ID,
     'filter' => "all"
);

$curl = curl_init();
curl_setopt( $curl, CURLOPT_URL, "https://www.besmartee.com/api/amc/order/status" );
curl_setopt( $curl, CURLOPT_POST, count( $parameters ) );
curl_setopt( $curl, CURLOPT_POSTFIELDS, $parameters );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, false );
$response = curl_exec( $curl );
curl_close( $curl );

print_r( $response );

Response Format

Response may contain one or more statuses. If no order is found, null will be returned.

{
     "status":"Complete",
     "date":"1420962569",
     "user":"Kendrick Avani",
     "note":null
},
{
     "status":"Inspected",
     "date":"1420809729",
     "user":"Kendrick Avani",
     "note":null
},
{
     "status":"Appointment Set",
     "date":"1420606336",
     "user":"Kendrick Avani",
     "note":"Scheduled for 1/8/2015 at 10:45:00 am"
},
...

The /order/status endpoint will return the following properties:

Property Type Possible Values Description
status varchar Ordered, Accepted, Declined, Payment Approved, Payment Declined, Appointment, Inspected, Complete, Cancel defined statuses according to hierarchy
date unix timestamp date/time of status change
user varchar full name associated to username
note varchar(255) optional note to some statuses

POST /order/update

The /order/update endpoint enables the AMC to update the status of an appraisal order assigned to AMC. This endpoint also requires the appraisalID and action parameters, and other optional/required parameters as follows:

Parameter Type Possible Values Description Required
appraisalID varchar unique identifier yes
action varchar accept, decline, payment-approved, payment-declined, appointment, inspected, complete and cancel specifies status to update yes
note varchar(255) optional note to some statuses no
appointment unix timestamp required when action parameter is 'appointment' depends
appraisal pdf file required when action parameter is 'complete' depends

Action Parameter Details

'accept'

When using this value, no other parameters are required. This value can only be called when status property is 'Ordered'.

Do not accept order if there is a chance of order being declined later. Review order details first, and contact lender for additional questions if clarification is required before making a decision.

'decline'

When using this value, no other parameters are required. This value can only be called when status property is 'Ordered'.

A note may be included in this update.

'payment-approved'

When using this value, no other parameters are required. This value can only be called when status property is 'Accepted'.

Credit card data will be removed and no longer available once a successful payment has been confirmed.

'payment-declined'

When using this value, no other parameters are required. This value can only be called when status property is 'Accepted'.

A note may be included in this update.

'appointment'

When using this value, the parameter appointment is required. This value can only be called when status property is 'Payment Approved'.

The parameter appointment must be a unix timestamp.

'inspected'

When using this value, no other parameters are required. This value can only be called when status property is 'Appointment Set'.

Only confirm inspection if no other site visits are required.

'complete'

When using this value, the parameter appraisal is required. This value can only be called when status property is 'Inspected'.

The parameter appraisal must be a PDF file no greater than 10 MB (or your lender's custom setting). Be sure to specify the file type as 'application/pdf'.

'cancel'

When using this value, no other parameters are required. This value can be called at all statuses except for 'Ordered' and 'Complete'.

A note may be included in this update.

Example Requests

Example of how to 'accept' an order:

$parameters = array(
     'format' => "json",
     'apiID' => YOUR_API_ID,
     'apiKey' => YOUR_API_KEY,
     'username' => YOUR_USER_EMAIL,
     'appraisalID' => BSM_APPRAISAL_ID,
     'action' => "accept"
);

$curl = curl_init();
curl_setopt( $curl, CURLOPT_URL, "https://www.besmartee.com/api/amc/order/update" );
curl_setopt( $curl, CURLOPT_POST, count( $parameters ) );
curl_setopt( $curl, CURLOPT_POSTFIELDS, $parameters );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, false );
$response = curl_exec( $curl );
curl_close( $curl );

print_r( $response );

Example of how to set 'appointment' on an order:

$parameters = array(
     'format' => "json",
     'apiID' => YOUR_API_ID,
     'apiKey' => YOUR_API_KEY,
     'username' => YOUR_USER_EMAIL,
     'appraisalID' => BSM_APPRAISAL_ID,
     'action' => "appointment",
     'appointment' => "1421110192"
);

$curl = curl_init();
curl_setopt( $curl, CURLOPT_URL, "https://www.besmartee.com/api/amc/order/update" );
curl_setopt( $curl, CURLOPT_POST, count( $parameters ) );
curl_setopt( $curl, CURLOPT_POSTFIELDS, $parameters );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, false );
$response = curl_exec( $curl );
curl_close( $curl );

print_r( $response );

Example of how to 'complete' an order and POST PDF:

$fileName = realpath( ".../appraisals/FILE_NAME.pdf" );
$curlFile = "@C:\...\appraisals\FILE_NAME.pdf;type=application/pdf";

$parameters = array(
     'format' => "json",
     'apiID' => YOUR_API_ID,
     'apiKey' => YOUR_API_KEY,
     'username' => YOUR_USER_EMAIL,
     'appraisalID' => BSM_APPRAISAL_ID,
     'action' => "complete",
     'appraisal' => $curlFile
);

$curl = curl_init();
curl_setopt( $curl, CURLOPT_URL, "https://www.besmartee.com/api/amc/order/update" );
curl_setopt( $curl, CURLOPT_POST, count( $parameters ) );
curl_setopt( $curl, CURLOPT_POSTFIELDS, $parameters );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, false );
$response = curl_exec( $curl );
curl_close( $curl );

print_r( $response );

Response Format

Response will return null if successful, and return the root key error if not. See Error Codes and Handling.