Introduction
Welcome to the Lumi API. You can use this API to submit, retrieve and update leads as a broker/partner.
Lumi API requests must be sent using the Transport Layer Security (TLS) 1.2 protocol. Usage of this protocol varies according to the technology that you use to send API requests. Please refer to the official documentation for your technology stack.
Authentication
To use the API you'll need an access token, which can be retrieved by authenticating with your partner credentials. You will need to use your broker credentials in the request header via BASIC Authentication.
See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization
Lead Expiry
In order to ensure that we accept leads fairly from all of our partners, we have the concept of lead expiry. When a lead is submitted by a partner, that lead exists is owned by the partner for 14 days. In the event we are able to get in contact with that customer and they progress passed the "Processing" stage, that expiry is extended to 30 days
Once a lead is expired, it can be submitted by another partner
Once the lead is Funded, it is owned by the partner that submitted it. Any subsequent refinances of that lead are also owned by that partner and do not expire
If a lead is funded then the partner will own the lead until the loan is repaid in full. After the loan closes the partner will own the lead for a further 90 days before this expires.
An expired lead can be treated as closed. Once the lead has expired, we will not post any status updates or webhooks to it.
Errors
Example Response 400
[
{
"status": false,
"error": "the error message"
}
]
Example Response 403
[
{
"status": false,
"error": "Unauthorized"
}
]
The Lumi API returns the following error codes:
Error Code | Meaning |
---|---|
400 | Bad Request -- Your request is invalid. |
403 | Unauthorized -- You do not have permission to perform the request. |
Retrieving Leads
Use this endpoint to retrieve all your leads. You can provide extra parameters in the request to filter the response.
Example request to the API using Fetch.
const leads = await fetch('https://www.lumi.com.au/v1/leads', {
method = 'GET',
headers: {
'Authorization': 'BASIC basicauthkey'
}
});
Filter/Search leads by utilising the listed parameters. The following snippet will return leads which are under the Waiting For Calls status.
const leads = await fetch('https://www.lumi.com.au/v1/leads?status=WAITING_FOR_CALL', {
method = 'GET',
headers: {
'Authorization': 'lumiauthkey'
}
});
The above commands return JSON structured like this:
{
"success": true,
"result": {
"leads": [
{
"id": "5b3c41aa9e8dec24a3117b3c",
"status": "WAITING_FOR_CALL",
"lost_reason": "",
"credit_decline_reasons": [],
"stakeholder": {
"first_name": "John",
"last_name": "Smith",
"email": "john.smith@smithfamily.com",
"phone": "0401-234-567",
"birth_date": "1994-02-14",
"address": {
"street_number": "2",
"street": "Sprint Street",
"city": "Bondi Junction",
"postal_code": "2022",
"state": "NSW",
"country": "Australia",
},
"drivers_license_number": "123231123123",
"drivers_license_state": "NSW",
"drivers_license_card_number": "CN987654321",
"has_property": "no",
"property_info": "applicant doesn't have any property"
},
"company": {
"name": "FLYING SOLO PROPERTIES",
"abn": "116213748",
"industry": "E",
"address": {
"street_number": "2",
"street": "Sprint Street",
"city": "Bondi Junction",
"postal_code": "2022",
"state": "NSW",
"country": "Australia",
},
"average_monthly_turnover": 1234678,
"website": "www.examplewebsite.com.au",
"number_of_employees": 27,
"ato_debt": "yes",
"ato_debt_details": "details description",
"credit_score": 500,
"has_other_loans": "no",
"other_loan_details": "other loan details"
},
"loan": {
"reason_for_loan": ["cash_flow"],
"use_of_funds": "Purchasing new equipment",
"requested_amount": 8000,
"application_type": "REGULAR", // Can be REGULAR for a normal application, REFINANCE_INTERNAL for an internal refinance or REFINANCE_EXTERNAL if Lumi is paying out another facility
"installments": 52,
"amount": 10000,
"preferred_loan_type": "term-loan"
},
"broker_notes": "some notes",
"created_at": "2018-07-04T13:40:26+10:00",
"updated_at": "2018-07-04T13:41:56+10:00",
"loan_id": "5b3c41a59e8dec24a3117b23",
"application_id": "5b3c41a5ab405559544a573e",
"external_id": "ABC123" // Can be any string that you have included in the create request
}
],
"count": 1
}
}
HTTP Request
GET https://www.lumi.com.au/v1/leads
Query Parameters
Parameter | Type | Description | Optional |
---|---|---|---|
page_size | Int | Specify the number of leads per page you would like to retrieve. | true |
page_index | Int | Specify the page you would like to retrieve. | true |
status | String | Filter by the status of the lead. For valid values refer below. | true |
application_status | String | Filter by the application status of the lead. For valid values refer below. | true |
date_from | DateISO | Filter leads from the entered date. | true |
date_to | DateISO | Filter leads to the entered date. | true |
Lead Structure
The following shows the structure and data types of each of the fields in the lead object
Parameter | Type | Description |
---|---|---|
id | String | A unique identifier for the lead |
lost_reason | Lost Reason | The reason which the lead was lost or closed |
credit_decline_reasons | Array<Credit Decline Reasons> | The reason(s) why the credit team declined the loan |
status | Lead Status | The current status of the lead, the events array shows the history |
stakeholder | Customer | The customer's details |
company | Company | The company details of the customer's business |
loan | Loan | The characteristics of the loan the customer is requesting |
broker_notes | String | A free text field containing notes about the lead that the credit and sales team will see |
created_at | Date | The date the lead was created |
updated_at | Date | The date the lead was last updated |
submitted_by | String | The name of the broker who submitted the lead. Usually this will just be your name, unless you are the manager of a Lumi broker group, in which case you will also see the corresponding names of other brokers in your group who have submitted leads. |
external_id | String | Optional id that you can provide to us and we will return with all API requests. This may be used to map Lumi Lead Ids back to your system. |
Lead Status Values
Below is a list of possible status mappings for leads
Status | Name | Description |
---|---|---|
CLOSED | Withdrawn | The application was closed, please contact Lumi for more info |
DECLINED | Declined | After assessment, the client does not meet our credit criteria |
EXPIRED | Expired | As per the expiry rules, the lead has expired and will no longer receive updates |
FUNDED | Funded | The loan has been funded and the funds transferred into the client's account |
MISSED_CALL | Missed call | We tried to call the client but there was no answer |
WAITING_FOR_CALL | Waiting for a call | We will give the client a call soon |
AWAITING_CREDIT_APPROVAL | Awaiting credit approval | Our credit team is assessing the client's application |
AWAITING_LOAN_DOCUMENTS | Awaiting loan documents | We are waiting for loan documents to be signed |
AWAITING_DISBURSEMENT | Awaiting disbursement | Funds are scheduled to be transferred at 5pm AEST daily |
IDENTITY_VERIFICATION | Verifying Identity Documents | We are running some checks to verify the client's identity documents |
SUBMITTED | Lead submitted | The lead has just been submitted by the partner and will be actioned soon |
CALL_ATTEMPTED | Call Scheduled | We will retry calling the lead |
CREDIT_WAITING_DETAILS | Pending Further Information | The credit team is waiting for the customer to provide additional information for the assessment |
PROCESSING | Processing | Lumi is currently collecting documents from the customer, such as bank statements, drivers license etc. |
Lost Reasons
Value | Label |
---|---|
unable_to_meet_capital_requirements | Unable to meet the customer's capital requitements |
has_competitor_loan | The client already has a loan with a competitor |
funded_prior_to_lead_submitted | The client has already been funded elsewhere |
company_age_too_low | The client does not meet our minimum company age requirements |
insufficient_monthly_turnover | The business has insufficient monthly turnover |
individual_veda_too_low | The clients credit score is too low |
fails_age_requirements | The client does not meet our age requirements |
starting_a_business | The client is looking for startup funding |
looking_to_buy_a_business_no_existing_business | The client is looking to buy a businesses and does not own an existing business |
client_declined_cost | The client withdrew due to costs |
client_unresponsive | The client did not respond to our communications |
credit_declined | The credit team declined the loan (see credit_decline_reasons) |
duplicate_lead | We have seen this lead before |
incorrect_details | The contact information submitted are either not valid or incorrect |
client_declined_loan_not_required | The customer does not need the loan |
other | Other |
Credit Decline Reasons
Value | Label |
---|---|
insufficient_sales | Insufficient Sales |
insufficient_credit_score_restricted_sector | Insufficient credit score (Restricted sector) |
insufficient_credit_score_general_sector | Insufficient credit score (General sector) |
excessive_dishonours_cash_flow_unsuitable | Excessive dishonours/Cash flows unsuitable |
excluded_sector | Excluded Sector |
character | Character |
time_in_business | Time in business |
concurrent_loans | Concurrent Payday or Fintech loans |
bankruptcy | Bankruptcy |
excessive_ato_debt | Excessive ATO Debt |
no_servicing_evident | No Servicing Evident |
excessive_gambling | Excessive Gambling |
adverse_credit_event | Adverse Credit Event |
poor_existing_lumi_conduct | Poor Existing Conduct with Lumi |
other | Other |
Application Status Values
1. IN_PROCESS
2. SUBMITTED
Create Lead
Example request
{
"customer": {
"first_name": "Ben",
"last_name": "Blah",
"email": "ben234@www.lumi.com.au",
"phone": "0412352312",
"date_of_birth": "2017-06-30",
"address": {
"street_number": "2",
"street": "Sprint Street",
"city": "Bondi Junction",
"postal_code": "2022",
"state": "NSW",
"country": "Australia"
},
"credit_score": 500,
"defaults": 1,
"drivers_license_number": "12312312",
"drivers_license_state": "NSW",
"drivers_license_card_number": "CN987654321",
"has_property": "no",
"property_info": "applicant doesn't have any property"
},
"company": {
"name": "Bens Burgers",
"months_in_business": 24,
"accounting_software": "Xero",
"business_description": "Restaurant",
"industry": "E",
"industry_sector": "01",
"industry_granular": "22",
"average_monthly_turnover": 50000,
"abn": "115213748",
"address": {
"street_number": "2",
"street": "Sprint Street",
"city": "Bondi Junction",
"postal_code": "2022",
"state": "NSW",
"country": "Australia"
},
"website": "www.examplewebsite.com.au",
"number_of_employees": 27,
"ato_debt": "yes",
"ato_debt_details": "details description",
"credit_score": 500,
"has_other_loans": "no",
"other_loan_details": "other loan details"
},
"loan": {
"requested_amount": 15000,
"installments": 52,
"reason_for_loan": [
"buy_equipment",
"cash_flow"
],
"use_of_funds": "Purchasing new equipment",
"preferred_loan_type": "term-loan"
},
"broker_notes": "Some notes will provide more information for the application",
"contact_customer": true,
"external_id": "ABC123",
"referred_by": "lead_owner@email"
}
The created lead id is returned is returned on success
{
"success": true,
"result": "58f554ea2aaf6f0011dffabd"
}
HTTP Request
POST https://www.lumi.com.au/v1/leads
Body Params
Below is a description of each object within the leads request, with example fields and allowed values
Parameter | Type | Description | Validation |
---|---|---|---|
customer | Customer | Information about the customer, see the data type for more info | |
company | Company | Information about the company, see the data type for more info | |
loan | Loan | Information about the loan, see the data type for more info | |
broker_notes | String | A free text field that has more details about the application to provide the credit/sales teams with additional information about the lead | |
contact_customer | Boolean | Indicates whether Lumi should or should not contact the customer. If the value is false, all communication will be made through you. Default value is true | |
external_id | String | Optional id that you can provide to us and we will return with all API requests. This may be used to map Lumi Lead Ids back to your system. | |
referred_by | String | The email of the individual who you wish the lead to be attributed to, noting that the email must match an existing partner account in Lumi already. This account must also be in the same organisation as your own. If you submit a lead with this field and the email address does not meet the criteria, then we will still accept the lead, however it will be attributed to account that submitted the lead. Note - Please contact your BDM first in order to use this field. Only the managing owner’s account can use this property to refer other users from within their own organisation. |
Must be a valid email. |
Customer
Parameter | Type | Description | Required | Validation |
---|---|---|---|---|
first_name | String | First Name of the applicant | ✓ * | |
last_name | String | Last Name of the applicant | ||
String | Email of the applicant | ✓ * | Must be a valid email. We check for existing leads with this field. | |
phone | String | Phone number of the applicant | ✓ * | Must be in +61 or 04 format. We check for existing leads with this field. |
date_of_birth | String | Date of birth of the applicant | Can be in format 'DD/MM/YYYY' or 'YYYY-MM-DD' | |
address | Address (see below) | Home address of the applicant | ||
credit_score | Number | Credit score of the applicant | Must be a number | |
defaults | Number | Number of individual credit defaults on file | Must be a number | |
drivers_license_number | String | Applicants drivers license number | ||
drivers_license_state | String | State of issue of the drivers license | Must be one of the following ["ACT", "NSW", "NT", "QLD", "SA", "TAS", "VIC", "WA"] | |
drivers_license_card_number | String | Applicants drivers license card number | ||
has_property | String | If applicant has property | options are "yes", "no", "unknown" | |
property_info | String | More information of applicant's property |
Company
Parameter | Type | Description | Required | Validation |
---|---|---|---|---|
name | String | Name of the company | ✓ * | |
months_in_business | Number | Number of months the business has been trading for | Must be a number | |
accounting_software | String | Which accounting software is the business using | Length between 3-12 characters | |
business_description | String | What does the business do? | Length between 0-30 characters | |
industry | String | Which industry is the business in? | We use the first level ANSZIC codes here. See ANZSIC lookup. NOTE: This will likely change once our sales staff speak to the customer and classify the business accordingly. Options are [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, OD, P, Q, R, S, X]. | |
industry_sector | String | The portion of the ANZIC code that represents the companies “second level” industry or “sector”. | Must be a string of length 2-3. We use the second level ANSZIC codes here. See ANZSIC lookup. *We will accept leads with incorrect industry levels, but will be recorded separately so we can re-assess it if it fails to map. **This will likely change once our sales staff speak to the customer and classify the business accordingly. |
|
industry_granular | String | The portion of the ANZIC code that represents the companies “third level” industry or “granular” industry selection. | Must be a string of length 2-3. We use the third level ANSZIC codes here. See ANZSIC lookup. *We will accept leads with incorrect industry levels, but will be recorded separately so we can re-assess it if it fails to map. **This will likely change once our sales staff speak to the customer and classify the business accordingly. |
|
average_monthly_turnover | Number | Average monthly turnover | Must be a number | |
abn | String | Australian Business Number (ABN) of the business | ✓ * | Must be a string of length 9 or 11 |
address | Address (see below) | The primary trading address of the business | ||
website | String | The website of the business | ||
number_of_employees | Number | Approximately how many people does this business employ? | ||
ato_debt | String | If company has current ATO debt | options are "yes", "no", "unknown" | |
ato_debt_details | String | More information of company ATO debt | ||
credit_score | Number | Credit Score | Must be integer number | |
has_other_loans | String | If company has other business loans | options are "yes", "no", "unknown" | |
other_loan_details | String | More information of company other business loans |
Loan
Parameter | Type | Description | Required | Validation |
---|---|---|---|---|
requested_amount | Number | Requested loan value | ✓ * | Must be a number between 5,000 and 300,000 ** |
installments | Number | The term (in weeks) of the loan requested | ✓ * | Must be a number between 13 and 78 ** |
reason_for_loan | String[] | The reason the customer needs the loan | Must be an Array of valid reasons - Can include multiple reasons. Refer to this section. for valid reasons | |
reason_for_loan_other (DEPRECATED) | String | Values passed into this field will not be used, and soon the API will not accept this parameter | ||
use_of_funds | String | The main usage that the customer will use the funds for | ||
preferred_loan_type | String | Optional, options are "term-loan", "line-of-credit" | Must be one of "term-loan", "line-of-credit" |
Address
Parameter | Type | Description | Required | Requirements |
---|---|---|---|---|
street_number | String | Street number - include the unit number in this field as well. e.g. "206/2" | ||
street | String | Street name including street type | ||
city | String | City/Suburb | ||
postal_code | String | Post code | ||
state | String | State | ||
country | String | Country - "Australia" |
Response
The created lead ID is returned on successful submission along with a success flag
Allowed Loan Reasons
Sample response
{
"success": true,
"reasons": [
{
"value": "buy_equipment",
"text": "Buying Equipment"
},
{
"value": "cash_flow",
"text": "Cash Flow"
},
{
"value": "buy_inventory",
"text": "Buy Inventory"
},
{
"value": "paying_off_existing_debt",
"text": "Pay off existing debt"
},
{
"value": "marketing_spend",
"text": "Marketing Spend"
},
{
"value": "paying_staff",
"text": "Wages/New Hires"
},
{
"value": "tax",
"text": "Pay off tax tebt"
},
{
"value": "relocation",
"text": "Relocation"
},
{
"value": "renovations",
"text": "Renovations"
},
{
"value": "buy_a_business",
"text": "Buy a Business"
},
{
"value": "start_a_business",
"text": "Start a Business"
},
{
"value": "relocation_expansion",
"text": "Renovation or Relocation (WARNING - value will be deprecated in the coming months)"
},
{
"value": "buy_or_start_a_business",
"text": "Buy or Start a Business (WARNING - value will be deprecated in the coming months)"
},
{
"value": "other",
"text": "Other (WARNING - value will be deprecated in the coming months)"
}
]
}
HTTP Request
GET https://www.lumi.com.au/v1/leads/loanReasons
The latest list of loan reasons. The value
property, if applicable, should be passed to reason_for_loan
as an array during a Create Lead request. That is, multiple loan reasons may be passed to the request.
Upload Lead Document
Request
Headers
"Constent Type: multipart/form-data;boundary=----WebKitFormBoundary8M3sSU13ul5lXSJm"
"Authentication: Basic authentication with base64(user:pass) in the header [BASIC AUTHENTICATION]"
Body
------WebKitFormBoundary8M3sSU13ul5lXSJm
Content-Disposition: form-data; name="document"; filename="image.jpg"
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a
HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAABAAEDASIA
AhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAf/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/8QAFAEB
AAAAAAAAAAAAAAAAAAAAAP/EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/AL+AD//Z
------WebKitFormBoundary8M3sSU13ul5lXSJm--
POST https://www.lumi.com.au/v1/leads/{lead_id}/documents
Query Parameters
Parameter | Type | Description | Optional |
---|---|---|---|
type | Document Types | The document type of file you upload | false |
URL Parameters
Parameter | Type | Optional |
---|---|---|
lead_id | String | false |
Document Types
Value | Label | Description |
---|---|---|
PNL_REPORT |
Profit/loss | Required for applications of $250,000 and up |
BALANCE_SHEET_REPORT |
Balance sheet | Required for applications of $250,000 and up |
DRIVERS_LICENSE_FRONT |
Drivers license front | Please ensure all text is readable, including the card number |
DRIVERS_LICENSE_BACK |
Drivers license back | Please ensure all text is readable, including the card number |
BANK_STATEMENTS |
Bank statement | Illion V3 file if available |
BROKER_APPLICATION_FORM |
Broker application form | Please provide a copy of your own application form if available |
BROKER_PRIVACY_FORM |
Broker privacy form | Privacy consent form signed by the applying guarantor(s). Note, Lumi must be listed in the schedule of credit providers and the form must have been signed within 3 months of the credit check being run to constitute valid consent |
Content Types
The document must conform to one of the following content types:
application/msword
application/pdf
application/vnd.ms-excel
application/vnd.ms-outlook
application/vnd.openxmlformats-officedocument.presentationml.presentation
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
application/vnd.openxmlformats-officedocument.wordprocessingml.document
image/bmp
image/gif
image/heic
image/heif
image/jpeg
image/png
image/tiff
image/webp
message/rfc822
text/csv
text/plain
text/html
The following response is returned
{
"success": true,
"file": {
"id": "59945662f5b3f9b41076cc07",
"filename": "image.jpg",
"size": 250,
}
}
Lead Details
Example using the Fetch API
const leads = await fetch('https://www.lumi.com.au/v1/leads/5b3c41aa9e8dec24a3117b3c', {
method = 'GET',
headers: {
'Authorization': 'lumiauthkey'
}
});
The above command returns JSON structured like so:
{
"success": true,
"result": {
"id": "5b3c41aa9e8dec24a3117b3c",
"status": "FUNDED",
"stakeholder": {
"first_name": "John",
"last_name": "Smith",
"email": "john.smith@smithfamily.com",
"phone": "0401-234-567",
"birth_date": "1994-02-14",
"address": {
"street": "1 George Street, Sydney NSW, Australia",
"country": "AUS"
},
"drivers_license_number": "12323123",
"drivers_license_state": "NSW",
"drivers_license_card_number": "CN987654321",
"credit_score": "700",
"has_property": "yes",
"property_info": "details regarding property"
},
"company": {
"name": "FLYING SOLO PROPERTIES",
"abn": "116213748",
"industry": "D",
"address": {
"street": "106-108 George Street, The Rocks NSW, Australia"
},
"average_monthly_turnover": 1234678
},
"loan": {
"reason_for_loan": ["cash_flow"],
"use_of_funds": "Purchasing new equipment",
"requested_amount": 8000,
"installments": 52,
"application_type": "REGULAR",
"amount": 8000,
"top_up_amount": 0 // In the case of a REFINANCE_INTERNAL, the amount will be the total loan amount and the top up amount is the amount that the original account is being topped up by
},
"broker_notes": "some notes",
"created_at": "2018-07-04T13:40:26+10:00",
"updated_at": "2018-07-04T13:41:56+10:00",
"loan_id": "5b3c41a59e8dec24a3117b23",
"application_id": "5b3c41a5ab405559544a573e",
"commission_percentage": 10, // NOTE: this field only shows for FUNDED leads
"effective_commission": 800, // NOTE: this field only shows for FUNDED leads
"annual_simple_rate": 0.2424, // NOTE: this field only shows for FUNDED leads
// loan_product_type has two potential values
// DYNAMIC_TERM_LOAN for Term Loans
// REVOLVING_CREDIT for Lines of Credit
"loan_product_type": "DYNAMIC_TERM_LOAN" // NOTE: this field only shows for FUNDED leads
}
}
}
Retrieves all the details for a specific lead.
HTTP Request
GET https://www.lumi.com.au/v1/leads/{lead_id}
URL Parameters
Parameter | Type | Description | Optional |
---|---|---|---|
lead_id | String | The ID of the lead you are retrieving. | false |
Lead Events
Example using the Fetch API
const events = await fetch('https://www.lumi.com.au/v1/leads/5b3c41aa9e8dec24a3117b3c/events', {
method = 'GET',
headers: {
'Authorization': 'lumiauthkey'
}
});
The above command returns JSON structured like so:
{
"success": true,
"result": {
"lead_events": [
{
"lead_id": "5d23e8ea5896d3750c29b0e9",
"event_type": "EMAIL",
"direction": "OUTBOUND",
"id": "5d23e8ea5896d3750c29b0f0",
"date": "2019-07-09T01:07:54.000Z",
},
{
"lead_id": "5d23e8ea5896d3750c29b0e9",
"event_type": "CALL",
"direction": "INBOUND",
"id": "5d23e8ea5896d3750c29b0f0",
"date": "2019-07-09T01:07:54.000Z",
},
{
"lead_id": "5d23e8ea5896d3750c29b0e9",
"event_text": "WAITING_FOR_CALL",
"event_type": "STATUS_CHANGE",
"id": "5d23f3bffd28f70c35cfa0c7",
"date": "2019-07-09T01:54:07.000Z",
},
{
"lead_id": "5d23e8ea5896d3750c29b0e9",
"event_text": "WAITING_FOR_CALL",
"event_type": "STATUS_CHANGE",
"id": "5d23e8ea5896d3750c29b0f7",
"date": "2019-07-09T01:07:54.000Z",
},
{
"lead_id": "5d23e8ea5896d3750c29b0e9",
"event_text": "SUBMITTED",
"event_type": "STATUS_CHANGE",
"id": "5d23e8ea5896d3750c29b0f0",
"date": "2019-07-09T01:07:54.000Z",
},
],
"total": 5,
"page": 1
}
}
Retrieves all the events for the lead.
HTTP Request
GET https://www.lumi.com.au/v1/leads/:id/events
to retrieve on a lead by lead level
OR
GET https://www.lumi.com.au/v1/leads/events
to retrieve all events
Query Parameters
Parameter | Type | Description | Default | Optional |
---|---|---|---|---|
id | String | The ID of the lead you want to retrieve events from. | true | |
page_index | number | The current page you wish to retrieve | 1 | true |
page_size | number | The size of each page | 50 (Max: 100) | true |
since | Date | Pass in a date to retrieve all of the events from the since date until now | true | |
createdAtSince | Date | Pass in a date to retrieve all of the events that were created after this date | true |
Lead Event Structure
The following shows the structure and data types of each of the fields in the lead object
Parameter | Type | Description |
---|---|---|
id | String | A unique identifier for the event |
lead_id | String | The ID of the lead that the event belongs to |
event_type | Event Type | The type of lead event |
event_text | String | Value provided with the event. Refer to the list below for values depending on the event type |
date | Date | The date the event occured |
direction | String | The direction the engagement was made |
Event Types
STATUS_UPDATED
DOCUMENT_CAPTURE
LOAN_DOCUMENTS
CALL
EMAIL
Status Updated Event Text Values
Loan Document Event Text Values
SENT
SIGNED
Document Capture Event Text Values
SENT
COMPLETED
Email Event Directions
INBOUND
OUTBOUND
Call Event Directions
INBOUND
OUTBOUND
Connect Bank Feeds
Example request
{
"document_id": "78190NAD",
}
Example response
{
"success": true
}
Submits a Proviso Broker Flow document Id
HTTP Request
POST https://www.lumi.com.au/v1/leads/:lead_id/bankfeeds
URL Parameters
Parameter | Type | Description | Required |
---|---|---|---|
lead_id | String | The ID of the lead you are submitting the Broker Flow document Id for. | true |
Body Parameters
Parameter | Type | Description | Required |
---|---|---|---|
document_id | String | The document ID provided by Proviso Broker Flow | true |
Webhooks
An example webhook payload
{
"type": "STATUS_UPDATED",
"lead": {
"events": [
{
"id": "5cdb9c75751f24003a93fd4d",
"event_text": "SUBMITTED",
"created_at": "2019-05-15T04:58:29.000Z",
"updated_at": "2019-05-15T04:58:29.000Z",
"event_type": "STATUS_CHANGE"
},
{
"id": "5cdb9c86751f2400fd9390af",
"event_text": "MISSED_CALL",
"created_at": "2019-05-15T04:58:46.000Z",
"updated_at": "2019-05-15T04:58:46.000Z",
"event_type": "STATUS_CHANGE"
}
],
"id": "5cdb9c75751df4003a93904c",
"status": "DECLINED",
"lost_reasons": [],
"credit_decline_reasons": [],
"stakeholder": {
"first_name": "Example",
"last_name": "Webhook",
"email": "example@webhook.com",
"phone": "+61433222111",
"address": {
"street": "",
"street_number": "",
"city": "",
"state": "",
"country": "AUS",
"postal_code": ""
}
},
"company": {
"address": {}
},
"loan": {
"reason_for_loan": [],
"amount": 0,
"application_type": "REGULAR",
"application_status": "IN_PROCESS"
},
"broker_notes": "some notes",
"created_at": "2019-05-15T04:58:29.000Z",
"updated_at": "2019-05-15T05:38:17.000Z",
"loan_id": "5cdb9c74751dfs003a938fc0",
"application_id": "5cdbfds4a4e311ec47bc0e3f",
"expired": false,
"expires_at": "2019-05-29T04:58:29.000Z",
}
}
The Lumi API supports webhooks so you can receive updates on your leads in real time!
The webhook will be sent in the event of:
- Status Update: If Lumi updates the status of the lead, you will receive a webhook with the new status
- Lead Created: Any time a lead is created, this webhook will fire letting you know there is something new. This will be called in the case where an existing lead refinances their loan
Getting started with webhooks
To start receiving webhooks from Lumi, please send an email to support@lumi.com.au with your webhook URL and prefered authentication method
Payload
The following payload is sent to to the endpoint.
Parameter | Type | Description |
---|---|---|
type | string | The type of update on the lead. See below for possible values |
lead | Lead | The lead object. This object is the same as the one described in the Lead section |
Update Type Values
STATUS_UPDATED
CREATED
Authentication
The Lumi webhooks can be authenticated in a number of ways, the standard of which is by using an shared API token under the request header X-API-KEY. If required, we can update the name of this header. We can also support HTTP BASIC authentication as well.
If you have specific authentication requirements outside of the ones currently supported, please let us know.
Broker Resources
Example response
{
"success": true,
"resources": [
{
"id": 42190807566,
"name": "broker guide",
"extension": "pdf",
"url": "http://www.lumi.com.au/broker-assets/broker%20guide.pdf"
},
{
"id": 42190988083,
"name": "lumi-v-screen",
"extension": "png",
"url": "http://www.lumi.com.au/broker-assets/lumi-v-screen.png",
"thumbUrl": "http://www.lumi.com.au/broker-assets/lumi-v-screen.png/thumb.png"
},
{
"id": 41951125914,
"name": "new agreement",
"extension": "pdf",
"url": "http://www.lumi.com.au/broker-assets/new%20agreement.pdf"
}
]
}
Request available documents.
HTTP Request
GET https://www.lumi.com.au/v1/leads/resources
Zapier Integration
To make it easier for our partners to automatically submit their leads to Lumi without doing a full API integration we have created an integration with Zapier.
Zapier is a no-code tool that is used to integrate web apps with each other, it is primarily used for automating workflows. Zapier allows users to construct these workflows based off of events, some examples:
- When a row is added to a Google Sheet, send an email from Gmail
- When a new contact is added in Hubspot, send a Slack message
- When a new record is added to Salesforce, create a lead with Lumi
This document is a guide on how to set up a Zapier workflow (called a Zap) that will create a lead with Lumi based off of updates in Salesforce. The same principals can be applied to any other popular CRM, including but not limited to:
- Hubspot
- Pipedrive
- ZohoCRM
- ActiveCampaign
Please download our sample guide from here.