Orders
Get All Orders
Section titled “Get All Orders”This endpoint retrieves all orders (limit 10 at a time). Can be filtered with query parameters.
HTTP Request
Section titled “HTTP Request”GET https://sandbox.reggora.io/lender/orders
| Parameter | Default | Description |
|---|---|---|
| offset | 0 | Number of orders to skip before list gets returned (Used in pagination). |
| ordering | -created | The field to order orders by. |
| search | None | Currently not supported argument. |
| loan_officer | None | ID of loan officer to filter orders by. |
| due_in | None | A number of days until the order due_date. |
| filter | ” | A comma separated list that can include keys words that will filter orders specific to the keywords used. Filter words are described in the table below. |
Filter Descriptions
Section titled “Filter Descriptions”| Keyword | Description |
|---|---|
| rush | Gets all orders where priority is equal to “Rush”. |
| behind_schedule | Gets all orders where the due date has passed today, and the vendor has not submitted a report. Excludes canceled orders. |
| due_soon | Gets all orders where the due date is in less than 2 days. |
Example Request
Section titled “Example Request”import requests
headers = { 'Authorization': 'Bearer {}'.format(REGGORA_AUTH_TOKEN), 'integration': '{}'.format(REGGORA_INTEGRATION_KEY)}
# Just an examplequery_params = { 'offset': 0, 'ordering': '-created', 'loan_officer': '5b5b19d3c643b3000f8f2857', 'filters': 'rush, behind_schedule'}
response = requests.get('https://sandbox.reggora.io/lender/orders', params=query_params, headers=headers)Example Response
Section titled “Example Response”{ "data": { "orders": [ { "id": "5c1c05f532b211000e15302a", "status": "Submitted", "priority": "Normal", "due_date": "2018-12-28 12:00:00", "inspection_date": "2018-12-28 05:00:00", "accepted_vendor": { "id": "5b859eebc5a0c9004e38dd8e", "firm_name": "__Alex's Test AMC Firm", "accepting_jobs": true, "company": "5b859eebc5a0c9004e38dd8d" }, "conversation": "5c4f16764672bb00105ea5f9", "contract_evault": "5c2e718cb61f76001adf9871", "cu_score": "2.5", "lca_score": "2.5", "ucdp_document_id": "18006805GD", "ead_document_id": "A000003293", "team_conversation": "5c4f16764672bb00105ea5f9", "created": "2018-12-20 21:13:25.102000", "allocation_mode": "manually", "branch_identifier": "5db851297a6980000aa01206", "requested_vendors": [ { "id": "5b859eebc5a0c9004e38dd8e", "firm_name": "__Alex's Test AMC Firm", "accepting_jobs": true, "company": "5b859eebc5a0c9004e38dd8d" } ], "inspection_complete": true, "products": [ { "id": "5b55d4c68d9472000fc432ef", "product_name": "5000", "amount": "7000.00" } ], "evault": "5c4f16764672bb00105ea5f9", "reggora_warranty": { "status": "warranty_declined", "warranty_investors": { "fannie_mae": { "investor_status": "investor_declined" }, "freddie_mac": { "investor_status": "investor_declined" } } }, "loan_file": { "id": "5b55d4c68d9472000fc432ab", "loan_number": "10000030", "subject_property_address": "100002 Sun Street", "subject_property_city": "Brighton", "subject_property_state": "MA", "subject_property_zip": "02135" }, "consumers": [{ "id": "5c33c716681f110034effc73", "full_name": "John Smith", "role": "borrower", "email": "john@reggora.com", "home_phone": "999-999-9999", "work_phone": "999-999-9999", "cell_phone": "999-999-9999", "is_primary_contact": true }], "is_follow_up": true, "primary_order": "60f06d1ad12db1051533adb0", "follow_up_orders": [ "60f06d1cd12db1051533adb1", "60f06d1cd12db1051533adb2" ], "has_been_reassigned": false, "active_order": "60f06d1cd12db1051533adb3" }, "..." ], "count": 274 }, "status": 200}The "..." placeholder indicates additional entries elided for brevity.
Get Order
Section titled “Get Order”This endpoint retrieves a specific order by id.
HTTP Request
Section titled “HTTP Request”GET https://sandbox.reggora.io/lender/order/<order_id>
URL Parameters
Section titled “URL Parameters”| Parameter | Description |
|---|---|
| order_id | The ID of the order. |
Example Request
Section titled “Example Request”import requests
headers = { 'Authorization': 'Bearer {}'.format(REGGORA_AUTH_TOKEN), 'integration': '{}'.format(REGGORA_INTEGRATION_KEY)}
response = requests.get('https://sandbox.reggora.io/lender/order/<order_id>', headers=headers)Example Response
Section titled “Example Response”{ "data": { "order": { "id": "5c2e718cb61f76001adf9871", "status": "Inspection Scheduled", "priority": "Rush", "due_date": "2018-12-19 12:00:00", "inspection_date": "2018-12-24 21:00:00", "accepted_vendor": { "id": "5b859eecc5a0c9004e38dd8f", "firm_name": "__Alex's Test AMC Firm", "accepting_jobs": true, "company": "5b859eebc5a0c9004e38dd8d" }, "created": "2019-01-03 20:33:16.748000", "allocation_mode": "automatically", "branch_identifier": "5db851297a6980000aa01206", "requested_vendors": [], "inspection_complete": false, "conversation": "5c4f16764672bb00105ea5f9", "team_conversation": "5c4f16764672bb00105ea5f9", "evault": "5c4f16764672bb00105ea5f9", "contract_evault": "5c2e718cb61f76001adf9871", "cu_score": "2.5", "lca_score": "2.5", "ucdp_document_id": "18006805GD", "ead_document_id": "A000003293", "products": [ { "id": "5b55d4c68d9472000fc432ef", "product_name": "Product #1", "amount": "10.0" } ], "reggora_warranty": { "status": "warranty_declined", "warranty_investors": { "fannie_mae": { "investor_status": "investor_declined" }, "freddie_mac": { "investor_status": "investor_declined" } } }, "loan_file": { "id": "5b55d4c68d9472000fc432ae", "loan_number": "ABC", "subject_property_address": "100 Brighton Ave", "subject_property_city": "Boston", "subject_property_state": "MA", "subject_property_zip": "02135" }, "consumers": [{ "id": "5c33c716681f110034effc73", "full_name": "John Smith", "role": "borrower", "email": "john@reggora.com", "home_phone": "999-999-9999", "work_phone": "999-999-9999", "cell_phone": "999-999-9999", "is_primary_contact": true }], "is_follow_up": true, "primary_order": "60f06d1ad12db1051533adb0", "follow_up_orders": [ "60f06d1cd12db1051533adb1", "60f06d1cd12db1051533adb2" ], "has_been_reassigned": false, "active_order": "60f06d1cd12db1051533adb3", "total_fee": 10.0 } }, "status": 200}Cancel Order
Section titled “Cancel Order”This endpoint cancels a specific order.
HTTP Request
Section titled “HTTP Request”DELETE https://sandbox.reggora.io/lender/order/<order_id>/cancel
URL Parameters
Section titled “URL Parameters”| Parameter | Description |
|---|---|
| order_id | The ID of the order. |
Example Request
Section titled “Example Request”import requests
headers = { 'Authorization': 'Bearer {}'.format(REGGORA_AUTH_TOKEN), 'integration': '{}'.format(REGGORA_INTEGRATION_KEY)}
response = requests.delete('https://sandbox.reggora.io/lender/order/<order_id>/cancel', headers=headers)Example Response
Section titled “Example Response”{ "data": "Order has been canceled.", "status": 200}Create an Order
Section titled “Create an Order”This endpoint creates an order and returns the ID of the created Order.
HTTP Request
Section titled “HTTP Request”POST https://sandbox.reggora.io/lender/order
Request Parameters
Section titled “Request Parameters”| Parameter | Description | Required |
|---|---|---|
| allocation_type | Either ‘automatically’ or ‘manually’ | True |
| vendors | A list of IDs in the order of which vendor you would like to have first access to the order | True if ‘manually’ else False |
| loan | The id of a loan file, not already associated with another order. | True |
| priority | ’Normal’ or ‘Rush’ | True |
| order_request_method | ’individually’ or ‘broadcast’. This controls how the order is sent to appraisers, individually will expose the order to one appraiser at a time in the order that they are listed, broadcast will expose the order to all the requested appraisers at the time of ordering | false |
| products | List of product ids. | True |
| due_date | Due date of the order in TZ format. (UTC) | True |
| additional_fees | List of additional fees an order has {‘description’, ‘amount’} | False |
Example Request
Section titled “Example Request”import requests
headers = { 'Authorization': 'Bearer {}'.format(REGGORA_AUTH_TOKEN), 'integration': '{}'.format(REGGORA_INTEGRATION_KEY)}
# If allocation_type is manuallybody = { 'allocation_type': 'manually', 'vendors': [ '5b55d4c68d9472000fc432ef', '5b55d4c68d9472000fc432eg', '5b55d4c68d9472000fc432eh' ], 'loan': '5c33c716681f110034effc73', 'priority': 'Rush', 'products': ['5b55d4c68d9472000fc432ef'], 'due_date': '2018-12-24T21:00:00Z', 'additional_fees': [ { 'description': 'Large yard', 'amount': '50' }, { 'description': 'Outside regular locations', 'amount': '20' } ]
}# If allocation_type is automaticallybody = { 'allocation_type': 'automatically', 'loan': '5c33c716681f110034effc73', 'priority': 'Rush', 'products': ['5b55d4c68d9472000fc432ef'], 'due_date': '2018-12-24T21:00:00Z', 'additional_fees': [ { 'description': 'Large yard', 'amount': '50' }, { 'description': 'Outside regular locations', 'amount': '20' } ]
}
# If order_request_method is broadcastbody = { 'allocation_type': 'automatically', 'order_request_method': 'broadcast', 'loan': '5c33c716681f110034effc73', 'priority': 'Rush', 'products': ['5b55d4c68d9472000fc432ef'], 'due_date': '2018-12-24T21:00:00Z', 'additional_fees': [ { 'description': 'Large yard', 'amount': '50' }, { 'description': 'Outside regular locations', 'amount': '20' } ]
}
response = requests.post('https://sandbox.reggora.io/lender/order', json=body, headers=headers)Example Response
Section titled “Example Response”{ "data": "5c2e718cb61f76001adf9871", "status": 200}Create a Follow-up Order
Section titled “Create a Follow-up Order”This endpoint (same as the one used to create a primary order) creates a follow-up order because of the required parameter is_follow_up and returns the ID of the newly created follow-up order when successful.
HTTP Request
Section titled “HTTP Request”POST https://sandbox.reggora.io/lender/order
Request Parameters
Section titled “Request Parameters”All required parameters above (for creating an order) are also required for follow-up orders.
| Parameter | Description | Required |
|---|---|---|
| allocation_type | Either ‘automatically’ or ‘manually’ | True |
| vendors | A list of IDs in the order of which vendor you would like to have first access to the order | True if ‘manually’ else False |
| loan | The id of a loan file, not already associated with another order. | True |
| priority | ’Normal’ or ‘Rush’ | True |
| order_request_method | ’individually’ or ‘broadcast’. This controls how the order is sent to appraisers, individually will expose the order to one appraiser at a time in the order that they are listed, broadcast will expose the order to all the requested appraisers at the time of ordering | false |
| products | List of product ids. | True |
| due_date | Due date of the order in TZ format. (UTC) | True |
| additional_fees | List of additional fees an order has {‘description’, ‘amount’} | False |
| is_follow_up | This indicates that order being created is a follow up order | True |
Example Request
Section titled “Example Request”import requests
headers = { 'Authorization': 'Bearer {}'.format(REGGORA_AUTH_TOKEN), 'integration': '{}'.format(REGGORA_INTEGRATION_KEY)}
# If allocation_type is manuallybody = { 'allocation_type': 'manually', 'vendors': [ '5b55d4c68d9472000fc432ef', '5b55d4c68d9472000fc432eg', '5b55d4c68d9472000fc432eh' ], 'loan': '5c33c716681f110034effc73', 'priority': 'Rush', 'products': ['5b55d4c68d9472000fc432ef'], 'due_date': '2018-12-24T21:00:00Z', 'additional_fees': [ { 'description': 'Large yard', 'amount': '50' }, { 'description': 'Outside regular locations', 'amount': '20' } ], 'is_follow_up': 'true'}
response = requests.post('https://sandbox.reggora.io/lender/order', json=body, headers=headers)Example Response
Section titled “Example Response”{ "data": "5c2e718cb61f76001adf9872", "status": 200}Edit an Order
Section titled “Edit an Order”This endpoint edits a order and returns the ID of the edited order.
HTTP Request
Section titled “HTTP Request”PUT https://sandbox.reggora.io/lender/order/<order_id>
URL Parameters
Section titled “URL Parameters”| Parameter | Description |
|---|---|
| order_id | Id of order |
| Parameter | Description | Required |
|---|---|---|
| allocation_type | Either ‘automatically’ or ‘manually’ | False |
| priority | ’Normal’ or ‘Rush’ | False |
| products | List product ids. | False |
| due_date | Due date of the order in TZ format. (UTC) | False |
| additional_fees | List of additional fees an order has {‘description’, ‘amount’} | False |
| refresh | If an order has lender_attention_required field set to True, make an edit request with refresh set to True to run the order through assignment again. | False |
Example Request
Section titled “Example Request”import requests
headers = { 'Authorization': 'Bearer {}'.format(REGGORA_AUTH_TOKEN), 'integration': '{}'.format(REGGORA_INTEGRATION_KEY)}
body = { 'allocation_type': 'automatically', 'priority': 'Rush', 'products': ["5b55d4c68d9472000fc432ef"], 'due_date': '2018-12-24T21:00:00Z', 'additional_fees': [ { 'description': 'Large yard', 'amount': '50' }, { 'description': 'Outside regular locations', 'amount': '20' } ], 'refresh': False,}
response = requests.put('https://sandbox.reggora.io/lender/order/<order_id>', json=body, headers=headers)Example Response
Section titled “Example Response”{ "data": "5c2e718cb61f76001adf9871", "status": 200}Reassign Order
Section titled “Reassign Order”This endpoint is used to edit the assignment list of Vendors on a particular Order.
If the Order has already been accepted, then the Reassignment flow will cancel the original Order and create a new Order object. If the Order is in an earlier status, then the update will be performed on that same Order, overwriting any previously assigned Vendors.
HTTP Request
Section titled “HTTP Request”PUT https://sandbox.reggora.io/lender/order/<order_id>/vendors
URL Parameters
Section titled “URL Parameters”| Parameter | Description |
|---|---|
| order_id | ID of Order |
Request Parameters
Section titled “Request Parameters”| Parameter | Description | Required |
|---|---|---|
| allocation_type | string either ‘automatically’ or ‘manually’ | True |
| vendors | list of string IDs of Vendors to assign to this Order | True if ‘manually’ else False |
| order_request_method | string either ‘individually’ or ‘broadcast’. This controls how the order is sent to appraisers, individually will expose the order to one appraiser at a time in the order that they are listed, broadcast will expose the order to all the requested appraisers at the time of ordering | False |
Example Request
Section titled “Example Request”import requests
headers = { 'Authorization': 'Bearer {}'.format(REGGORA_AUTH_TOKEN), 'integration': '{}'.format(REGGORA_INTEGRATION_KEY)}
body = { "vendors": ["60904156927ee302eb3a416b"], "allocation_type": "manually"}
response = requests.put('https://sandbox.reggora.io/lender/order/<order_id>/vendors', json=body, headers=headers)Example Response
Section titled “Example Response”If the Order has not yet been accepted by a Vendor, then we will cancel any pending assignment requests and update the requested vendors. A successful request returns:
{ "data": { "id": "644192f6e1f96b1d2378d41f", "has_been_reassigned": false, "active_order": "644192f6e1f96b1d2378d41f" }, "status": 200}If the Order was already Accepted by a Vendor, then Reggora will create a new Order. The original Order will be cancelled and the new Order will be allocated to vendors based on the arguments supplied. A successful request returns:
{ "data": { "id": "6436cacc2e7fdcfdbafb3038", "has_been_reassigned": true, "active_order": "64d3dac6c4f84673793f601f" }, "status": 200}Place Order On Hold
Section titled “Place Order On Hold”This endpoint will place an active order on hold, which will disable editing and other functionality while on hold.
HTTP Request
Section titled “HTTP Request”PUT https://sandbox.reggora.io/lender/order/<order_id>/hold
URL Parameters
Section titled “URL Parameters”| Parameter | Description |
|---|---|
| order_id | Id of order |
Request Body Parameters
Section titled “Request Body Parameters”| Parameter | Description | Required |
|---|---|---|
| reason | Reason for setting order on hold | True |
Example Request
Section titled “Example Request”import requests
headers = { 'Authorization': 'Bearer {}'.format(REGGORA_AUTH_TOKEN), 'integration': '{}'.format(REGGORA_INTEGRATION_KEY)}
body = { 'reason': 'I\'d like to wait to start this order.'}
response = requests.put('https://sandbox.reggora.io/lender/order/<order_id>/hold', json=body, headers=headers)Example Response
Section titled “Example Response”{ "data": "Order has been updated", "status": 200}Remove Order Hold
Section titled “Remove Order Hold”This endpoint will remove an active hold on an order.
HTTP Request
Section titled “HTTP Request”PUT https://sandbox.reggora.io/lender/order/<order_id>/unhold
URL Parameters
Section titled “URL Parameters”| Parameter | Description |
|---|---|
| order_id | Id of order |
Example Request
Section titled “Example Request”import requests
headers = { 'Authorization': 'Bearer {}'.format(REGGORA_AUTH_TOKEN), 'integration': '{}'.format(REGGORA_INTEGRATION_KEY)}
response = requests.put('https://sandbox.reggora.io/lender/order/<order_id>/unhold', headers=headers)Example Response
Section titled “Example Response”{ "data": "Order has been updated", "status": 200}Accept/Deny a Fee Escalation
Section titled “Accept/Deny a Fee Escalation”This endpoint will accept or deny a fee escalation.
HTTP Request
Section titled “HTTP Request”POST https://sandbox.reggora.io/lender/process-escalation
Request Body Parameters
Section titled “Request Body Parameters”| Parameter | Description | Type | Required |
|---|---|---|---|
| order_id | The ID of the order | string | True |
| escalation_id | The ID of the escalation | string | True |
| accepted | Status of the escalation | bool | True |
Example Request
Section titled “Example Request”headers = { 'Authorization': 'Bearer {}'.format(REGGORA_AUTH_TOKEN), 'integration': '{}'.format(REGGORA_INTEGRATION_KEY)}
body = { 'order_id': '5c2e718cb61f76001adf9871', 'escalation_id': '5b55d4c68d9472000fc432ef', 'accept': True}
response = requests.post('https://sandbox.reggora.io/lender/process-escalation', json=body, headers=headers)Example Response
Section titled “Example Response”{ "success": "Escalation accepted", "status": 200}Override Order Waiting for Payment
Section titled “Override Order Waiting for Payment”This endpoint overrides an order waiting for payment.
HTTP Request
Section titled “HTTP Request”PUT https://sandbox.reggora.io/lender/order-submission/approve/
URL Parameters
Section titled “URL Parameters”| Parameter | Description |
|---|---|
| order_id | Id of order |
Example Request
Section titled “Example Request”import requests
headers = { 'Authorization': 'Bearer {}'.format(REGGORA_AUTH_TOKEN), 'integration': '{}'.format(REGGORA_INTEGRATION_KEY)}
response = requests.put('https://sandbox.reggora.io/lender/order/<order_id>/override', headers=headers)Example Response
Section titled “Example Response”{ "success": "Your order has been updated", "status": 200}Get Appraisal Delivery Links
Section titled “Get Appraisal Delivery Links”This endpoint fetches all appraisal delivery links sent to consumers.
HTTP Request
Section titled “HTTP Request”GET https://sandbox.reggora.io/lender/order/<order_id>/appraisal-links
URL Parameters
Section titled “URL Parameters”| Parameter | Description |
|---|---|
| order_id | Id of order |
Example Request
Section titled “Example Request”import requests
headers = { 'Authorization': 'Bearer {}'.format(REGGORA_AUTH_TOKEN), 'integration': '{}'.format(REGGORA_INTEGRATION_KEY)}
response = requests.get('https://sandbox.reggora.io/lender/order/<order_id>/appraisal-links', headers=headers)Example Response
Section titled “Example Response”{ "data": { "order_id": "8f76c5c7c84d6c2daad9dd24", "links": [ { "email": "test@test.com", "link": "https://www.download.reggora.appraisal1.com" }, { "email": "test2@test.com", "link": "https://www.download.reggora.appraisal2.com" } ] }, "status": 200}Get Payment Summary
Section titled “Get Payment Summary”Use this endpoint to download the Payment Summary PDF for an Order.
HTTP Request
Section titled “HTTP Request”GET https://sandbox.reggora.io/lender/order/<order_id>/payment-summary
URL Parameters
Section titled “URL Parameters”| Parameter | Description |
|---|---|
| order_id | ID of the order |
Example Request
Section titled “Example Request”import requests
headers = { 'Authorization': 'Bearer {}'.format(REGGORA_AUTH_TOKEN), 'integration': '{}'.format(REGGORA_INTEGRATION_KEY)}
response = requests.get('https://sandbox.reggora.io/lender/order/<order_id>/payment-summary', headers=headers)The above command returns a file object.