Loans
Get All Loans
Section titled “Get All Loans”This endpoint retrieves all loans, and can take a number of query parameters.
HTTP Request
Section titled “HTTP Request”GET https://sandbox.reggora.io/lender/loans
Query Parameters
Section titled “Query Parameters”| Parameter | Default | Description |
|---|---|---|
| offset | 0 | Number of loans to skip before list gets returned (Used in pagination). |
| limit | 0 | Limit of loans to return (If set to 0 there is no limit). |
| ordering | -created | The field to order loans by. |
| loan_officer | None | ID of loan officer to filter loans by. |
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, 'limit': 10, 'ordering': '-created',}
response = requests.get('https://sandbox.reggora.io/lender/loans', params=query_params, headers=headers)Example Response
Section titled “Example Response”{ "data": { "loans": [ { "id": "5c33c6b1681f110034effc72", "loan_number": "1002918281901", "loan_officer": { "id": "5b5b19d3c643b3000f8f2857", "email": "hello@world.com", "phone_number": "555-444-1234", "firstname": "John", "lastname": "Doe" }, "appraisal_type": "Refinance", "due_date": "2018-12-19 12:00:00", "created": "2019-01-07 21:37:53.938000", "updated": "2019-01-07 21:37:53.938000", "related_order": "5c33c716681f111134effc73", "subject_property_address": "100 Mass Ave", "subject_property_city": "Boston", "subject_property_state": "MA", "subject_property_zip": "02192", "case_number": "10029MA", "loan_type": "FHA", "matched_products": ["5b5b19d3c643b3000f8f2859"], "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 }] }, "..." ] }, "status": 200}The "..." placeholder indicates additional entries elided for brevity.
Get Loan
Section titled “Get Loan”This endpoint retrieves a specific loan by id.
HTTP Request
Section titled “HTTP Request”GET https://sandbox.reggora.io/lender/loan/<loan_id>
URL Parameters
Section titled “URL Parameters”| Parameter | Description |
|---|---|
| loan_id | The ID of the loan. |
Query Parameters
Section titled “Query Parameters”| Parameter | Default | Description |
|---|---|---|
| additional | false | Inclusion of additional property data. |
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/loan/<loan_id>', headers=headers)Example Response
Section titled “Example Response”{ "data": { "loan": { "id": "5c33c716681f110034effc73", "loan_number": "1", "loan_officer": { "id": "5b5b19d3c643b3000f8f2857", "email": "hello@world.com", "phone_number": "555-444-1234", "firstname": "John", "lastname": "Doe" }, "appraisal_type": "Refinance", "due_date": "2018-12-19 12:00:00", "created": "2019-01-07 21:39:34.018000", "updated": "2019-01-07 21:39:34.018000", "related_order": "5c33c716681f111134effc73", "subject_property_address": "100 Mass Ave", "subject_property_city": "Boston", "subject_property_state": "MA", "subject_property_zip": "02192", "case_number": "10029MA", "loan_type": "FHA", "matched_products": ["5b5b19d3c643b3000f8f2859"], "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 }] } }, "status": 200}Delete Loan
Section titled “Delete Loan”This endpoint deletes a specific loan.
HTTP Request
Section titled “HTTP Request”DELETE https://sandbox.reggora.io/lender/loan/<loan_id>
URL Parameters
Section titled “URL Parameters”| Parameter | Description |
|---|---|
| loan_id | The ID of the loan. |
Example Request
Section titled “Example Request”import requests
response = requests.delete('https://sandbox.reggora.io/lender/loan/<loan_id>', headers=headers)Example Response
Section titled “Example Response”{ "data": "Loan deleted.", "status": 200}Create a Loan (Basic)
Section titled “Create a Loan (Basic)”This endpoint creates a loan and returns the ID of the created loan. This does not support custom fields or a custom schema.
HTTP Request
Section titled “HTTP Request”POST https://sandbox.reggora.io/lender/loan
Request Body Parameters
Section titled “Request Body Parameters”| Parameter | Description | Required |
|---|---|---|
| loan_number | The unique loan identifier | True |
| due_date | UTC formatted due date of the loan file (Using TZ formatting). | True |
| appraisal_type | Appraisal Type (Refinance, Purchase, etc…) | True |
| loan_officer | Id of the loan officer associated with this loan | False |
| subject_property_address | Street address of loan | True |
| subject_property_city | City of the loan | True |
| subject_property_state | State of loan | True |
| subject_property_zip | 5 digit zip code of the loan | True |
| loan_type | Type of loan (FHA…) | False |
| case_number | Case number | False |
Example Request
Section titled “Example Request”import requests
headers = { 'Authorization': 'Bearer {}'.format(REGGORA_AUTH_TOKEN), 'integration': '{}'.format(REGGORA_INTEGRATION_KEY)}
body = { "loan_number": "2", "loan_officer": "5b5b19d3c643b3000f8f2857", "appraisal_type": "Refinance", "due_date": "2018-12-19T12:00:00Z", "subject_property_address": "100 Mass Ave", "subject_property_city": "Boston", "subject_property_state": "MA", "subject_property_zip": "02192", "case_number": "10029MA", "loan_type": "FHA"}
response = requests.post('https://sandbox.reggora.io/lender/loan', json=body, headers=headers)Example Response
Section titled “Example Response”{ "data": "5c33c716681f110034effc73", "status": 200}Edit a Loan (Basic)
Section titled “Edit a Loan (Basic)”This endpoint edits a loan and returns the ID of the edited loan. Only the provided fields will be updated. This does not support custom fields or a custom schema.
HTTP Request
Section titled “HTTP Request”PUT https://sandbox.reggora.io/lender/loan/<loan_id>
URL Parameters
Section titled “URL Parameters”| Parameter | Description | Required |
|---|---|---|
| loan_id | Id of the loan | True |
Request Body Parameters
Section titled “Request Body Parameters”| Parameter | Description | Required |
|---|---|---|
| loan_number | The unique loan identifier | False |
| due_date | UTC formatted due date of the loan file (Using TZ formatting). | False |
| appraisal_type | Appraisal Type (Refinance, Purchase, etc…) | False |
| loan_officer | Id of the loan officer associated with this loan | False |
| subject_property_address | Street address of loan | False |
| subject_property_city | City of the loan | False |
| subject_property_state | State of loan | False |
| subject_property_zip | 5 digit zip code of the loan | False |
| loan_type | Type of loan (FHA…) | False |
| case_number | Case number | False |
Example Request
Section titled “Example Request”import requests
headers = { 'Authorization': 'Bearer {}'.format(REGGORA_AUTH_TOKEN), 'integration': '{}'.format(REGGORA_INTEGRATION_KEY)}
body = { "due_date": "2018-12-20T12:00:00Z", "case_number": "129MA",}
response = requests.put('https://sandbox.reggora.io/lender/loan/<loan_id>', json=body, headers=headers)Example Response
Section titled “Example Response”{ "data": "5c33c716681f110034effc73", "status": 200}Create a Loan (Extended)
Section titled “Create a Loan (Extended)”This endpoint creates a loan using parameters that match the lender’s loan schema and returns the ID of the created loan. This endpoint allows you to use a custom schema as well as custom fields that you set up in the Settings tab within the lender platform.
HTTP Request
Section titled “HTTP Request”POST https://sandbox.reggora.io/lender/extended_loan
Request Body Parameters
Section titled “Request Body Parameters”| Parameter | Description | Required |
|---|---|---|
| loan | JSON object with keys that match the lender’s loan schema. | True |
Example Request
Section titled “Example Request”import requests
headers = { 'Authorization': 'Bearer {}'.format(REGGORA_AUTH_TOKEN), 'integration': '{}'.format(REGGORA_INTEGRATION_KEY)}
# below is an example# the keys in the loan params JSON should match the lender's loan schemabody = { "loan": { "Loan Number":"12345", "Borrower Name":"Michael Jordan", "Subject Property City":"Boston", "Subject Property State":"MA", "Subject Property Address":"1 Main St.", "Appraisal Due Date":"2/20/2020", "Sellers Agent":"John Agent", "Sellers Agent Phone":"5551112222", "Sellers Agent E-mail":"sellersagent@gmail.com", "ULDD Attachment Type":"Detached", "Occupancy (P/S/I)":"Primary", "Loan Type":"Conventional", "Commit Due":"2/25/20" }}
response = requests.post('https://sandbox.reggora.io/lender/extended_loan', json=body, headers=headers)Example Response
Section titled “Example Response”{ "data": "5c33c716681f110034effc73", "status": 200}Edit a Loan (Extended)
Section titled “Edit a Loan (Extended)”This endpoint edits a loan using parameters that match the lender’s loan schema and returns the ID of the edited loan. Only the provided fields will be updated.
HTTP Request
Section titled “HTTP Request”PUT https://sandbox.reggora.io/lender/extended_loan/<loan_id>
URL Parameters
Section titled “URL Parameters”| Parameter | Description | Required |
|---|---|---|
| loan_id | Id of the loan | True |
Request Body Parameters
Section titled “Request Body Parameters”| Parameter | Description | Required |
|---|---|---|
| loan | JSON object with keys that match the lender’s loan schema. | True |
Example Request
Section titled “Example Request”import requests
headers = { 'Authorization': 'Bearer {}'.format(REGGORA_AUTH_TOKEN), 'integration': '{}'.format(REGGORA_INTEGRATION_KEY)}
# below is an example# the keys in the loan params JSON should match the lender's loan schemabody = { "loan": { "Subject Property City":"Cambridge", "Subject Property Address":"2 Main St." }}
response = requests.put('https://sandbox.reggora.io/lender/extended_loan/<loan_id>', json=body, headers=headers)Example Response
Section titled “Example Response”{ "data": "5c33c716681f110034effc73", "status": 200}Get Loan Schema (Extended)
Section titled “Get Loan Schema (Extended)”This endpoint retrieves a lender’s loan schema which can be used to create and edit extended loans. Extended loans support a custom schema defined in the Lender platform’s settings tab as well as custom fields and metadata.
HTTP Request
Section titled “HTTP Request”GET https://sandbox.reggora.io/lender/extended_loan
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/extended_loan', headers=headers)Example Response
Section titled “Example Response”Actual field names will vary based on lender’s loan schema.
{ "data": [ "Subject Property City", "Subject Property State", "Subject Property ZIP", "Subject Property Address", "Rush", "Sellers Agent", "Sellers Agent Phone", "Commit Due", "Seller Agnt Cell Phone", "Borr Cell", "Borr Home Phone", "Borr Business Phone", "Borr Email", "Collect at Close", "Borrower Name", "Co-Borrower Name", "Co-Borr Email", "Loan Type", "Loan Number", "Branch Name", "Occupancy (P/S/I)", "Subject Property #Units", "ULDD Attachment Type", "Purchase Value", "Expected Value" ], "status": 200}Create Review Result
Section titled “Create Review Result”This endpoint creates an external review result for a loan. That result may then be used to store documents related to the review. Can have side effects on the order if reggora_order_id is included.
HTTP Request
Section titled “HTTP Request”POST https://sandbox.reggora.io/lender/loan/<loan_id>/review
URL Parameters
Section titled “URL Parameters”| Parameter | Description |
|---|---|
| loan_id | The Reggora ID of the loan that corresponds to this review. |
Request Body Parameters
Section titled “Request Body Parameters”| Parameter | Description | Required |
|---|---|---|
| reggora_order_id | str ID of the Order in Reggora. The Order should correspond to the Loan. Include if the review result is specific to one Order. If included, the Order’s most recent submission will be approved and the status will move from “Under Review” to “Submitted” | False |
| reggora_loan_id | str ID of the Loan in Reggora. Should match loan_id URL param if included, but the URL param will take precedence. | False |
| cu_score | If the review result includes results from Fannie Mae, include the CU Score. | False |
| lca_score | If the review result includes results from Freddie Mac, include the LCA score. | False |
| case_id | str ID used externally to identify this review case or the loan | False |
| order_id | str ID used externally to identify the order for this review result | False |
| ucdp_document_id | str ID used by UCDP for this loan | False |
| ead_document_id | str ID used by EAD for this loan | False |
| review_data | dict containing additional data from the review | False |
Example Request
Section titled “Example Request”import requestsimport json
headers = { 'Authorization': 'Bearer {}'.format(REGGORA_AUTH_TOKEN), 'integration': '{}'.format(REGGORA_INTEGRATION_KEY)}
# Example review datapayload = json.dumps({ "review_data": { "sample": 1 }, "cu_score": "1.2", "lca_score": "2", "case_id": "xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx", "order_id": "xxxxxxxx-xxxx-Mxxx-Nxxx-yyyyyyyyyyyy", "reggora_order_id": "62ab53800000000000000000", "reggora_loan_id": "62aaaac00000000000000000", "ucdp_document_id": "10000A0000", "ead_document_id": "A000010000",})
response = requests.post('https://sandbox.reggora.io/lender/loan/<loan_id>/review', headers=headers, data=payload)Example Response
Section titled “Example Response”The response is a JSON object representing the new external review result. You will need to store the id for future requests to fetch the full object or upload documents.
{ "data": { "id": "6193c4ad9681550007a795c7", "source": "clear_collateral", "created": "2021-11-16 14:48:13.578000", "order_id": "62ab53800000000000000000" }, "status": 201}Get Review Result
Section titled “Get Review Result”This endpoint returns all external review data for the loan. Note that most of the optional params from the Create Review Result endpoint will be stored and returned as part of the review_data object.
HTTP Request
Section titled “HTTP Request”GET https://sandbox.reggora.io/lender/loan/<loan_id>/review
| Parameter | Description |
|---|---|
| loan_id | str ID of the Loan. Its external review results will be returned in the response. |
Example Request
Section titled “Example Request”import requestsimport json
headers = { 'Authorization': 'Bearer {}'.format(REGGORA_AUTH_TOKEN), 'integration': '{}'.format(REGGORA_INTEGRATION_KEY)}
response = requests.get('https://sandbox.reggora.io/lender/loan/<loan_id>/review', headers=headers, data=payload)Example Response
Section titled “Example Response”The response is a list of the Loan’s external_review_results including links to download the uploaded documents.
{ "data": [ { "id": "6193c4ad9681550007a795c7", "source": "external", "created": "2021-11-16 14:48:13.578000", "review_data": { "sample": 1, "cu_score": "1.2", "lca_score": "2", "case_id": "xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx", "order_id": "xxxxxxxx-xxxx-Mxxx-Nxxx-yyyyyyyyyyyy", "reggora_order_id": "62ab53800000000000000000", "reggora_loan_id": "62aaaac00000000000000000", "ucdp_document_id": "10000A0000", "ead_document_id": "A000010000" }, "order_id": "62ab53800000000000000000", "result": "https://sandbox.reggora.io/lender/review-evault/6193c4ad9681550007a795c7/result", "fha_ssr": "https://sandbox.reggora.io/lender/review-evault/6193c4ad9681550007a795c7/fha_ssr", "fannie_ssr": "https://sandbox.reggora.io/lender/review-evault/6193c4ad9681550007a795c7/fannie_ssr", "freddie_ssr": "https://sandbox.reggora.io/lender/review-evault/6193c4ad9681550007a795c7/freddie_ssr" } ], "status": 201}Upload External Review Document
Section titled “Upload External Review Document”This endpoint uploads a document to the review object on a loan. Be careful that your request body is form-data with a single key “file” corresponding to the File you are uploading. We flexibly support any “document_type” though certain values may impact how the file will be handled.
HTTP Request
Section titled “HTTP Request”POST https://sandbox.reggora.io/lender/review-evault/<review_id>/<document_type>
URL Parameters
Section titled “URL Parameters”| Parameter | Description |
|---|---|
| review_id | ID for the review object. Was returned in the response to the initial request to Create Review Result, and can also be obtained from the Get Review Result endpoint. |
| document_type | str name of the document being uploaded. All document types will be stored. There will be additional processing if the type is one of: “result”, “fannie_ssr”, “freddie_ssr”, or “ead_ssr”, so please use those values if they apply. |
Request Body Parameters
Section titled “Request Body Parameters”The request body must be form-data.
| Parameter | Description | Required |
|---|---|---|
| file | The file that you are uploading. | True |
Example Request
Section titled “Example Request”import requestsimport json
headers = { 'Authorization': 'Bearer {}'.format(REGGORA_AUTH_TOKEN), 'integration': '{}'.format(REGGORA_INTEGRATION_KEY)}
# Example Uploading SSR from Fannie Maedocument_type = "fannie_ssr"review_id = "6193c4ad9681550007a795c7"files=[ ('file',('<file_name>',open('<file_path>','rb'),'application/pdf'))]
response = requests.post(f'https://sandbox.reggora.io/lender/review-evault/{review_id}/{document_type}', headers=headers, data=payload, files=files)Example Response
Section titled “Example Response”The response is a JSON object representing the new review file.
{ "data": { "document_id": "d74218e6-5788-11ec-9185-0242ac120002", "document_name": "fannie_ssr.pdf", "upload_datetime": "2021-12-07 18:09:38.024523" }, "status": 201}Get External Review Document
Section titled “Get External Review Document”This endpoint fetches an uploaded document from the review object on a loan.
HTTP Request
Section titled “HTTP Request”GET https://sandbox.reggora.io/lender/review-evault/<review_id>/<document_type>
| Parameter | Description |
|---|---|
| review_id | ID for the review object. Was returned in the response to the initial request to Create Review Result, and can also be obtained from the Get Review Result endpoint. |
| document_type | Type of the document being fetched. |
Example Request
Section titled “Example Request”import requestsimport json
headers = { 'Authorization': 'Bearer {}'.format(REGGORA_AUTH_TOKEN), 'integration': '{}'.format(REGGORA_INTEGRATION_KEY)}
response = requests.get('https://sandbox.reggora.io/lender/review-evault/<review_id>/<document_type>', headers=headers)The above command returns a base64-encoded data stream of the extended Loan document’s requested review file.