Download OpenAPI specification:Download
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 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
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.
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.
apiKey | string |
apiSecret | string |
{- "apiKey": "string",
- "apiSecret": "string"
}
"jwt token"
Update the interest rate with a specified date for an investment option.
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. |
{- "investmentOptionId": 0,
- "effectiveStartDate": "2019-08-24",
- "effectiveEndDate": "2019-08-24",
- "baseRate": 0,
- "spreadRate": 0,
- "interestAmount": 0
}
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.
investmentOptionId required | integer <int64> |
fromDate | string <date> |
toDate | string <date> |
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.
investmentOptionId required | integer <int64> |
fromDate | string <date> |
toDate | string <date> |
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:
|
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:
|
|
Uncleared |
The 'Actual Balance' less the 'Cleared Balance'. | |
Pending |
The 'Requested Balance' plus the 'Uncleared Balance'. |
investmentOptionId required | integer <int64> |
logicType | string Enum: "Actual" "Cleared" "Available" "Projected" "Requested" "Uncleared" "Pending" |
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.
required | object (PageDto) |
tags required | Array of strings unique |
nonindividual | boolean Default: false |
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.
investorId required | integer <int64> |
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. |
{- "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": [
- {
- "tin": "string"
}
], - "pds_received_in_australia": true
}
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.
investorId required | integer <int64> |
replaceOp | boolean |
op required | string |
path required | string |
value required | object |
[- {
- "replaceOp": true,
- "op": "string",
- "path": "string",
- "value": { }
}
]
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.
investorId required | integer <int64> |
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.
investorId required | integer <int64> |
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.
investorId required | integer <int64> |
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.
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}+$\";
investorId required | integer <int64> |
bank_bsb required | string |
bank_account_number required | string[0-9]+ |
bank_account_name required | string^[a-zA-Zàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýż... Letters, spaces and following characters; +@!^$&'()*-:;=?.#_,[]/ |
{- "bank_bsb": "string",
- "bank_account_number": "string",
- "bank_account_name": "string"
}
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}+$\";
investorId required | integer <int64> |
bank_bsb required | string |
bank_account_number required | string[0-9]+ |
bank_account_name required | string^[a-zA-Zàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýż... Letters, spaces and following characters; +@!^$&'()*-:;=?.#_,[]/ |
{- "bank_bsb": "string",
- "bank_account_number": "string",
- "bank_account_name": "string"
}
This endpoint creates an Investor Tag for an Investor.
investorId required | integer <int64> |
tags | Array of strings unique |
{- "tags": [
- "string"
]
}
Provides historical balance of the investments currently held by an existing investor.
investorId required | integer <int64> |
fromDate required | string <date> |
toDate required | string <date> |
instructionTags required | Array of strings unique |
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:
|
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:
|
|
Uncleared |
The 'Actual Balance' less the 'Cleared Balance'. | |
Pending |
The 'Requested Balance' plus the 'Uncleared Balance'. |
investorId required | integer <int64> |
logicType | string Enum: "Actual" "Cleared" "Available" "Projected" "Requested" "Uncleared" "Pending" |
valueType | string Enum: "Value" "Cost" "Gain" |
calculationType | string Enum: "FIFO" "LIFO" "VWAP" |
isSecondVersion | boolean |
This endpoint calculate subscription fees based on the given setting and given holdings.
investorId required | integer <int64> |
required | object (SubscriptionConfigsDto) |
required | object (SubscriptionHoldingsInfoDto) |
{- "configs": {
- "enabled": true,
- "thresholdPeriodDays": 1,
- "thresholdTotalHoldings": 100,
- "waterfallCalculationsEnabled": true,
- "fundingSource": "INVESTOR_BANKING",
- "bracketConfigs": [
- {
- "rule": "TOTAL_HOLDINGS_AMOUNT",
- "priorityOrder": 0,
- "bracketMin": 0,
- "bracketMax": 1000,
- "chargeAmountFixed": 2,
- "chargeAmountPercentage": 0.02
}
], - "value": true
}, - "holdingDetails": {
- "cycleStart": "string",
- "holdings": [
- {
- "investmentOptionId": 0,
- "holdingDate": "string",
- "holdingValue": 0
}
], - "value": true
}
}
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.
investorId required | integer <int64> |
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.
investorId required | integer <int64> |
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 |
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
investorId required | integer <int64> |
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 |
{- "funding_source": "MANUAL",
- "investment_options": [
- {
- "investment_option_id": 0,
- "amount": 0
}
], - "recurring_options": {
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "cancellation_type": "MANUAL",
- "iterations_number": 0,
- "interval": "WEEKLY"
}, - "idempotency_key": "string",
- "instruction_tag": "string"
}
Use this endpoint to retrieve the details of a 'real time redemption' instruction (including payment status and remaining payout amount).
investorId required | integer <int64> |
instructionId required | integer <int64> |
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.
investorId required | integer <int64> |
instructionId required | integer <int64> |
rtlPaymentType required | string Enum: "IMMEDIATE_PAYOUT" "REMAINING_PAYOUT" |
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.
investorId required | integer <int64> |
full_redemption required | boolean false |
units required | number |
amount required | number |
investment_option_id required | integer <int64> |
idempotency_key required | string |
{- "full_redemption": true,
- "units": 0,
- "amount": 0,
- "investment_option_id": 0,
- "idempotency_key": "string"
}
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.
investorId required | integer <int64> |
full_redemption required | boolean false |
amount required | number <double> |
investment_option_id required | integer <int64> |
instruction_tag | string |
idempotency_key required | string |
{- "full_redemption": true,
- "amount": 0,
- "investment_option_id": 0,
- "instruction_tag": "string",
- "idempotency_key": "string"
}
Creates a new ‘switch’ transaction instruction, being a request by the investor to move money from one investment option to another.
investorId required | integer <int64> |
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 |
{- "value": true,
- "investmentOption": true,
- "from_investment_option_id": 0,
- "to_investment_option_id": 0,
- "amount": 0,
- "units": 0,
- "idempotency_key": "string",
- "full_switch": false
}
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.
investorId required | integer <int64> |
amount required | number |
investmentOptionId required | integer <int64> |
idempotencyKey required | string |
receivedAt required | string <date-time> pattern = 'yyyy-MM-dd HH:mm:ss' |
{- "amount": 0,
- "investmentOptionId": 0,
- "idempotencyKey": "string",
- "receivedAt": "2019-08-24T14:15:22Z"
}
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.
investorId required | integer <int64> |
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 |
{- "investmentOptions": [
- {
- "investmentOptionId": 0,
- "amount": 0
}
], - "idempotencyKey": "string",
- "receivedAt": "2019-08-24T14:15:22Z",
- "instructionTag": "string"
}
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’.
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 |
{- "page": 0,
- "size": 0,
- "sortDirection": "ASC",
- "sortColumn": "id",
- "ids": [
- 0
]
}
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’.
investorId required | integer <int64> |
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 |
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).
fee_type required | string Enum: "INCLUSIVE" "EXCLUSIVE" |
transaction_type required | string Enum: "APPLICATION" "REDEMPTION" "SWITCH" "ADJUSTMENT_UP" "ADJUSTMENT_DOWN" |
required | Array of objects (FeeCalculationInvestmentOptionRequest) |
{- "fee_type": "INCLUSIVE",
- "transaction_type": "APPLICATION",
- "investment_options": [
- {
- "investment_option_id": 0,
- "amount": 0,
- "unit": 0
}
]
}
This fully funded and unitisation can be done only at Sandbox.
ids | Array of integers <int64> unique [ items <int64 > ] |
{- "ids": [
- 0
]
}
Create a daily unit price for each investment option can be done only at Sandbox environment.
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 |
{- "investment_option_id": 0,
- "unit_price": 0,
- "unit_price_buy": 0,
- "unit_price_sell": 0,
- "price_date": "2019-08-24",
- "price_effective_time": "string"
}
Update the paid amount of invoice for invoice by its reference code.
invoiceCode required | string |
paidAmount | number <double> |
{- "paidAmount": 0
}
Download a pdf file of tax statement by each investor.
report_path required | string |
saved_file_name | string |
{- "report_path": "string",
- "saved_file_name": "string"
}
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
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 |
{- "externalAccountId": "string",
- "dateTimeOfRegister": "2019-08-24T14:15:22Z",
- "email": "string",
- "address": {
- "state": "NSW",
- "postCode": "string",
- "suburb": "string",
- "country": "string",
- "subPremise": "string",
- "streetName": "string",
- "streetNumber": "string",
- "streetType": "string",
- "unitNumber": "string",
- "postalBox": "string"
}, - "interestedParties": [
- {
- "role": "REGISTER_HOLDER",
- "address": {
- "state": "NSW",
- "postCode": "string",
- "suburb": "string",
- "country": "string",
- "subPremise": "string",
- "streetName": "string",
- "streetNumber": "string",
- "streetType": "string",
- "unitNumber": "string",
- "postalBox": "string"
}, - "firstName": "string",
- "middleName": "string",
- "lastName": "string",
- "dateOfBirth": "2019-08-24",
- "phone": "string",
- "email": "string",
- "tfn": "string",
- "individualAccountId": 0
}
]
}
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.
accountId required | integer <int64> |
Force Update verification status of an Account
accountId required | integer <int64> |
notes required | string |
verifiedBy required | string |
{- "notes": "string",
- "verifiedBy": "string"
}
Update Distribution Reinvestment Status of Account
accountId required | integer <int64> |
investmentOptionId required | integer <int64> |
drpvalue required | number <double> |
{- "drpvalue": 0
}
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:
If these details are incorrect, you will need to create a new Account.
accountId required | integer <int64> |
string | |
phoneNumber | string |
Array of objects (CreateAddressDto) unique | |
externalAccountId | string [ 0 .. 100 ] characters |
tags | Array of strings unique |
{- "email": "string",
- "phoneNumber": "string",
- "addresses": [
- {
- "state": "NSW",
- "postCode": "string",
- "pinCode": "string",
- "suburb": "string",
- "city": "string",
- "country": "string",
- "subPremise": "string",
- "streetName": "string",
- "streetNumber": "string",
- "streetType": "string",
- "unitNumber": "string",
- "postalBox": "string",
- "buildingNumber": "string",
- "locality": "string",
- "addressType": "MAIN"
}
], - "externalAccountId": "string",
- "tags": [
- "string"
]
}
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.
accountId required | integer <int64> |
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 |
{- "externalAccountId": "string",
- "nonIndividualAccountType": "INDIVIDUAL",
- "email": "string",
- "phoneNumber": "string",
- "pdsReceivedInAustralia": true,
- "addresses": [
- {
- "state": "NSW",
- "postCode": "string",
- "pinCode": "string",
- "suburb": "string",
- "city": "string",
- "country": "string",
- "subPremise": "string",
- "streetName": "string",
- "streetNumber": "string",
- "streetType": "string",
- "unitNumber": "string",
- "postalBox": "string",
- "buildingNumber": "string",
- "locality": "string",
- "addressType": "MAIN"
}
], - "dateTimeOfRegister": "2019-08-24T14:15:22Z",
- "tags": [
- "string"
], - "accountStakeholders": [
- {
- "stakeholderType": "ACCOUNT",
- "role": "REGISTER_HOLDER",
- "stakeholderNumber": "string"
}
], - "drpStatus": true
}
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
accountId required | integer <int64> |
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 |
{- "externalAccountId": "string",
- "bankingDetails": {
- "bankBsb": "string",
- "bankAccountNumber": "string",
- "bankAccountName": "string"
}
}
individualNumber required | string |
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 |
{- "email": "string",
- "phoneNumber": "string",
- "addresses": [
- {
- "state": "NSW",
- "postCode": "string",
- "pinCode": "string",
- "suburb": "string",
- "city": "string",
- "country": "string",
- "subPremise": "string",
- "streetName": "string",
- "streetNumber": "string",
- "streetType": "string",
- "unitNumber": "string",
- "postalBox": "string",
- "buildingNumber": "string",
- "locality": "string",
- "addressType": "MAIN"
}
], - "externalIndividualId": "string",
- "firstName": "string",
- "lastName": "string",
- "middleName": "string",
- "tfn": "string",
- "status": "ACTIVE",
- "dateOfBirth": "2019-08-24",
- "foreignTaxResident": true,
- "foreignTaxResidentDetails": [
- {
- "countryId": "st",
- "tin": "string"
}
]
}
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> |
string | |
Array of objects (CreateAddressDto) unique | |
phoneNumber | string |
foreignTaxResident | boolean |
Array of objects (SaveForeignTaxResidentDto) unique |
{- "externalIndividualId": "string",
- "firstName": "string",
- "lastName": "string",
- "middleName": "string",
- "tfn": "string",
- "dateOfBirth": "2019-08-24",
- "email": "string",
- "addresses": [
- {
- "state": "NSW",
- "postCode": "string",
- "pinCode": "string",
- "suburb": "string",
- "city": "string",
- "country": "string",
- "subPremise": "string",
- "streetName": "string",
- "streetNumber": "string",
- "streetType": "string",
- "unitNumber": "string",
- "postalBox": "string",
- "buildingNumber": "string",
- "locality": "string",
- "addressType": "MAIN"
}
], - "phoneNumber": "string",
- "foreignTaxResident": true,
- "foreignTaxResidentDetails": [
- {
- "countryId": "st",
- "tin": "string"
}
]
}
Update a new ‘company’.
companyNumber required | string |
string | |
phoneNumber | string |
Array of objects (CreateAddressDto) unique | |
externalCompanyId | string |
companyName required | string |
abn | string |
acn | string |
object (ExchangeDto) | |
object (ApplicationIdDto) | |
tfn | string |
{- "email": "string",
- "phoneNumber": "string",
- "addresses": [
- {
- "state": "NSW",
- "postCode": "string",
- "pinCode": "string",
- "suburb": "string",
- "city": "string",
- "country": "string",
- "subPremise": "string",
- "streetName": "string",
- "streetNumber": "string",
- "streetType": "string",
- "unitNumber": "string",
- "postalBox": "string",
- "buildingNumber": "string",
- "locality": "string",
- "addressType": "MAIN"
}
], - "externalCompanyId": "string",
- "companyName": "string",
- "abn": "string",
- "acn": "string",
- "exchange": {
- "exchangeCode": "string",
- "tickerCode": "string"
}, - "verification": {
- "verificationId": "string"
}, - "tfn": "string"
}
Creates a new ‘company’.
externalCompanyId | string |
companyName required | string |
acn | string[0-9]{9} |
abn | string |
Array of objects (CreateAddressDto) unique | |
object (ExchangeDto) | |
tfn | string |
phoneNumber | string |
string | |
object (ApplicationIdDto) | |
foreignTaxResident | boolean |
Array of objects (SaveForeignTaxResidentDto) unique |
{- "externalCompanyId": "string",
- "companyName": "string",
- "acn": "string",
- "abn": "string",
- "addresses": [
- {
- "state": "NSW",
- "postCode": "string",
- "pinCode": "string",
- "suburb": "string",
- "city": "string",
- "country": "string",
- "subPremise": "string",
- "streetName": "string",
- "streetNumber": "string",
- "streetType": "string",
- "unitNumber": "string",
- "postalBox": "string",
- "buildingNumber": "string",
- "locality": "string",
- "addressType": "MAIN"
}
], - "exchange": {
- "exchangeCode": "string",
- "tickerCode": "string"
}, - "tfn": "string",
- "phoneNumber": "string",
- "email": "string",
- "verification": {
- "verificationId": "string"
}, - "foreignTaxResident": true,
- "foreignTaxResidentDetails": [
- {
- "countryId": "st",
- "tin": "string"
}
]
}
Create stakeholders for a company by company number
companyNumber required | string |
required | Array of objects (CreateCompanyStakeholderDto) unique |
{- "stakeholders": [
- {
- "stakeholderNumber": "string",
- "stakeholderType": "ACCOUNT",
- "role": "string",
- "holding": 0
}
]
}
Search Simple KYC by company name, ABN or ACN
companyName | string |
acn | string |
abn | string |
valid | boolean |
{- "companyName": "string",
- "acn": "string",
- "abn": "string",
- "valid": true
}
Update a new trust
trustNumber required | string |
string | |
phoneNumber | string |
Array of objects (CreateAddressDto) unique | |
externalTrustId | string |
trustName required | string |
abn | string |
tfn | string |
status | string Enum: "ACTIVE" "INACTIVE" |
object (ApplicationIdDto) |
{- "email": "string",
- "phoneNumber": "string",
- "addresses": [
- {
- "state": "NSW",
- "postCode": "string",
- "pinCode": "string",
- "suburb": "string",
- "city": "string",
- "country": "string",
- "subPremise": "string",
- "streetName": "string",
- "streetNumber": "string",
- "streetType": "string",
- "unitNumber": "string",
- "postalBox": "string",
- "buildingNumber": "string",
- "locality": "string",
- "addressType": "MAIN"
}
], - "externalTrustId": "string",
- "trustName": "string",
- "abn": "string",
- "tfn": "string",
- "status": "ACTIVE",
- "verification": {
- "verificationId": "string"
}
}
Create a new trust
externalTrustId | string |
trustName required | string |
abn | string |
tfn | string |
string | |
phoneNumber | string |
object (ApplicationIdDto) | |
foreignTaxResident | boolean |
Array of objects (SaveForeignTaxResidentDto) unique | |
Array of objects (CreateAddressDto) unique |
{- "externalTrustId": "string",
- "trustName": "string",
- "abn": "string",
- "tfn": "string",
- "email": "string",
- "phoneNumber": "string",
- "verification": {
- "verificationId": "string"
}, - "foreignTaxResident": true,
- "foreignTaxResidentDetails": [
- {
- "countryId": "st",
- "tin": "string"
}
], - "addresses": [
- {
- "state": "NSW",
- "postCode": "string",
- "pinCode": "string",
- "suburb": "string",
- "city": "string",
- "country": "string",
- "subPremise": "string",
- "streetName": "string",
- "streetNumber": "string",
- "streetType": "string",
- "unitNumber": "string",
- "postalBox": "string",
- "buildingNumber": "string",
- "locality": "string",
- "addressType": "MAIN"
}
]
}
Create a stakeholder of a trust
trustNumber required | string |
required | Array of objects (CreateTrustStakeholderDto) unique |
{- "stakeholders": [
- {
- "stakeholderNumber": "string",
- "stakeholderType": "ACCOUNT",
- "role": "string",
- "holding": 0
}
]
}