Documentation: Public Instant Decision API V1

Overview

The Instant Decision API allows authorised intermediaries to make a finance application and receive an indicative offer from Optimum Finance.

The sales and on-boarding progress of each application can also be tracked using our update route or by providing an API enpoint of your own (a webhook) for us to send status updates to.

/decide Route

POST /api/v1/instant-decision/decide

Request Body

{
    introducerId: "01234567ABCDEFGH",   # required | String   | your introducer ID or introducer contact ID
    companyNumber: "12345678",          # required | String   | the prospect's company registration number
    sector: "Beer / Wine Merchant",     # required | String   | the prospect's sector (list at bottom of page)
    turnover: 9999999,                  # required | Int >= 0 | the expected turnover for the prospect over the next 12 months
    homeowners: true,                   # optional | Boolean  | this is no longer used.
    yearsTrading: 4,                    # required | Int >= 0 | how long the prospect has been trading?
    expectedCustomers: 41,              # required | Int >= 0 | number of expected customers with a balance in 6 months
    phoenix: false,                     # optional | Boolean  | is this a phoenix company?
    creditControl: true,                # optional | Boolean  | this is no longer used
    quotationOnly: false,               # optional | Boolean  | set true if you do not wish for this lead to be 
                                                                processed by our sales and on-boarding teams
    contactName: "bob test",            # optional | String   | required if not quotationOnly
    contactNumber: "07123 456 789",     # optional | String   | required if not quotationOnly
    contactEmail: "bob@dom.email"       # optional | String   | required if not quotationOnly
}

Response Body

{
    decision: {
        ...                                     # the decision computed from given information
    },
    opportunityId: "01234567ABCDEFGH",          # the Optimum Finance opportunity ID 
                                                  (only supplied for successful applications that are not 'quotation only')
    companyName: "COMPANY NAME LTD"             # company name from the given company number - use this to verify correct company
}

Decisions

An approved decision gives details of the indicative offer:

{
  decision: "approved",
  trialPeriodMonths: 4,           # trial period length
  fundingLimit: 745000,           
  annualRenewalFee: 0,
  badDebtProtection: 0.85,
  cashAvailableWithinHours: 48,
  discountFee: 3.35,
  facility: "Factoring",          # Factoring or Invoice Discounting or Confidential Invoice Discounting
  prepayment: 80,
  serviceFee: 1.14
}

A referred decision - would need manual review

{
  decision: "referred",
  reasons: ["Directors are not homeowners"]               # an array of reasons
}

A declined decision - based on provided information this has been declined

{
  decision: "declined",
  reasons: ["Turnover below £200,000"]               # an array of reasons
}

/update Route

GET /api/v1/instant-decision/update

Alternatively please supply us with an endpoint url to your own API. We will make HTTP PUT request in real time as the opportunity is updated by our sales and on-boarding teams.

Request Body

These 2 parameters can be supplied either in the body of the request or as query params
{
  id: "01234567ABCDEFGH"              # required | String  | id of the application
  introducerId: "01234567ABCDEFGH",   # required | String  | your introducer ID or introducer contact ID
}

Response Body

{
    owner: {                                        # the Optimum Finance sales person managing the application
        name: "bob person",
        email: "test@sales.email",
        phone: 07123 456 789
    },
    status: "Indicative Offer Sent",                # status of the application
    closeChance: 0,
    closeDate: "2020-03-31",
    originalDecision: {...},                        # decision initially returned
    latestOffer: {                                  # details of the latest offer being offered
        trialPeriodMonths: null | number,
        facility: null | number,
        fundingLimit: null | number,
        serviceFee: null | number,
        prepayment: null | number,
        discountFee:
    },                                
    estimatedMonthlyCommission: null | number       # the estimated minimum monthly commission
}

A newly created lead may not be assigned to a sales person immediately - in this case owner will be "currently assigning" instead of the owner object

The possible Statuses are:

List of Sectors