FAQs
These answers are maintained in the Openmarkets knowledge base and synced into this page. Edit the article in Confluence and the change appears here on the next sync.
Australian Stock Exchange (ASX) Phases
Australian Stock Exchange (ASX) Phases
Australian Exchange Phases
Exchange phases are time periods during which different types of market activity can occur. Each market has a different sequence of exchange phases.
The following tables describe the exchange phases applicable to the Australian ITS markets. Times listed indicate the start of the exchange phase time period.
Note: Times are approximate. Please see the ASX website for more information about trading phases.
Australian Equities - Exchange: ASX
Exchange phase | Description | Time |
|---|---|---|
CLOSE | Enquiry only. | 00:00 - 07:00 (Logins enabled) |
PRE_OPEN | ITS allows: ■ Enquiry ■ Order Entry ■ Order Cancellation ■ Order Amend ■ Trade Reporting ■ Trade Cancellation The market may overlap, there is no matching of orders. | 07:00 - 10:00 |
OPEN | ITS allows: ■ Enquiry ■ Order Entry ■ Order Cancellation ■ Order Amend ■ Trade Reporting ■ Trade Cancellation Phase starts with an auction of overlapping orders then continuous matching of orders occurs. | 10:00 - 16:00 Group 1 Approx 10:00:00 Group 2 Approx 10:02:15 Group 3 Approx 10:04:30 Group 4 Approx 10:06:45 Group 5 Approx 10:09:00 Random +/- 15 secs |
PRE_CSPA | ITS allows: ■ Enquiry ■ Order Entry ■ Order Cancellation ■ Order Amend ■ Trade Reporting ■ Trade Cancellation The market may overlap, there is no matching of orders. | 16:00 - 16:10 |
CSPA | Phase starts with an auction of overlapping orders, then no trading functions allowed. | 16:10 - 16:12 |
ADJUST | ITS allows: ■ Enquiry ■ Order Cancellation ■ Order Amend (cannot improve position in market, eg cannot increase quantities or improve price) ■ Trade Reporting ■ Trade Cancellation No matching of orders occurs. | 16:12 - 16:42 |
ADJUST_ON | ITS allows: ■ Enquiry ■ Order Cancellation ■ Order Amend (cannot improve position in market, eg cannot increase quantities or improve price) ■ Trade Reporting ■ Trade Cancellation Commencement of overnight trading No matching of orders occurs. | 16:42 - 18:50 |
PURGE_ORDERS | Orders meeting the purge criteria (too far from market, day only, | 18:50 - 18:59 |
expiry, ISS changes) will be centrally inactivated. If the order is not reactivated the next day it will then be deleted from the system the following night. | ||
SYSTEM_MAINTENAN CE | Administration / system adjustment session state. | 18:59 - 19:00 |
CLOSE | Enquiry only. | 19:00 - 21:30 |
Australian Warrants - Exchange: AXW
Exchange Phase | Description | Time |
CLOSE | Enquiry only. | 00:00 - 07:00 (Logins enabled) |
PRE_OPEN | ITS allows: ■ Enquiry ■ Order Entry ■ Order Cancellation ■ Order Amend ■ Trade Reporting ■ Trade Cancellation The market may overlap, there is no matching of orders. | 07:00 - 09:50 |
OPEN | ITS allows: ■ Enquiry ■ Order Entry ■ Order Cancellation ■ Order Amend ■ Trade Reporting ■ Trade Cancellation Phase starts with an auction of overlapping orders then continuous matching of orders occurs. | 09:50 - 16:00 Open random +/- 15 secs |
PRE_CSPA | ITS allows: ■ Enquiry ■ Order Entry ■ Order Cancellation ■ Order Amend ■ Trade Reporting ■ Trade Cancellation The market may overlap, there is no matching of orders. | 16:00 - 16:10 |
CSPA | Phase starts with an auction of overlapping orders, then no trading functions allowed. | 16.10 - 16:12 |
ADJUST | ITS allows: ■ Enquiry ■ Order Cancellation ■ Order Amend (cannot improve position in market, eg cannot increase quantities or improve price) ■ Trade Reporting ■ Trade Cancellation No matching of orders occurs. | 16:12 - 17:00 |
ADJUST_ON | ITS allows: ■ Enquiry ■ Order Cancellation ■ Order Amend (cannot improve position in market, eg cannot increase quantities or improve price) ■ Trade Reporting ■ Trade Cancellation Commencement of overnight trading No matching of orders occurs. | 17:00 - 18:50 |
PURGE_ORDERS | Orders meeting the purge criteria (too far from market, day only, expiry, ISS changes) will be centrally inactivated. If the order is not reactivated the next day it will | 18:50 - 18:59 |
then be deleted from the system the following night. | ||
SYSTEM_MAINTENAN CE | Administration / system adjustment session state. | 18:59 - 19:00 |
CLOSE | Enquiry only. | 19:00 - 21:30 |
Australian Futures - Exchange: ASX24/SFE
Exchange phase | Description | Time |
OPEN | ITS allows: ■ Enquiry ■ Order Entry ■ Order Cancellation ■ Order Amend ■ Trade Reporting ■ Trade Cancellation Phase starts with an auction of overlapping orders then continuous matching of orders occurs. | 0:00 - 16:30 |
CLOSE | Enquiry only. | 16:30 - 17:00 |
OPEN | ITS allows: ■ Enquiry ■ Order Entry ■ Order Cancellation ■ Order Amend ■ Trade Reporting ■ Trade Cancellation Phase starts with an auction of overlapping orders then continuous matching of orders occurs. | 17:00 - 23:59 |
Direction of transactions in the Back Office Data API
Direction of transactions in the Back Office Data API
Holding transaction quantities are always expressed as a positive integer
To determine the direction of movement, you’ll need to inspect the transactionCode field
Related API endpoints:
/connect-data/equityholdingtransactions/v?
The transactionCode field may be used to identify whether the portfolio quantity has increased or decreased in response to a transaction. A list of possible codes is below, separated by direction.
Examples
-
“quantity”: 1000and“transactionCode”: “ADJ-INC”- This transaction increased the portfolio quantity by 1000 units.
-
“quantity”: 500and“transactionCode”: “ADJ-DEC”- This transaction decreased the portfolio quantity by 500 units.
Transaction codes
transactionCode | Description | Increase or Decrease |
|---|---|---|
ADJ-DEC | Adjustment | Decrease |
ADJ-INC | Adjustment | Increase |
ADJ-UNMAN | Unmanaged Hold Adjust | Increase |
ADJ-UNMAN-RV | Unmanaged Hold Adjust Rev | Decrease |
AFO-DEC | Adjustment for Foreign Ownership | Decrease |
ALT-DEC | Miscellaneous Allotment | Decrease |
ALT-INC | Miscellaneous Allotment | Increase |
BCC | Buy Contract - Cancl | Decrease |
BCN-DEC | Buy CNote Decrement | Decrease |
BCN-INC | Buy CNote Increment | Increase |
BON-INC | Bonus Issue Allotment | Increase |
BSP-INC | Bonus Plan Allotment | Increase |
BUY | Buy Contract - New | Increase |
BYB-DEC | Buy-back | Decrease |
CAQ-DEC | Miscellaneous Allotment | Decrease |
CBP | Closing Balance P/F | Decrease |
CB-SO-ERR | CB Scrip Out Error | Increase |
CB-SO-REQ | CB Scrip Out Request | Decrease |
CCP-OBP | CCP Opening Balance | Increase |
CCP-OUT-ERR | CCP Out Error | Increase |
CCP-OUT-REQ | CCP Out Request | Decrease |
CCP-TAK-REQ | CCP Takeover Request | Decrease |
CNA-INC | Conv Note Allot | Increase |
CNR-DEC | Convertible Note Redemption / Maturity | Decrease |
CNR-INC | Convertible Note Redemption / Maturity | Increase |
CNV-DEC | Miscellaneous Conversion | Decrease |
CNV-INC | Miscellaneous Conversion | Increase |
CSC-DEC | CHESS Sub-Register Closed | Decrease |
CS-SI-CON | CS Scrip In Confirm | Increase |
DBN | Diary Bonus | Increase |
DBN-DEC | Diary Bonus Decrement | Decrease |
DCC | Code Conversion | Increase |
DCC-DEC | Code Conversion Decrement | Decrease |
DCO | Consolidation | Increase |
DCO-DEC | Consolidate Decrement | Decrease |
DIS-INC | Distribution in Specie | Increase |
DRP-DEC | Dividend Plan Allotment | Decrease |
DRP-INC | Dividend Plan Allotment | Increase |
DRT | Rights Issue | Increase |
DRT-DEC | Rights Issue Decrement | Decrease |
DSP | Share Split | Increase |
DVM-DEC | Divestment | Decrease |
DVM-INC | Divestment | Increase |
EXB | External Buy | Increase |
EXB-REV | Ext Buy Rev | Decrease |
FIM | Fixed Int. Maturity | Decrease |
FLT-DEC | Float | Decrease |
FLT-INC | Float | Increase |
IDA-INC | Income Distribution Amount | Increase |
MER-DEC | Company Merger | Decrease |
MI-DELV | Market In Deliver | Increase |
MO-DELV | Market Out Deliver | Decrease |
MTI-PF | Manual Tfer PF In | Increase |
MTO-PF | Manual Tfer PF Out | Decrease |
MVI-PF-CON | Move In PF Confirm | Increase |
MVO-PF-ERR | Move out P/F Error | Increase |
MVO-PF-REJ | Move Out P/F Reject | Increase |
MVO-PF-REQ | Move-Out-PF-Request | Decrease |
NCN-DEC | Convertible Note Conversion | Decrease |
NCN-INC | Convertible Note Conversion | Increase |
NRE-DEC | Non-Renounceable Issue Allotment | Decrease |
NRE-INC | Non-Renounceable Issue Allotment | Increase |
OBP | Opening Balance P/F | Increase |
OBP-REV | Opening Bal P/F Rev | Decrease |
OEX-DEC | Option Exercised | Decrease |
OEX-INC | Option Exercised | Increase |
OLP-DEC | Option Lapsed | Decrease |
OPT-DEC | Option Allotment | Decrease |
OPT-INC | Option Allotment | Increase |
PAD | Pfolio Adj Decrement | Decrease |
PAD-REV | P/F Adj Decrement Rev | Increase |
PAI | Pfolio Adj Increment | Increase |
PAI-REV | P/F Adj Increment Rev | Decrease |
PCO | Position Close Out | Decrease |
PCO-REV | Position Close Out Rev | Increase |
PLC-DEC | Placement | Decrease |
PLC-INC | Placement | Increase |
PRI-INC | Priority Issue | Increase |
REC-DEC | Reconstruction | Decrease |
REC-HOLD-DEC | Reconcile Total Hold | Decrease |
REC-HOLD-INC | Reconcile Total Hold | Increase |
REC-INC | Reconstruction | Increase |
RED-DEC | Miscellaneous Redemption | Decrease |
REV-DEC | Allotment Reversal | Decrease |
REV-INC | Allotment Reversal | Increase |
RHA-DEC | Renounceable Rights Accepted | Decrease |
RHA-INC | Renounceable Rights Accepted | Increase |
RHE-INC | Rights Entitlement | Increase |
RHT-DEC | Renounceable Rights Issue Allotment | Decrease |
RHT-INC | Renounceable Rights Issue Allotment | Increase |
SCC | Sell Cntract - Cancl | Increase |
SCN-DEC | Sell CNote Decrement | Increase |
SCN-INC | Sell CNote Increment | Decrease |
SELL | Sell Contract - New | Decrease |
SI-DL-CON | Scrip In Delv Confirm | Increase |
SOA-DEC | Scheme of Arangement | Decrease |
SOA-INC | Scheme of Arangement | Increase |
SO-DL-ERR | Scrip Out Delv Error | Increase |
SO-DL-REQ | Scrip Out Delv Request | Decrease |
SPP-INC | Share Purchase Plan | Increase |
STP-INC | Share Top-up Plan | Increase |
TAKTRF | Takeover Trans Effected | Decrease |
TKA-DEC | Takeover Consideration Allotment | Decrease |
TKA-INC | Takeover Consideration Allotment | Increase |
TRI-PF-CON | Transfer In PF | Increase |
TRO-PF-ERR | Transfer Out Error | Increase |
TRO-PF-REJ | Transfer Out Reject | Increase |
TRO-PF-REQ | Transfer Out Request | Decrease |
Equity Contract Notes API – Best Practices for End-of-Day Data Retrieval
Equity Contract Notes API – Best Practices for End-of-Day Data Retrieval
The /connect-data/equitycontractnotes/v1 endpoint may be queried at any time, including intra-day. However, the completeness and accuracy of the data depend on the following considerations:
Key Timing Considerations
- Intra-day adjustments:
In some cases, such as partially filled orders and rebookings, intra-day contract notes may be adjusted.
- Automated Finalisation:
The automatic finalisation of contract notes begins at 6:00pm. The runtime for this process will vary but should not exceed 10 minutes.
- Manual adjustments:
Additional manual adjustments may be applied and finalised between 6:00pm and 7:00pm. Such adjustments are most commonly related to corporate actions.
Recommendation for End-of-Day Reconciliation
To ensure complete and reliable data, we recommend querying the API no earlier than 7:15pm, ideally between 10pm-12am. This buffer allows time for all automated and manual processes to complete, minimizing the risk of missing or incorrect entries.
All times refer to the current local time in Sydney, NSW, Australia.
Handling stock code changes (Consolidations/Splits)
Handling stock code changes (Consolidations/Splits)
Problem
Openmarkets APIs hide the complexities of connecting to multiple different systems. Occasionally though, the difference in timing between these systems will result in the data being slightly different.
This can be the case when a Stock Code is changed (which can happen for various reasons)
Sample Scenario
API Usage
-
You receive trading order updates via the OMS Streaming API
-
You check holdings levels via the Backoffice REST API
Market Scenario
-
Friday afternoon at 3:00, the ASX Stock Code on one of your orders changes from
ABCtoABCDdue to a Split -
The stock code on the Streaming API reflects the new code of
ABCDinstead ofABC(this is almost instantaneous) -
Your system now checks the Backoffice API to get the holdings for stock
ABCDand it returns an error saying that the stock code is invalid. This happens because the backoffice systems used by Openmarkets only update the stock codes once a day.
Workaround
We’re aware that this situation is not ideal from a use case point of view. We are looking at options as to how we can handle this better. In the meantime, our recommendation is to:
-
Watch for errors where the Stock Code is invalid
-
In this case, set a delay to check for holdings again the next morning
Please note, we are aware that this is not the ideal user experience, and are working with our vendors towards a solution.
How to obtain a list of all securities on an exchange?
How to obtain a list of all securities on an exchange?
You can get lists such as the ASX 100, 200 etc and their securities by visiting the System Lists endpoint in the Market Data API.
Please see endpoint documentation for more info: Market Data API
You can also get the list of ASX listed companies on the ASX website: ASX listed companies
How to setup new client secret?
How to setup new client secret?
This is a step-by-step instruction on how to add a new client secret in the Openmarkets Developer Portal.
As we are in the process of migrating users to our new infrastructure, the ability to self-manage api client keys and secrets has been disabled. During this phase, if you require a new or rotated api client secret, please contact us at apisupport@openmarkets.com.au
Instructions
-
Go to https://dev.openmarkets.com.au/ and log in using your Openmarkets credentials.
-
Once logged in, expand the sidebar navigation menu on the left, go to the Account Management section and click on Clients.
-
Select the client you want to add a secret to.
-
Click on Add new client secret.
-
Provide a description for this client secret, then click the Add client secret button.
-
After submitting, the client secret will be displayed as seen on the image below. Make sure you save a copy of it before you leave the page.
-
Now you’re set up! Your client secret is ready to use.
After adding a new client secret, make sure to save a copy of the secret. If in case the copy is missing, you may also add another client secret instead.
Idempotency Keys
Idempotency Keys
Idempotency Key API Documentation
This guide provides information about the usage and significance of the "Idempotency-Key" attribute in the headers of some of our APIs. The "Idempotency-Key" attribute is required for certain API requests to ensure idempotent behavior and prevent unintended duplicate operations. Please read this documentation carefully to understand how and why Idempotency Keys are used.
Table of Contents
1. What is Idempotency in APIs
Idempotency is a concept in API design where a given action can be performed multiple times, but the result remains the same as if it were only performed once. This means that making the same API request multiple times should have the same effect as making it just once. Idempotency is crucial for maintaining data consistency and avoiding unintended side effects.
2. Idempotency Key
The Idempotency-Key attribute is a unique identifier that you must include in the headers of certain API requests to ensure idempotent behavior. It is used to associate a specific request with a particular operation. When you include an Idempotency Key in your request, the server checks whether a request with the same key has been processed before. If it has, the server responds with the original response from the initial request. If not, the server processes the request and associates the Idempotency Key with the new operation.
3. Usage Guidelines
-
The Idempotency-Key attribute is mandatory in the headers of API requests that support idempotency. If you omit this attribute, the request will fail (400).
-
The Idempotency Key should ideally be a unique string, with UUID (Universally Unique Identifier) being a recommended choice, to guarantee uniqueness and minimize the chances of collisions.
-
Ensure that you generate a new Idempotency Key for each new request. This is necessary to avoid issues with duplicate requests.
-
If your request failed, you need to make a choice:
-
If you received a 400 with an error: there is no-need to auto-retry as you’ll get exactly the same response. You’ll need to fix the payload and POST again with a new idempotency-key
-
If you received a 500 or network issue, code for a retry using the same idempotency-key
-
4. Benefits
Using Idempotency Keys in your API requests offers several benefits:
-
Preventing Duplicate Operations: By associating a unique Idempotency Key with each request, you can ensure that duplicate requests do not result in duplicate operations or unintended side effects.
-
Reliable Retries: If a request fails or times out, you can retry it with the same Idempotency Key. This prevents the need to worry about whether the original request was successfully processed or not.
-
Consistent State: Idempotency ensures that the system's state remains consistent regardless of how many times a request is made. This is especially important for financial transactions, inventory management, and other critical operations.
5. Example
Suppose you are making a POST request to create a new resource, such as creating an order. Here's how you would include the Idempotency-Key attribute in the request header using a GUID:
POST /sampleIdempotentAPI
Headers:
Content-Type: application/json
Idempotency-Key: c0670da4-e2a7-4d8e-b2f3-fd25c33f415c
Body:
{
"sample": "Example Title",
"quantity": 2
}
6. FAQs
Q: Can I reuse Idempotency Keys for different requests?
A: No, each Idempotency Key should be used for a single request. Generating a new key for each request ensures uniqueness and prevents conflicts.
Q: How long should I retain Idempotency Keys?
A: It's recommended to retain Idempotency Keys for a reasonable period, such as until you receive a response or until you can be reasonably sure that the request has been successfully processed.
Q: Are all API requests idempotent with the Idempotency Key?
A: No, only the API requests explicitly marked as supporting idempotency in the API documentation require the Idempotency-Key attribute for ensuring idempotent behavior.
For further assistance or inquiries, please contact our support team via the Openmarkets support system at https://openmarkets.atlassian.net/servicedesk/customer/portal/7
Idempotency Keys are required for some of our APIs to ensure data integrity and consistent behavior.
Intra-Day New Account Activation
Intra-Day New Account Activation
Overview:
This article provides a detailed overview of the intra-day process for activating new accounts and making them available for trading within the same day. It explains how new account submissions are processed and added to the trading platform.
1. Submission of New Accounts
-
When an account submission is made via AO (Account Opening) API, it enters our system and undergoes a series of automated checks.
-
If your organisation and ClientID are setup for automatic processing, submissions are generally processed automatically.
2. Processing Timeframe
-
The account submission will typically take between 5-20 minutes to process, depending on factors such as data issues or validation concerns.
-
In the event of any discrepancies or issues with the data, the process might be paused for manual review by the Operations team. Once resolved, the account proceeds to the next step.
-
If there are no delays, the account will proceed to the next step.
3. Intra-Day Account Loading to Trading System (Openmarkets Trading System)
-
Once the submission has been processed in our Backoffice system, it will be added to our Trading System.
-
From the time the account is processed in the Backoffice, it will take up to 20 minutes to be added to the Trading System, depending on timing within the schedule.
4. Schedule & Availability
Once a submission is processed in the Backoffice, it is made available to be sent to the Trading System. However, it will only be added to the Trading System according to the following schedule:
-
Morning load at 07:30 AEDT
-
Intra-Day loads regularly between 09:30 and 14:45 AEDT
-
Intra-Day loads regularly between 18:45 and 23:59 AEDT
-
For submissions made outside these times, they will be picked up during the next cycle
Considerations and Exceptions
-
Your organisation must be approved for and configured for automated processing and intra-day account creation
-
Data and validation issues in the account submission may cause delays
-
Accounts are only ready for trading once cash has been loaded. For custody accounts this will generally be instant.
-
This knowledge base article has been provided as general information only and does not convey any guarantees or SLAs as to account availabilities. Please discuss with your relationship manager or the API team if you have questions around how your organisation is configured.
Is there a breakdown/description of the various exchanges and the roles they perform?
Is there a breakdown/description of the various exchanges and the roles they perform?
You can view the list and description of the various exchanges by visiting the Exchanges Information endpoint in the Market Data API.
Please see endpoint documentation for more info: Market Data API
Status and SubStatus in Account Management API
Status and SubStatus in Account Management API
This document explains the flow of status for an account management request
As the same set of status' apply to all types of Account Management requests, there may be some that are not relevant for a particular type of request
The status of an account management request reflects the progress of the request, and may be obtained using either:
Status workflow
A request may flow through several statuses during its lifetime, beginning with Pending
For example, in the case of a stock transfer request, it could progress as follows:
-
Pending
- Openmarkets transfers team have received the request -
Pending
- the request is under review -
Pending
- the team have emailed the account’s advisor or admin team, for example to request a copy of ID. -
Pending
- the reply is under review -
Pending
- the request has been conveyed to the other broker -
Pending
- the other broker has responded that one of the parcels cannot be transferred. Openmarkets transfers team will inform the account’s adviser. -
Completed
- the eligible securities have been transferred
Status list
Status | SubStatus | Description |
|---|---|---|
Pending | Received | We have received this request |
Pending | InProgress | Our team are working on this now |
Pending | Intermediary | Our team have contacted you to request something |
Pending | External | We're waiting for something from another party or process |
Completed | Done | The request has been completed |
Completed | Partial | Part of the request has been completed, our team have contacted you to advise which part could not be completed |
Completed | Cancelled | The request could not be completed |
Sample response payload
{
"results": [
{
"id": "5565d114-feb2-40f0-9771-6104bda02a1c",
"requestType": "SrnStockTransfer",
"status": "Completed",
"subStatus": "Done",
"accountNumber": "12345",
"createdAtUtc": "2025-06-04T03:00:04.8433973"
},
{
"id": "444819ea-f5b1-4578-b668-e8085f93dc40",
"requestType": "HinStockTransfer",
"status": "Completed",
"subStatus": "Done",
"accountNumber": "12345",
"createdAtUtc": "2025-05-13T13:29:40.6089124"
}
],
"metadata": {
"links": {
"self": "/v1/accounts/requests?Limit=10&Offset=0",
"next": "/v1/accounts/requests?Limit=10&Offset=10",
"previous": null
},
"limit": 10,
"offset": 0,
"total": 30
}
}
Step-by-Step Guide to Obtaining Auth Token
Step-by-Step Guide to Obtaining Auth Token
To obtain an authentication token, follow these detailed steps:
Endpoint
-
URL:
https://stage-identity.openmarkets.com.au/connect/token -
Method: POST
-
Auth Type: Basic Auth
Authorization
-
Username: Your
clientID -
Password: Your
clientSecret
Request Body
The request body must be in x-www-form-urlencoded format and include the following parameters:
-
grant_type:
client_credentials -
scope: The desired API scope (e.g.,
accounts-submissions)
Request Example
Here's an example of how to structure the request:
Request Headers
Authorization: Basic base64(clientID:clientSecret)
Content-Type: application/x-www-form-urlencoded
Request Body
grant_type=client_credentials&scope=your_api_scope
Example Request Using cURL
curl -X POST https://stage-identity.openmarkets.com.au/connect/token \
-H "Authorization: Basic <base64_encoded_clientID:clientSecret>" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials&scope=your_api_scope"
Replace <base64_encoded_clientID:clientSecret> with the Base64 encoded string of your clientID and clientSecret.
Using Postman
-
Open Postman: Download and install Postman if you haven’t already.
-
Create a New Request:
-
Click on the New button.
-
Select Request.
-
Name your request (e.g., "Get Auth Token") and select or create a collection to save it.
-
-
Configure the Request:
-
URL:
https://stage-identity.openmarkets.com.au/connect/token -
Method: POST
-
Authorization:
-
Go to the Authorization tab.
-
Select Basic Auth from the Type dropdown.
-
Enter your
clientIDas the Username. -
Enter your
clientSecretas the Password.
-
-
Headers:
-
Go to the Headers tab.
-
Ensure the Content-Type header is set to
application/x-www-form-urlencoded. If not, add it manually.
-
-
Body:
-
Go to the Body tab.
-
Select the x-www-form-urlencoded option.
-
Add the following key-value pairs:
-
Key:
grant_type, Value:client_credentials -
Key:
scope, Value:your_api_scope(replaceyour_api_scopewith the actual scope you need)
-
-
-
-
Send the Request: Click the Send button.
-
View the Response: In the Body tab of the response section, you will see the JSON response containing your
access_token.
Response
If the request is successful, you will receive a response containing the bearer token. Here's an example of the response:
{
"access_token": "your_bearer_token",
"expires_in": 3600,
"token_type": "Bearer"
}
Usage
Use the access_token received in the response for authenticating your API calls. Include it in the Authorization header as a Bearer token.
Example API Call Using the Token
curl -X GET https://your-api-endpoint \
-H "Authorization: Bearer your_bearer_token"
Summary
-
Send a POST request to
https://stage-identity.openmarkets.com.au/connect/token. -
Use Basic Auth with your
clientIDas the username andclientSecretas the password. -
Include
grant_type=client_credentialsandscope=your_api_scopein the request body (inx-www-form-urlencodedformat). -
Obtain the
access_tokenfrom the response. -
Use the
access_tokenas a Bearer token in your API calls.
This process will authenticate your requests and allow you to interact with the desired API scope securely.
Trading Sessions
Trading Sessions
Trading sessions are generic session states combining security trade statuses and exchange phases.
Trade Session | Exchange | Security Status | Exchange Phase |
PREOPEN | AOM |
| PRE_OPEN |
| ASX | J - After hours adjust | PRE_OPEN |
| AXF |
| PRE_OPEN |
| AXQ | J - After hours adjust |
|
| AXW | J - After hours adjust | PRE_OPEN |
| HK |
| BLOCKING |
| NZ | P - Pre-open | PREOPEN |
| NZU |
| PREOPEN |
OSPA | ASX | G - Opening Single Price Auction | OSPA |
| AFX | G - Opening Single Price Auction | OSPA |
| AXQ | G - Opening Single Price Auction | OSPA |
| AXW | G - Opening Single Price Auction | OSPA |
OPEN | AOM |
| LATE_TRADING |
| ASX | X - Market on Close | OPEN |
| AXF | X - Market on Close | LATE_TRADING |
| AXQ | X - Market on Close | OPEN_QUOTE-DISPLAY |
| AXW | X - Market on Close | OPEN |
| HK |
| OPEN |
| NZ |
| OPEN |
| NZF |
| OPEN |
| NZU |
| OPEN |
| SFD |
| OPEN |
| SFE |
| OPEN |
| SFT |
| OPEN |
PRECLOSE | ASX | A - Adjust | ADJUST |
| AXQ | A - Adjust | ADJUST |
| AXW | A - Adjust | ADJUST |
| HK |
| EXCH_INT |
| NZ | A - Adjust | ADJUST |
| NZU |
| ADJUST |
CLOSED | AOM |
| CLOSE |
| ASX | A - Adjust | ADJUST_ON |
| AXF |
| CLOSE |
| AXQ | A - Adjust | CLOSE |
| AXW | A - Adjust | ADJUST_ON |
| HK |
| CLOSE |
| NZ | E - Enquiry | CLOSED |
| NZF |
| CLOSED |
| NZU |
| CLOSED |
| SFD | C - Closed | CLOSED |
| SFE | C - Closed |
|
| SFT |
| CLOSED |
HALTED | ASX | H - Trading halt |
|
| AXQ | H - Trading halt |
|
| AXW | H - Trading halt |
|
| NZ | H - Trading halted |
|
| SFD | H - Halted |
|
| SFE | H - Halted |
|
N/A * | ASX | F - Fast market |
|
| AXQ | F - Fast market |
|
| AXW | F - Fast market |
|
- The N/A trade session is used for miscellaneous security statuses. For securities with these statuses, any limits for the current exchange phase are applied.
Trust types in the Account Opening API
Trust types in the Account Opening API
When applying for a trading account on behalf of a trust, it is necessary to specify the trust type. Please review the below documentation to ensure these types are accurately represented.
What is a trust?
A trust is an entity which has trustees, assets, and beneficiaries. The trust is the legal vehicle which allows a trustee to hold assets on behalf of the beneficiaries.
Identifying the trust type
If an ABN has been registered for the trust, the trust type may be identifiable at ABN Lookup. The Australian Business Register also maintains a list of Entity Types, and a bulk extract of ABNs which includes the entity type of each entry.
Without an ABN, the type can be identified within the trust deed or equivalent governing document.
Supported trust types
The account opening API records the following trust types under data.trust.trustType. Please note that:
-
The entity types listed are a representative sample rather than a comprehensive list.
-
Some types may require a comprehensive document review by Openmarkets, prior to submitting an application.
-
Please contact your Relationship Manager to discuss which types are supported under your agreement with Openmarkets.
SelfManagedSuperannuationFund
-
Definition: A private super fund that is managed by its own members, for the sole purpose of providing retirement benefits to the members.
-
Regulated: Yes. The regulator for SMSFs is the Australian Taxation Office.
-
Entity types include: SMSF.
OtherRegulatedTrust
-
Definition: Any trust, other than a self-managed superannuation fund, which is subject to oversight from an Australian statutory regulator.
-
Regulated: Yes.
-
Entity types include: Government superannuation fund, APRA-regulated superannuation fund, pooled superannuation fund, registered or unregistered managed investment scheme, approved deposit fund.
BareTrust
-
Definition: A simple trust where the trustee's duties end at holding the assets, then conveying those assets to the beneficiary when instructed.
-
Regulated: No.
-
Entity types include: Bare trust, nominee trust, custodian trust, debt installment trust, passive trust, asset acquisition trust.
DiscretionaryTrust
-
Definition: Any trust in which the trustee/s have discretion over how to distribute the trust's income.
-
Regulated: No.
-
Entity types include: Family trust, discretionary trading trust, discretionary investment trust.
FixedTrust
-
Definition: A trust where the beneficiaries' entitlements to income and capital from the trust are fixed, rather than variable.
-
Regulated: No.
-
Entity types include: Fixed trust, government fixed trust.
UnitTrust
-
Definition: Any trust where the trust assets are portioned into shares (units) and a specific number of shares is issued to each beneficiary (unit holder.)
-
Regulated: No.
-
Entity types include: Corporate unit trust, public unit trust.
OtherTrustType
-
Definition: Any unregulated trust which does not fall under the above categories.
-
Regulated: No.
-
Entity types include: Testamentary trusts, executorial trusts, charitable trusts.
What are the different available values for order destinations, pricing Instructions and lifetimes?
What are the different available values for order destinations, pricing Instructions and lifetimes?
You can get the list of all available destinations, lifetimes and pricing instructions combinations by calling to the destination's endpoint in the OMS API.
Please see endpoint documentation for more info: OMS API Destinations
What are the different Last Actions (LastAction)?
What are the different Last Actions (LastAction)?
Values | Description |
|---|---|
CREATE | Create order |
AMEND | Amend order (e.g. volume, price) |
CANCEL | Cancel order (will become inactive) |
PURGE | Cancelled by exchange (e.g. ASX when expired at 6:45PM) |
What are the different Order Action Statuses (ActionStatus)?
What are the different Order Action Statuses (ActionStatus)?
Values | Description |
|---|---|
PENDING | Action hasn’t been performed yet |
OK | Action was successfully performed |
FAILED | Action failed |
AUTHORISING | Action awaiting trading desk to authorise for example |
DENIED | Action denied (not authorised) by trading desk for example |
QUEUED | Action has been registered but queued for processing |
What are the different Order States (OrderState)?
What are the different Order States (OrderState)?
Values | Description |
|---|---|
ACTIVE | Order can be amended / cancelled. |
INACTIVE | Order cannot be amended / cancelled, no more actions can be performed against it. |
What are the valid values for Basis of Quotation?
What are the valid values for Basis of Quotation?
Code Description:
-
CL - Call Due
-
CP - Call Paid
-
CT - Conditional Trading
-
CB - Cum Bonus Issue
-
XB - Ex Bonus Issue
-
CC - Cum Capital Return
-
XC - Ex Capital Return
-
CD - Cum Dividend
-
XD - Ex Dividend
-
CE - Cum Entitlement
-
XE - Ex Entitlement
-
CQ - Cum Equal Access Scheme
-
XQ - Ex Equal Access Scheme
-
CI - Cum Interest
-
XI - Ex Interest
-
CZ - Cum Priority
-
XZ - Ex Priority
-
CR - Cum Rights Issue
-
XR - Ex Rights Issue
-
CF - Cum Takeover Offer
-
XF - Ex Takeover Offer
-
NX - New - Ex Interest
-
PA - Protection Available
-
PU - Protection Unavailable
-
RE - Reconstructed
What are the valid values for Company Reporting code?
What are the valid values for Company Reporting code?
Reporting code is either Blank when not reporting or 'R' when reporting.
What is the Client Management API?
What is the Client Management API?
The Client Management API is used to create new trading accounts. Once the account creation is complete, an account code will be associated with it which can then be used to create orders in the OMS API.
What rate limits apply to the APIs?
What rate limits apply to the APIs?
Openmarkets APIs have rate limits in place to ensure reliability and protect from improper usage
What is rate limiting in the context of APIs?
Rate limiting is a mechanism implemented to control the number of requests a user or client can make to an API within a specified time period. It helps prevent abuse, ensures fair usage, and maintains the overall performance and availability of the API.
Why is rate limiting important?
Rate limiting is crucial for several reasons. It prevents excessive usage that could lead to server overload. It also safeguards against potential security threats and ensures a consistent and reliable experience for all users.
What are the rate limits applied to Openmarkets APIs?
This depends on the individual API.
We’ve listed the general guidelines below. Some endpoints will have more specific rate limits per endpoint. You’ll find these in the developer docs.
Authentication API
- 50 requests for tokens per 5 minutes
Order Management APIs (REST)
-
50 active requests at a time - A request is active between the time we receive it and the time we send a response or while an update subscription is active.
-
30 calls - of any kind per second.
-
10000 updates queued - between update subscription calls. If encountered, it is recommended to either increase the frequency of subscription calls or split the request in multiple ones.
-
Test Environment Only30000 requests per day - for Market Data API. -
Test Environment Only10000 requests per day - for News API.
Backoffice APIs (REST)
-
1 request per minute
-
Openmarkets recommend one call per 5 minutes
-
We recommend limiting your query by your adviser code and today's date for the API endpoints that support it
Account Opening API
-
Create Account Opening Submissions: 2 requests per second.
- This limit is in place due to the encryption of content to ensure the security and performance of the API.
-
Get Account Opening Submissions: 100 requests per second.
-
Get Accounts: 5 requests per second.
-
Stock Transfers: 5 requests per second.
Which roles are supported / required for which account types?
Which roles are supported / required for which account types?
# | At least one must be provided in array |
O | Allowed for this Account Type |
C | Additional Contacts for the account |
Roles \ Account Types | Individual | Joint | Company | CompanyTrust | CompanySuperannuation | IndividualTrust | IndividualSuperannuation | |
Applicant Roles | Min/Max applicant individuals | 1 / 1 | 2 / 3 | 1 / 4 | 1 / 4 | 1 / 4 | 1 / 4 | 2 / 4 |
Beneficiary | # | O | # | O | ||||
BeneficialOwner | # | # | # | |||||
Contributor | O | O | ||||||
Director | # | # | # | |||||
Owner | # | # | # | # | ||||
TrustSettlor | # (unless <$10k) | # (unless <$10k) | ||||||
Contact Roles | Min/Max contact individuals | 0 / 9 | 0 / 8 | 0 / 9 | 0 / 9 | 0 / 9 | 0 / 9 | 0 / 8 |
Other | C | C | C | C | C | C | C | |
PowerOfAttorney | C | C | ||||||
EnduringPowerOfAttorney | C | C | C | C | C | C | C | |
LimitedPowerOfAttorney | C | C | C | C | C | C | C | |
TrustAppointerProtector | C | C | ||||||
TrustContributor | C | C | ||||||
TrustExecutor | C | C | ||||||
SuperSettlor | C | C | ||||||
Accountant | C | C | C | C | C | C | C | |
AuthorisedAgent | C | C | C | C | C | C | C | |
AuthorisedSignatory | C | C | C | |||||
Chairperson | C | C | C | |||||
ExecutorAdministrator | C | C | ||||||
Secretary | C | C | C | |||||
Solicitor | C | C | C | C | C | C | C | |
Treasurer | C | C | C | |||||
Trustee | C | C | ||||||
Minor | C | C (isMinor) |
Why do dividend discrepancies occur for foreign dividends?
Why do dividend discrepancies occur for foreign dividends?
Dividend discrepancies for foreign dividends can arise due to various reasons:
-
Currency Conversion: Different methods of converting foreign currency into the local currency can lead to discrepancies in reported dividend amounts. Investors can verify currency conversion rates from reliable sources like the Australian Securities Exchange (ASX).
-
Taxes: Withholding taxes imposed by the company's country or tax treaties between countries can affect the final dividend amount received by investors.
-
Reporting Differences: Variations in reporting practices between companies and data providers may result in differences in the reported dividend amounts.
Still stuck?
Raise a request with API Support and include the request you made, the response you received, and the time it happened.
Contact API Support

