OpenAPI definition (v0)

Download OpenAPI specification:Download

Introduction

Cache is a white-label fund manager that launches and operates digital investment products for partner companies.

When a Fund has been established, partner companies use Cache’s API to provide instructions relating to the Fund in real time.

Cache API services

Cache provides seven core API services that you can use to operate your Fund:

Investment Options retrieves the investment options as part of the investment scheme

Investors manages the records relating to your investors including creating, updating and retrieving investor details and verifying an investor for KYC purposes.

Subscriptions manages the subscription details of investors and the payments and fees associated with their subscription (for products with subscription fees only).

Instructions manages the transaction instructions that have been provided including applications, redemption requests and switch requests.

Transactions manages the historical transaction information relating to your Fund and retrieve transaction fees that will apply to transaction instructions.

Invoices manages invoice details and amounts using a reference code (for products where applications are funded by invoice).

Tax manages tax statements relating to the fund

Structure

The Cache’s REST APIs have resource-oriented URLs and use HTTP response codes to indicate API errors.

Cache supports cross-origin resource sharing, allowing you to interact securely with our API from a client-side web application.

Authentication

Authentication & authorization related operations

Login

Cache APIs support token-based authorization via the Authorization request header. The Authentication endpoint is used to retrieve an access token. After the access token is obtained, it must be inserted into the Authorization header for all requests.

Request Body schema: application/json
apiKey
string
apiSecret
string

Responses

Request samples

Content type
application/json
{
  • "apiKey": "string",
  • "apiSecret": "string"
}

Response samples

Content type
application/hal+json
"jwt token"

Refresh token

Access tokens expire after 5 minutes, but can be refreshed within 30 minutes of issue.

Responses

Response samples

Content type
application/hal+json
"jwt token"

Investment Options

Update Interest Rate by Investment Option

Update the interest rate with a specified date for an investment option.

Authorizations:
BearerAuth
Request Body schema: application/json
investmentOptionId
required
integer <int64>

The ID that identifies the Investment Option on the Cache stack.

effectiveStartDate
required
string <date>

The Start Date which the interest rate commences.

effectiveEndDate
required
string <date>

The End Date which the interest rate ceases (inclusive).

baseRate
number <double>

The base interest rate is reference rate to be applied over the Start and End Date (inclusive). If the rate only applies for one day then the Start and End Date will be the same.

spreadRate
number <double>

This is the rate that will be added to the base rate to calculate the grossRate(final interest rate) to be applied to the investor’s accrual. If the interest rate applied to calculate the accrual has no spread then the Spread should be set to 0 and the baseRate should be populated with the grossRate.

interestAmount
number <double>

The total amount of interest that has been accrued over the Start and End Date. If the amount is to be applied for a single day then the Start and End Date will be the same and correspond to the accrual day. If the amount applies over a period (eg. weekend) then the Start and End Date should correspond to the starting and ending date for the period.

Responses

Request samples

Content type
application/json
{
  • "investmentOptionId": 0,
  • "effectiveStartDate": "2019-08-24",
  • "effectiveEndDate": "2019-08-24",
  • "baseRate": 0,
  • "spreadRate": 0,
  • "interestAmount": 0
}

List Investment Options

Returns a list of investment options available within the Fund.

Authorizations:
BearerAuth

Responses

Retrieve Unit Price by Investment Option

Retrieves the most recent recorded unit price for an investment option.

Authorizations:
BearerAuth
path Parameters
investmentOptionId
required
integer <int64>

Responses

Retrieve Historical Unit Prices by Investment Option ID

Returns an array of all the unit prices determined for an investment option within a date period.

The response will not provide a unit price for days on which a unit price was not determined (e.g. on a weekend or public holiday).

The 'fromDate' must be less than the 'toDate' and the 'toDate' must be less than or equal to today's date.

Authorizations:
BearerAuth
path Parameters
investmentOptionId
required
integer <int64>
query Parameters
fromDate
string <date>
toDate
string <date>

Responses

Retrieve Interest Rate by Investment Option

Retrieves the most recent recorded interest rate for an investment option.

Authorizations:
BearerAuth
path Parameters
investmentOptionId
required
integer <int64>

Responses

Retrieve Historical Interest Rates by Investment Option ID

Returns an array of all the interest rates determined for an investment option within a date period.

The response will not provide a unit price for days on which a unit price was not determined (e.g. on a weekend or public holiday).

The 'fromDate' must be less than the 'toDate' and the 'toDate' must be less than or equal to today's date.

Authorizations:
BearerAuth
path Parameters
investmentOptionId
required
integer <int64>
query Parameters
fromDate
string <date>
toDate
string <date>

Responses

Retrieve total balance of Investment Option

Returns current holding balance of the investment option

Authorizations:
BearerAuth
path Parameters
investmentOptionId
required
integer <int64>

Responses

Retrieve FUM by Investment Option ID Deprecated

Provides total balance of investment option. It supports only logicType. Holding Balance has following Balance Logic Types.

logicType Description When commonly used
Actual         The sum of all units held by investors and recorded on the register. This is the 'legal' balance used for unit pricing and audit purposes.
Cleared         The 'Actual Balance' less any Applications that:
  • have the Transaction Status 'Unitised', and
  • do not have the Funding Status 'Fully Funded',(eg 'debited' Applications).
This is the balance of all transactions that are no longer at risk of defaulting.
Projected         The 'Actual Balance' less any Redemptions that have the Transaction Status 'Approved'. This is the projected balance the Investment Option will have when all pending transactions into and out of the Investment Option have been processed.
Requested         The sum of:
  • all Applications with the transaction status 'Approved', and
  • all Redemptions with the transaction status 'Approved'.
Uncleared         The 'Actual Balance' less the 'Cleared Balance'.
Pending         The 'Requested Balance' plus the 'Uncleared Balance'.
Authorizations:
BearerAuth
path Parameters
investmentOptionId
required
integer <int64>
query Parameters
logicType
string
Enum: "Actual" "Cleared" "Available" "Projected" "Requested" "Uncleared" "Pending"

Responses

All Investors

List Investors

Returns a paginated collection of accessible Investors.

The API may be configured to limit the resulting Investor Collection to ensure that only minimal relevant data is exposed and only when required.

Authorizations:
BearerAuth
query Parameters
required
object (PageDto)
tags
required
Array of strings unique
nonindividual
boolean
Default: false

Responses

Individual Investors

Retrieve an Investor by Investor ID

Retrieves the details of an existing investor.

Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>

Responses

Update an Investor by Investor ID

Updates the details of an existing investor. Any attributes not provided will be left unchanged.

Once an investor has passed ID verification, some attributes may not be changed. If you would like to change these details, we can process this manually after the new identity has also passed verification.

If you provide the same details that we already have (ie there are no changes), the API will return a HTTP 200 status.

Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>
Request Body schema: application/json
external_account_id
string [ 0 .. 100 ] characters
first_name
required
string^[a-zA-Zàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýż...

Letters, spaces and following characters; +@!^$&'()*-:;=?.#_,[]/"}

middle_name
string^[a-zA-Zàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýż...

Letters, spaces and following characters; +@!^$&'()*-:;=?.#_,[]/"}

last_name
required
string^[a-zA-Zàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýż...

Letters, spaces and following characters; +@!^$&'()*-:;=?.#_,[]/"}

date_of_birth
required
string <date>

pattern = 'yyyy-MM-dd'

email
required
string
mobile_number
required
string

Australian phone numbers should follow this regex (^1300\d{6}$)|(?:+?61)?(?:(0)[23478]|(?0?[23478])?)\d{8}|(^1800\d{6}$)|(^13\d{4}$) and foreign phone numbers should follow this regex ^(+|00)[1-9][0-9 -().]{7,32}$

street_name
required
string
street_number
required
string
street_type
required
string
post_code
required
string

Post code size should 4 digits

state
required
string
Enum: "NSW" "VIC" "QLD" "TAS" "ACT" "WA" "SA" "NT" "AP" "AR" "AS" "BR" "CT" "GA" "GJ" "HR" "HP" "JH" "KA" "KL" "MP" "MH" "MN" "ML" "MZ" "NL" "OR" "PB" "RJ" "SK" "TN" "TG" "TR" "UP" "UK" "WB" "AN" "CH" "DN" "DL" "JK" "LA" "LD" "PY"
sub_premise
string
suburb
required
string
tfn
string
drp_status
boolean
is_foreign_tax_resident
boolean
Array of objects (ForeignTaxResidentDetailDto) [ 0 .. 5 ] items unique

The country id is based on ISO 3166-1 alpha-2. The 2 capital alphabets should be input as country code.

pds_received_in_australia
boolean

PDS Received in Australia should be true for foreign phone numbers.

Responses

Request samples

Content type
application/json
{
  • "external_account_id": "string",
  • "first_name": "string",
  • "middle_name": "string",
  • "last_name": "string",
  • "date_of_birth": "2000-01-01",
  • "email": "string",
  • "mobile_number": "string",
  • "street_name": "string",
  • "street_number": "string",
  • "street_type": "string",
  • "post_code": "string",
  • "state": "NSW",
  • "sub_premise": "string",
  • "suburb": "string",
  • "tfn": "string",
  • "drp_status": true,
  • "is_foreign_tax_resident": true,
  • "foreign_tax_resident_details": [
    ],
  • "pds_received_in_australia": true
}

Partially Update an Investor by Investor ID

Updates the details of an existing investor. If the field tfn is not provided, it will be left unchanged.

Once an investor has passed ID verification, first_name, last_name, middle_name and date_of_birth can't be changed. If you would like to change these details, we can process this manually after the new identity has also passed verification.

Investors can update TFN anytime (even after KYC is completed and transactions made). When TFN is changed (if it was previously not null), an alert is sent to Cache for fraud monitoring purposes.

If you provide the same details that we already have (ie there are no changes), the API will return a HTTP 200 status.

Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>
Request Body schema: application/json
Array
replaceOp
boolean
op
required
string
path
required
string
value
required
object

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Retry for update Investor registry data by Investor ID

This API endpoint provides the functionality to update an investor's account for registry in case previous try was unsuccessful

The API will return a HTTP 200 status.

Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>

Responses

Retry for create Investor registry data by Investor ID

This API endpoint provides the functionality to create an investor's account for registry in case previous try was unsuccessful

In case of another fail registry_account_id will remain null

The API will return a HTTP 200 status.

Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>

Responses

Investor Distributions

Returns distribution collections of an Investor.

Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>
query Parameters
fromDate
required
string <date>
toDate
required
string <date>

Responses

KYC & AML

Verify Investor by Investor ID

You can verify an Investor by triggering this API. If an Investor is not verified by the time we receive their first investment instruction, we will process a verification at that time before accepting the instruction.

Triggers the ID verification of an existing investor.

Our flows automatically trigger ID verification on new customers. We can configure our platform so ID verification occurs upon Create Investor, when we have received the investor’s first investment instruction or when we have received the cash to pay for the investor’s first investment instruction (however successful ID verification must occur before we may accept an investment instruction for that investor).

This endpoint is intended to be used to re-verify an investor after their details have been updated.

The API will return a result confirming whether ID verification was passed and further details.

Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>

Responses

List Acceptable Countries

This endpoint assists onboard investors that are foreign tax residents.

We can only accept investors that are tax residents of Australia, or another country that appears on our List of Acceptable Countries.

Use this endpoint to retrieve the Name and Country ID of all countries that appear on our List of Acceptable Countries.

When an investor confirms that they are a tax resident of a foreign company, record the appropriate Country ID on their Investor record.

Authorizations:
BearerAuth

Responses

Banking Details

Retrieve Banking Details by Investor ID

Retrieves the banking details for an existing investor.

Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>

Responses

Update Banking Details by Investor ID

This API allows investors to update their bank details if their current holding is $0. If their holding is >$0 then you will need to contact the Cache support via email (with a bank statement of the new account) to update their bank details.

We only support standard Australian bank account & BSB. Australian banking standards mandate a 6 digit BSB and 6-9 digit account numbers. Only digits allowed. Furthermore, certain account numbers (ex, 999999 or 802919) are reserved and cannot be used.

For security reasons, we don’t allow special characters to be used in any of the input parameters. See below the regular expression we use for validation.

ACCEPTED_CHARACTERS_REGEX = \"^[a-zA-ZàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýżźñçčšžÀÁÂÄÃÅĄĆČĖĘÈÉÊËÌÍÎÏĮŁŃÒÓÔÖÕØÙÚÛÜŲŪŸÝŻŹÑßÇŒÆČŠŽ∂ð ',.'-]{0,48}+$\";

Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>
Request Body schema: application/json
bank_bsb
required
string
bank_account_number
required
string[0-9]+
bank_account_name
required
string^[a-zA-Zàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýż...

Letters, spaces and following characters; +@!^$&'()*-:;=?.#_,[]/

Responses

Request samples

Content type
application/json
{
  • "bank_bsb": "string",
  • "bank_account_number": "string",
  • "bank_account_name": "string"
}

Create Banking Details by Investor ID

Creates a ‘linked bank account’ for an existing investor.

All direct debit requests and withdrawal payments may only be made to a linked bank account stored for the relevant investor.

At this time, each investor may only create one linked bank account.

We only support standard Australian bank account & BSB. Australian banking standards mandate a 6 digit BSB and 6-9 digit account numbers. Only digits allowed. Furthermore, certain account numbers (ex, 999999 or 802919) are reserved and cannot be used.

For security reasons, we don’t allow special characters to be used in any of the input parameters. See below the regular expression we use for validation.

ACCEPTED_CHARACTERS_REGEX = \"^[a-zA-ZàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýżźñçčšžÀÁÂÄÃÅĄĆČĖĘÈÉÊËÌÍÎÏĮŁŃÒÓÔÖÕØÙÚÛÜŲŪŸÝŻŹÑßÇŒÆČŠŽ∂ð ',.'-]{0,48}+$\";

Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>
Request Body schema: application/json
bank_bsb
required
string
bank_account_number
required
string[0-9]+
bank_account_name
required
string^[a-zA-Zàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýż...

Letters, spaces and following characters; +@!^$&'()*-:;=?.#_,[]/

Responses

Request samples

Content type
application/json
{
  • "bank_bsb": "string",
  • "bank_account_number": "string",
  • "bank_account_name": "string"
}

Investor Tags

Retrieve Tags by Investor ID

This endpoint retrieves the list of Investor Tags for an Investor.

Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>

Responses

Create Investor Tags by Investor ID

This endpoint creates an Investor Tag for an Investor.

Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>
Request Body schema: application/json
tags
Array of strings unique

Responses

Request samples

Content type
application/json
{
  • "tags": [
    ]
}

Investor Holdings

Retrieve Holding Information by Investor ID [DEPRECATED]

Provides a snapshot of the investments currently held by an existing investor.

Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>
query Parameters
isSecondVersion
boolean

Responses

Retrieve Historical Holding Information by Investor ID

Provides historical balance of the investments currently held by an existing investor.

Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>
query Parameters
fromDate
required
string <date>
toDate
required
string <date>
instructionTags
required
Array of strings unique

Responses

Retrieve Holding Balance by Investor ID and Instruction Tag

Provides a snapshot of the tagged investments currently held by an existing investor.

Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>
query Parameters
instructionTags
required
Array of strings unique

Responses

Retrieve Holding Balance by Investor ID

Provides a balance of the investments held by an existing investor. Holding Balance has following Balance Logic Types.

logicType Description When commonly used
Actual         The sum of all units held by investors and recorded on the register. This is the 'legal' balance used for unit pricing and audit purposes.
Cleared         The 'Actual Balance' less any Applications that:
  • have the Transaction Status 'Unitised', and
  • do not have the Funding Status 'Fully Funded',(eg 'debited' Applications).
This is the balance of all transactions that are no longer at risk of defaulting.
Projected         The 'Actual Balance' less any Redemptions that have the Transaction Status 'Approved'. This is the projected balance the Investment Option will have when all pending transactions into and out of the Investment Option have been processed.
Requested         The sum of:
  • all Applications with the transaction status 'Approved', and
  • all Redemptions with the transaction status 'Approved'.
Uncleared         The 'Actual Balance' less the 'Cleared Balance'.
Pending         The 'Requested Balance' plus the 'Uncleared Balance'.
Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>
query Parameters
logicType
string
Enum: "Actual" "Cleared" "Available" "Projected" "Requested" "Uncleared" "Pending"
valueType
string
Enum: "Value" "Cost" "Gain"
calculationType
string
Enum: "FIFO" "LIFO" "VWAP"
isSecondVersion
boolean

Responses

Subscriptions

Calculate Subscription Fees Based on Given Setting and Given Holdings

This endpoint calculate subscription fees based on the given setting and given holdings.

path Parameters
investorId
required
integer <int64>
Request Body schema: application/json
required
object (SubscriptionConfigsDto)
required
object (SubscriptionHoldingsInfoDto)

Responses

Request samples

Content type
application/json
{
  • "configs": {
    },
  • "holdingDetails": {
    }
}

Retrieve Subscription Status by Investor ID

This endpoint retrieves the current Subscription Status for an Investor. +That is, an Investor is either a "Subscriber" that is currently in a "Subscription Fee Period" or they are not.

path Parameters
investorId
required
integer <int64>

Responses

Retrieve Subscription Details by Investor ID

This endpoint retrieves information relating to the Subscription Fee Period that the Investor is currently in (including dates and estimated fee amount).The API shall throw exception "No holding available for this period" if the investor doesn't have any cleared holdings.

path Parameters
investorId
required
integer <int64>

Responses

All Instructions

List Instructions by Investor ID

Returns a list of all transaction instructions for an existing investor.

You may request a filtered list by ‘date’, ‘instruction type’ or ‘transaction type’ to reduce the volume of data returned.

Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>
query Parameters
fromDate
required
string <date>
toDate
required
string <date>
instructionType
string
Enum: "ONE_OFF" "RECURRING"
transactionType
string
Enum: "APPLICATION" "REDEMPTION" "SWITCH" "ADJUSTMENT_UP" "ADJUSTMENT_DOWN"
tags
required
Array of strings unique

Responses

Retrieve an Instruction by Instruction ID

Retrieves the details of an instruction, including a list of the transactions that have been created by it.

Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>
instructionId
required
integer <int64>

Responses

Applications

Cancel a Recurring Instruction by Instruction ID

Use this endpoint to cancel a recurring application Instruction for an Investor.

Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>
instructionId
required
integer <int64>

Responses

Create an Application Instruction by Investor ID

Creates a new ‘application’ transaction instruction, being a request by the investor to invest in the Fund.

Application transaction instructions may apply to more than 1 investment option and may be set to recur weekly, fortnightly or monthly. Recurring transactions may be set to recur a specified number of iterations, until a particular date has passed or until cancelled.

In case of direct debit as funding source sum of all applications is capped by direct debit limit of client (50000 by default). If application sum is exceeding this limit error will be occurred, to find out the limit check with Cache. Manual funding source is uncapped

Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>
Request Body schema: application/json
funding_source
required
string
Enum: "MANUAL" "DIRECT_DEBIT"
required
Array of objects (InvestmentOptionApplicationDto)

At least one is required

object (RecurringOptionsDto)
idempotency_key
required
string
instruction_tag
string

Responses

Request samples

Content type
application/json
{
  • "funding_source": "MANUAL",
  • "investment_options": [
    ],
  • "recurring_options": {
    },
  • "idempotency_key": "string",
  • "instruction_tag": "string"
}

Retrieve Pending Recurring Instructions by Investor ID

Use this endpoint to retrieve all the recurring application instructions for an Investor.

Authorizations:
BearerAuth
query Parameters
investorId
integer <int64>

Responses

Redemptions

Retrieve a RTL Redemption Instruction by Instruction ID

Use this endpoint to retrieve the details of a 'real time redemption' instruction (including payment status and remaining payout amount).

Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>
instructionId
required
integer <int64>

Responses

Confirm RTL Redemption Payout Status by Instruction ID

Use this endpoint to update the payment status of a 'real time redemption' instruction (including the payment status of the "immediate payout" and the "remaining payout").

This endpoint is designed to be used by clients of Cache that operate their own redemption liquidity account.

Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>
instructionId
required
integer <int64>
query Parameters
rtlPaymentType
required
string
Enum: "IMMEDIATE_PAYOUT" "REMAINING_PAYOUT"

Responses

Create a Redemption Instruction by Investor ID

Use this endpoint to creates a new 'redemption' instruction, which is a request by the Investor to withdraw money from the Fund. " + "Each redemption instruction applies to one investment option only." + " "Full Redemptions" (a redemption for all the "cleared" units held by an Investor): If Full Redemption is True, then both Units and Amount must be zero." + " "Partial Redemptions" (a redemption for less than all remaining units held by an Investor): If Full Redemption is False, then either Units or Amount must be provided and the other must be zero." + " Redemptions created using this endpoint do not follow our "real time liquidity" payment flow. Note: We do not accept redemption instructions for uncleared or pending balances. " + "Investors should be advised to wait until all pending applications are cleared (ie they are no longer pending) before seeking to make a Full Redemption. " + "If an investor submits a Full Redemption while they have a "pending" application and the "pending" instruction is successful, the investor will ultimately retain a residual balance.

Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>
Request Body schema: application/json
full_redemption
required
boolean

false

units
required
number
amount
required
number
investment_option_id
required
integer <int64>
idempotency_key
required
string

Responses

Request samples

Content type
application/json
{
  • "full_redemption": true,
  • "units": 0,
  • "amount": 0,
  • "investment_option_id": 0,
  • "idempotency_key": "string"
}

Create a RTL Redemption Instruction by Investor ID

Creates a new ‘realtime redemption’ transaction instruction, being a request by the investor to withdraw money from the Fund.

Each redemption transaction instruction applies to 1 investment option.

Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>
Request Body schema: application/json
full_redemption
required
boolean

false

amount
required
number <double>
investment_option_id
required
integer <int64>
instruction_tag
string
idempotency_key
required
string

Responses

Request samples

Content type
application/json
{
  • "full_redemption": true,
  • "amount": 0,
  • "investment_option_id": 0,
  • "instruction_tag": "string",
  • "idempotency_key": "string"
}

Switches

Create a new switch

Creates a new ‘switch’ transaction instruction, being a request by the investor to move money from one investment option to another.

Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>
Request Body schema: application/json
value
boolean
investmentOption
boolean
from_investment_option_id
required
integer <int64>
to_investment_option_id
required
integer <int64>
amount
required
number
units
required
number
idempotency_key
required
string
full_switch
required
boolean
Default: false

Responses

Request samples

Content type
application/json
{
  • "value": true,
  • "investmentOption": true,
  • "from_investment_option_id": 0,
  • "to_investment_option_id": 0,
  • "amount": 0,
  • "units": 0,
  • "idempotency_key": "string",
  • "full_switch": false
}

Instruction Tags

List Instruction Tags by Instruction ID

Retrieves the tag list of an instruction by Instruction ID

Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>
instructionId
required
integer <int64>

Responses

Import

Import a Redemption Instruction by Investor ID

Use this endpoint to import a new 'redemption' instruction, being a request by the Investor to withdraw money from the Fund. Each redemption instruction applies to 1 investment option only.

Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>
Request Body schema: application/json
amount
required
number
investmentOptionId
required
integer <int64>
idempotencyKey
required
string
receivedAt
required
string <date-time>

pattern = 'yyyy-MM-dd HH:mm:ss'

Responses

Request samples

Content type
application/json
{
  • "amount": 0,
  • "investmentOptionId": 0,
  • "idempotencyKey": "string",
  • "receivedAt": "2019-08-24T14:15:22Z"
}

Import an Application Instruction by Investor ID

Imports a new ‘application’ transaction instruction, being a request by the investor to invest in the Fund.

Application transaction instructions may apply to more than 1 investment option.

Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>
Request Body schema: application/json
required
Array of objects (InvestmentOptionImportApplicationDto)

At least one is required

idempotencyKey
required
string
receivedAt
required
string <date-time>

pattern = 'yyyy-MM-dd HH:mm:ss'

instructionTag
string

Responses

Request samples

Content type
application/json
{
  • "investmentOptions": [
    ],
  • "idempotencyKey": "string",
  • "receivedAt": "2019-08-24T14:15:22Z",
  • "instructionTag": "string"
}

All Transactions

List Transactions by Transaction ID

Returns a list transactions retrieved by their IDs. The results will not include cancelled or rejected transaction instructions.

You may request a filtered list by ‘application’, ‘redemption’ or ‘switch’.

Authorizations:
BearerAuth
Request Body schema: application/json
page
integer <int32>
size
integer <int32>
sortDirection
string
Enum: "ASC" "DESC"
sortColumn
string
Enum: "id" "instructionId" "investorId" "cxiRequestNumber" "transactionType" "fundingSource" "dateCreated"

Column name to sort

ids
Array of integers <int64> unique [ items <int64 > ]

Transaction ids

Responses

Request samples

Content type
application/json
{
  • "page": 0,
  • "size": 0,
  • "sortDirection": "ASC",
  • "sortColumn": "id",
  • "ids": [
    ]
}

List Transactions by Investor ID

Returns a list of all transactions for an existing investor. This is a historic record of the actual transactions that have been processed on behalf of an investor, and will not include cancelled or rejected transaction instructions.

You may request a filtered list by ‘application’, ‘redemption’ or ‘switch’.

Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>
query Parameters
transactionType
string
Enum: "APPLICATION" "REDEMPTION" "SWITCH" "ADJUSTMENT_UP" "ADJUSTMENT_DOWN"
instructionType
string
Enum: "ONE_OFF" "RECURRING"
fromDate
required
string <date>
toDate
required
string <date>
instructionTags
required
Array of strings unique

Responses

Retrieve a Transaction by Transaction ID

Retrieves the details of a particular transaction.

Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>
transactionId
required
integer <int64>

Responses

Transaction Tags

List Transactions by Transaction Tags

Returns a list of all transactions with the transaction tags.

Authorizations:
BearerAuth
query Parameters
transactionTags
required
Array of strings unique

Responses

Fee Calculator

Calculate Fee for Investment Option

Use this API to retrieve the transaction fees that will apply to a transaction instruction.

For an application investment instruction (which may relate to multiple investment options), you can provide an array of investment options with investment amounts.

For a redemption (which only apply to a single investment option), you may provide an array of 1 investment option.

For a switch, you may provide an array of 1 investment option which relates to the option you are switching into (do not include the details of the investment option you are switching out of).

You can also provide amounts ‘inclusive’ of the transaction fee (ie the ‘gross amount’) or ‘exclusive’ of the transaction fee (ie the ‘net amount’) by selecting the appropriate ‘fee type’. Please note: this only applies to Application transaction types.

Redemption and switch transactions are always fee inclusive (fee_type parameter will be ignored for these operations).

Authorizations:
BearerAuth
Request Body schema: application/json
fee_type
required
string
Enum: "INCLUSIVE" "EXCLUSIVE"
transaction_type
required
string
Enum: "APPLICATION" "REDEMPTION" "SWITCH" "ADJUSTMENT_UP" "ADJUSTMENT_DOWN"
required
Array of objects (FeeCalculationInvestmentOptionRequest)

Responses

Request samples

Content type
application/json
{
  • "fee_type": "INCLUSIVE",
  • "transaction_type": "APPLICATION",
  • "investment_options": [
    ]
}

Sandbox Testing

Fully Fund and Unitise Transactions (SANDBOX ONLY)

This fully funded and unitisation can be done only at Sandbox.

Authorizations:
BearerAuth
Request Body schema: application/json
ids
Array of integers <int64> unique [ items <int64 > ]

Responses

Request samples

Content type
application/json
{
  • "ids": [
    ]
}

Create Daily Unit Prices (SANDBOX ONLY)

Create a daily unit price for each investment option can be done only at Sandbox environment.

Authorizations:
BearerAuth
Request Body schema: application/json
investment_option_id
integer <int64>
unit_price
number <double>
unit_price_buy
number <double>
unit_price_sell
number <double>
price_date
string <date>
price_effective_time
string

Responses

Request samples

Content type
application/json
{
  • "investment_option_id": 0,
  • "unit_price": 0,
  • "unit_price_buy": 0,
  • "unit_price_sell": 0,
  • "price_date": "2019-08-24",
  • "price_effective_time": "string"
}

Invoices

Pay Amount of Invoice by Invoice Reference Code

Update the paid amount of invoice for invoice by its reference code.

Authorizations:
BearerAuth
path Parameters
invoiceCode
required
string
Request Body schema: application/json
paidAmount
number <double>

Responses

Request samples

Content type
application/json
{
  • "paidAmount": 0
}

Retrieve Client's Invoice by Invoice Reference Code

Retrieves client's invoice details by its reference code.

Authorizations:
BearerAuth
path Parameters
invoiceCode
required
string

Responses

Retrieve Client's Invoice Summarized Total by Invoice Reference Code

Retrieves summarized total of client's invoice by its reference code.

Authorizations:
BearerAuth
path Parameters
invoiceCode
required
string

Responses

Tax Statement

Download Tax Statement

Download a pdf file of tax statement by each investor.

Authorizations:
BearerAuth
Request Body schema: application/json
report_path
required
string
saved_file_name
string

Responses

Request samples

Content type
application/json
{
  • "report_path": "string",
  • "saved_file_name": "string"
}

Retrieve the Tax Statement List by Investor ID

Retrieves available tax statement list

Authorizations:
BearerAuth
path Parameters
investorId
required
integer <int64>

Responses

Minor Account

Create a Minor type of Non-Individual Investor Account

Use this endpoint to create a Minor Account (being an Account held by a parent on behalf of their child).



For legal purposes, the Account will be held in the following name "[Parent Full Name] as guardian for [Minor Full Name]".



The Account Name, email and address will be used for the purpose of tax statements and other legal documents.



Each Minor Account must include exactly 2 Interested Parties, being:
- the Registered Holder (being the Parent); and
- the Beneficial Holder (being the Minor).



The Registered Holder must:
- Be the parent or guardian of the Beneficial Holder
- Be an individual (and will be recorded as Type = Individual)
- Have a First Name, Middle Name, Last Name, Date of Birth, Phone Number and Email Address



The Beneficial Holder must:
- Be the child of the Registered Holder
- Be an individual (and will be recorded as Type = Minor)
- Have a First Name, Middle Name, Last Name and Date of Birth

Authorizations:
BearerAuth
Request Body schema: application/json
externalAccountId
required
string
dateTimeOfRegister
required
string <date-time>

pattern = 'yyyy-MM-dd HH:mm:ss'

email
required
string
required
object (CreateMinorAddressDto)
required
Array of objects (CreateMinorAccountIndividualDto) unique

Responses

Request samples

Content type
application/json
{
  • "externalAccountId": "string",
  • "dateTimeOfRegister": "2019-08-24T14:15:22Z",
  • "email": "string",
  • "address": {
    },
  • "interestedParties": [
    ]
}

Retrieve Account Details.

Use this endpoint to retrieve the details of an existing Account.



This endpoint will retrieve the Registered Holder and Beneficial Holder for the Account.



If you would like to retrieve the details of their shareholders, directors or other stakeholders you will need to make another call for them directly.

Authorizations:
BearerAuth
path Parameters
accountId
required
integer <int64>

Responses

Account

Force update verification status of an Account

Force Update verification status of an Account

Authorizations:
BearerAuth
path Parameters
accountId
required
integer <int64>
Request Body schema: application/json
notes
required
string
verifiedBy
required
string

Responses

Request samples

Content type
application/json
{
  • "notes": "string",
  • "verifiedBy": "string"
}

Update Account DRP value

Update Distribution Reinvestment Status of Account

Authorizations:
BearerAuth
path Parameters
accountId
required
integer <int64>
investmentOptionId
required
integer <int64>
Request Body schema: application/json
drpvalue
required
number <double>

Responses

Request samples

Content type
application/json
{
  • "drpvalue": 0
}

Search an Accounts by id

Authorizations:
BearerAuth
path Parameters
accountId
required
integer <int64>

Responses

Update Account by account id

This endpoint is used to update the details of an Account.


This endpoint is not used to update the details of a Holder.


When an Account has been verified, you may not change the identity of the Stakeholders.


You may never update:

  • Account Type;
  • DateTime of Register
  • The identity of the Stakeholders.

If these details are incorrect, you will need to create a new Account.

Authorizations:
BearerAuth
path Parameters
accountId
required
integer <int64>
Request Body schema: application/json
email
string
phoneNumber
string
Array of objects (CreateAddressDto) unique
externalAccountId
string [ 0 .. 100 ] characters
tags
Array of strings unique

Responses

Request samples

Content type
application/json
{
  • "email": "string",
  • "phoneNumber": "string",
  • "addresses": [
    ],
  • "externalAccountId": "string",
  • "tags": [
    ]
}

Verify an Account by account id

This endpoint is used to trigger a manual KYB verification of an account.


It generates a ticket in our Fund Ops team to process the KYB.


KYB verifications are asynchronous and can take time.


You will be updated on the results of the KYB by webhook and/or a Help Desk ticket.

Authorizations:
BearerAuth
path Parameters
accountId
required
integer <int64>

Responses

Create an Account

Authorizations:
BearerAuth
Request Body schema: application/json
externalAccountId
string [ 0 .. 100 ] characters
nonIndividualAccountType
required
string
Enum: "INDIVIDUAL" "COMPANY" "JOINT_HOLDING" "SUPERANNUATION_FUND" "TRUST" "GOVERNMENT_ENTITY" "INCORPORATED_ASSOC" "UNINCORPORATED_ASSOC" "PARTNERSHIP" "CHARITABLE_TRUST" "SYNDICATE" "MINOR" "SMSF" "OTHER_ENTITY" "CORPORATION" "SOLE_TRADER"
email
required
string
phoneNumber
required
string
pdsReceivedInAustralia
boolean

PDS Received in Australia should be true for foreign phone numbers.

required
Array of objects (CreateAddressDto) unique
dateTimeOfRegister
required
string <date-time>

pattern = 'yyyy-MM-dd HH:mm:ss'

tags
Array of strings unique
required
Array of objects (CreateAccountStakeholderDto) unique
drpStatus
boolean

Responses

Request samples

Content type
application/json
{
  • "externalAccountId": "string",
  • "nonIndividualAccountType": "INDIVIDUAL",
  • "email": "string",
  • "phoneNumber": "string",
  • "pdsReceivedInAustralia": true,
  • "addresses": [
    ],
  • "dateTimeOfRegister": "2019-08-24T14:15:22Z",
  • "tags": [
    ],
  • "accountStakeholders": [
    ],
  • "drpStatus": true
}

Clone an Accounts by id

Bank details are optional. Cloned account shall use the bank details from the request. If no bank details are provided in the request, the System shall use the bank account details from the source account. In case, source account doesn't have any bank details and no bank details are provide in the request the account shall not have any bank details

Authorizations:
BearerAuth
path Parameters
accountId
required
integer <int64>
Request Body schema: application/json
externalAccountId
string
object (ClonedBankingDetailsDto)

Bank details are optional. Cloned account shall use the bank details from the request. If no bank details are provided in the request, the System shall use the bank account details from the source account. In case, source account doesn't have any bank details and no bank details are provide in the request the account shall not have any bank details

Responses

Request samples

Content type
application/json
{
  • "externalAccountId": "string",
  • "bankingDetails": {
    }
}

Search an Accounts

Authorizations:
BearerAuth
query Parameters
required
object (NonIndividualAccountPredicate)

Responses

Retrieve Account DRP Status

Display Distribution Reinvestment Status of Account

Authorizations:
BearerAuth
path Parameters
accountId
required
integer <int64>

Responses

Individual

Update an Individual

Authorizations:
BearerAuth
path Parameters
individualNumber
required
string
Request Body schema: application/json
email
string
phoneNumber
string
Array of objects (CreateAddressDto) unique
externalIndividualId
string
firstName
required
string^[a-zA-Zàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýż...

Letters, spaces and following characters; +@!^$&'()*-:;=?.#_,[]/\

lastName
required
string^[a-zA-Zàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýż...

Letters, spaces and following characters; +@!^$&'()*-:;=?.#_,[]/\

middleName
string^[a-zA-Zàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýż...

Letters, spaces and following characters; +@!^$&'()*-:;=?.#_,[]/\

tfn
string
status
string
Enum: "ACTIVE" "INACTIVE"
dateOfBirth
string <date>
foreignTaxResident
boolean
Array of objects (SaveForeignTaxResidentDto) unique

Responses

Request samples

Content type
application/json
{
  • "email": "string",
  • "phoneNumber": "string",
  • "addresses": [
    ],
  • "externalIndividualId": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "middleName": "string",
  • "tfn": "string",
  • "status": "ACTIVE",
  • "dateOfBirth": "2019-08-24",
  • "foreignTaxResident": true,
  • "foreignTaxResidentDetails": [
    ]
}

Verify an Individual

Authorizations:
BearerAuth
path Parameters
individualNumber
required
string

Responses

Search an Individual

Authorizations:
BearerAuth
query Parameters
required
object (IndividualsPredicate)

Responses

Create an Individual

Authorizations:
BearerAuth
Request Body schema: application/json
externalIndividualId
string
firstName
required
string^[a-zA-Zàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýż...

Letters, spaces and following characters; +@!^$&'()*-:;=?.#_,[]/\

lastName
required
string^[a-zA-Zàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýż...

Letters, spaces and following characters; +@!^$&'()*-:;=?.#_,[]/\

middleName
string^[a-zA-Zàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýż...

Letters, spaces and following characters; +@!^$&'()*-:;=?.#_,[]/\

tfn
string
dateOfBirth
string <date>
email
string
Array of objects (CreateAddressDto) unique
phoneNumber
string
foreignTaxResident
boolean
Array of objects (SaveForeignTaxResidentDto) unique

Responses

Request samples

Content type
application/json
{
  • "externalIndividualId": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "middleName": "string",
  • "tfn": "string",
  • "dateOfBirth": "2019-08-24",
  • "email": "string",
  • "addresses": [
    ],
  • "phoneNumber": "string",
  • "foreignTaxResident": true,
  • "foreignTaxResidentDetails": [
    ]
}

Company

Update a Company

Update a new ‘company’.

Authorizations:
BearerAuth
path Parameters
companyNumber
required
string
Request Body schema: application/json
email
string
phoneNumber
string
Array of objects (CreateAddressDto) unique
externalCompanyId
string
companyName
required
string
abn
string
acn
string
object (ExchangeDto)
object (ApplicationIdDto)
tfn
string

Responses

Request samples

Content type
application/json
{
  • "email": "string",
  • "phoneNumber": "string",
  • "addresses": [
    ],
  • "externalCompanyId": "string",
  • "companyName": "string",
  • "abn": "string",
  • "acn": "string",
  • "exchange": {
    },
  • "verification": {
    },
  • "tfn": "string"
}

Search a Company

Authorizations:
BearerAuth
query Parameters
required
object (CompaniesPredicate)

Responses

Create a Company

Creates a new ‘company’.

Authorizations:
BearerAuth
Request Body schema: application/json
externalCompanyId
string
companyName
required
string
acn
string[0-9]{9}
abn
string
Array of objects (CreateAddressDto) unique
object (ExchangeDto)
tfn
string
phoneNumber
string
email
string
object (ApplicationIdDto)
foreignTaxResident
boolean
Array of objects (SaveForeignTaxResidentDto) unique

Responses

Request samples

Content type
application/json
{
  • "externalCompanyId": "string",
  • "companyName": "string",
  • "acn": "string",
  • "abn": "string",
  • "addresses": [
    ],
  • "exchange": {
    },
  • "tfn": "string",
  • "phoneNumber": "string",
  • "email": "string",
  • "verification": {
    },
  • "foreignTaxResident": true,
  • "foreignTaxResidentDetails": [
    ]
}

Retrieve all Company stakeholders

Retrieve stakeholders for a Company by company number

Authorizations:
BearerAuth
path Parameters
companyNumber
required
string

Responses

Create a Company Stakeholders

Create stakeholders for a company by company number

Authorizations:
BearerAuth
path Parameters
companyNumber
required
string
Request Body schema: application/json
required
Array of objects (CreateCompanyStakeholderDto) unique

Responses

Request samples

Content type
application/json
{
  • "stakeholders": [
    ]
}

Generate ownership for a company

Generate ownership for a company, using this endpoint will call Simple KYC and hence there will be a cost associated with this

Authorizations:
BearerAuth
path Parameters
companyNumber
required
string

Responses

Search Simple KYC by company name, ABN or ACN

Search Simple KYC by company name, ABN or ACN

Authorizations:
BearerAuth
Request Body schema: application/json
companyName
string
acn
string
abn
string
valid
boolean

Responses

Request samples

Content type
application/json
{
  • "companyName": "string",
  • "acn": "string",
  • "abn": "string",
  • "valid": true
}

Remove a stakeholder of a Company by ID

Remove a stakeholder of a Company by ID

Authorizations:
BearerAuth
path Parameters
companyNumber
required
string
companyStakeholderId
required
integer <int64>

Responses

Trust

Update Trust

Update a new trust

Authorizations:
BearerAuth
path Parameters
trustNumber
required
string
Request Body schema: application/json
email
string
phoneNumber
string
Array of objects (CreateAddressDto) unique
externalTrustId
string
trustName
required
string
abn
string
tfn
string
status
string
Enum: "ACTIVE" "INACTIVE"
object (ApplicationIdDto)

Responses

Request samples

Content type
application/json
{
  • "email": "string",
  • "phoneNumber": "string",
  • "addresses": [
    ],
  • "externalTrustId": "string",
  • "trustName": "string",
  • "abn": "string",
  • "tfn": "string",
  • "status": "ACTIVE",
  • "verification": {
    }
}

Search trusts

Search trusts by search condition

Authorizations:
BearerAuth
query Parameters
required
object (TrustsPredicate)

Responses

Create a Trust

Create a new trust

Authorizations:
BearerAuth
Request Body schema: application/json
externalTrustId
string
trustName
required
string
abn
string
tfn
string
email
string
phoneNumber
string
object (ApplicationIdDto)
foreignTaxResident
boolean
Array of objects (SaveForeignTaxResidentDto) unique
Array of objects (CreateAddressDto) unique

Responses

Request samples

Content type
application/json
{
  • "externalTrustId": "string",
  • "trustName": "string",
  • "abn": "string",
  • "tfn": "string",
  • "email": "string",
  • "phoneNumber": "string",
  • "verification": {
    },
  • "foreignTaxResident": true,
  • "foreignTaxResidentDetails": [
    ],
  • "addresses": [
    ]
}

Retrieve stakeholders of a Trust

Retrieve stakeholders of a trust

Authorizations:
BearerAuth
path Parameters
trustNumber
required
string

Responses

Create a stakeholder of a Trust

Create a stakeholder of a trust

Authorizations:
BearerAuth
path Parameters
trustNumber
required
string
Request Body schema: application/json
required
Array of objects (CreateTrustStakeholderDto) unique

Responses

Request samples

Content type
application/json
{
  • "stakeholders": [
    ]
}

Remove a stakeholder of a Trust by Trust Stakeholder ID

Remove a stakeholder of a trust by ID

Authorizations:
BearerAuth
path Parameters
trustNumber
required
string
trustStakeholderId
required
integer <int64>

Responses

FixedIncome

Retrieve balance protection of an account

Retrieve fixed income balance protection of an account

Authorizations:
BearerAuth
path Parameters
accountId
required
integer <int64>

Responses

Retrieve accrual amount of an account

Retrieve fixed income balance protection of an account

Authorizations:
BearerAuth
path Parameters
accountId
required
integer <int64>

Responses

Retrieve list of account balance protection

Retrieve list of account balance protection

Authorizations:
BearerAuth
query Parameters
required
object (PageDto)

Responses

Retrieve list of account accrual

Retrieve list of account balance protection

Authorizations:
BearerAuth
query Parameters
required
object (PageDto)

Responses