Skip to content

Broker API — HK

⚠️ Generated file — do not edit. Regenerate with python tools/webull-docgen/docgen.py <target> (reference, master, reconciliation or all).

Institutional Broker API for Hong Kong. Uses the DoBroker transport. The HK sandbox returns 401 ROUTE_NOT_PERMITTED (missing app scope).

<- Webull API Reference

Create Virtual Account

POST /broker/accounts/virtual-accounts/create

Creates a Virtual Account for a new customer.

SDK broker.CreateVirtualAccount
Reference broker-account-create.md

Request body

Field Type Required Description
client_request_id string yes Client Request ID, unique for each request. Maximum length is 32 characters. Allowed characters: letters (A–Z, a–z), digits (0–9), hyphen (-), underscore (_).
belong_account_id string yes Belonging Account ID, the master account under which the VA account is created
external_account_number string The account number of the end customer in your own system, used as the client-defined segment of the virtual account number. The final account_number is composed as: V + Entity Code + this value, where the Entity Code is assigned by Webull during onboarding. Example: Entity Code ABCD + 10000001 → VABCD10000001. • Length: 1-10 characters. • Allowed characters: ASCII digits (0-9), English letters (a-z, A-Z), hyphen (-) and underscore (_). • Case-sensitive: ab123 and AB123 are treated as different accounts. • Leading zeros are significant: 00123 and 123 are different accounts. • No sequential or other format requirement beyond the above — any value is accepted as long as it is unique within your entity (which makes the composed account_number globally unique). • Immutable after account creation. • If omitted, the account number is generated by the system. The composed account_number is used consistently across order placement (FIX Tag 1), queries, and SOD reconciliation files.
account_type string yes Account Type CASH: Cash Account MARGIN: Margin Account — one of: CASH, MARGIN
trading_permissions array yes Trading Permissions for the VA account, list of permission codes
option_level string The option level must be less than or equal to the option level of the master account.When the trading_permissions contains US_OPTION_NORMAL, it needs to be filled in — one of: LV1, LV2, LV3, LV4
commission_code string Commission Code for the VA account, determining the commission structure.The specific value of the Commission Code needs to be confirmed with the Webull business team, as it determines how commissions will be charged. — one of: COMMISSION_GROUP_1, COMMISSION_GROUP_2, COMMISSION_GROUP_3, COMMISSION_GROUP_4, COMMISSION_GROUP_5
w8ben_info object W-8BEN Information,When trading U.S. stocks in the account, this information needs to be supplemented.
china_connect_investor_info object China Connect Investor Information,This information only needs to be supplemented when trading Chinese A-shares.

Nested — w8ben_info:

Field Type Required Description
treaty_country string yes Country of Treaty, using ISO 3166-1 alpha-2 format
tax_id string yes Tax Identification Number
sign_date string yes W-8BEN Form Sign Date, format: YYYY-MM-DD
first_name string yes First Name of the account holder
last_name string yes Last Name of the account holder
middle_name string Middle Name of the account holder
home_address object yes W-8BEN Address Information
mail_address object yes W-8BEN Address Information

Nested — home_address:

Field Type Required Description
country string yes Country, using ISO 3166-1 alpha-2 format
state string yes State or Province
city string yes City
street_address string yes Street Address
postal_code string yes Postal Code

Nested — mail_address:

Field Type Required Description
country string yes Country, using ISO 3166-1 alpha-2 format
state string yes State or Province
city string yes City
street_address string yes Street Address
postal_code string yes Postal Code

Nested — china_connect_investor_info:

Field Type Required Description
first_name string yes First Name
last_name string yes Last Name
middle_name string Middle Name
id_type string yes ID Type ID_CARD: Identification Card PASSPORT: Passport CERT_INCORP: Certificate of Incorporation LEI: Legal Entity Identifier OTHER_OFFICIAL_ID_DOC: Other Official ID Document — one of: ID_CARD, PASSPORT, CERT_INCORP, LEI, OTHER_OFFICIAL_ID_DOC
id_number string yes ID Number
country_of_issuance string yes Country of Issuance, using ISO 3166-1 alpha-2 format

Response 200

Field Type Required Description
client_request_id string yes Create VA Account Request ID
account_number string yes Account Number
account_id string yes Account ID
account_status string yes Account Status CREATED - Account is created but not yet active ACTIVE - Account is active and operational SUSPENDED - Account temporarily suspended RESTRICTED - Account restricted, limited operations FROZEN - Account frozen due to compliance or risk CLOSED - Account permanently closed — one of: CREATED, ACTIVE, SUSPENDED, RESTRICTED, FROZEN, CLOSED

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Update Virtual Account

POST /broker/accounts/virtual-accounts/update

Updates Virtual Account information for an existing virtual account.

SDK broker.UpdateVirtualAccount
Reference broker-account-update.md

Request body

Field Type Required Description
client_request_id string yes Client Request ID, unique for each request. Maximum length is 32 characters. Allowed characters: letters (A–Z, a–z), digits (0–9), hyphen (-), underscore (_).
account_id string yes VA Account ID to be updated
trading_permissions array Trading Permissions for the VA account, list of permission codes
option_level string The option level must be less than or equal to the option level of the master account.When the trading_permissions contains US_OPTION_NORMAL, it needs to be filled in — one of: LV1, LV2, LV3, LV4
commission_code string Commission Code for the VA account, determining the commission structure
w8ben_info object W-8BEN Information,When trading U.S. stocks in the account, this information needs to be supplemented.
china_connect_investor_info object China Connect Investor Information,This information only needs to be supplemented when trading Chinese A-shares.

Nested — w8ben_info:

Field Type Required Description
treaty_country string yes Country of Treaty, using ISO 3166-1 alpha-2 format
tax_id string yes Tax Identification Number
sign_date string yes W-8BEN Form Sign Date, format: YYYY-MM-DD
first_name string yes First Name of the account holder
last_name string yes Last Name of the account holder
middle_name string Middle Name of the account holder
home_address object W-8BEN Address Information
mail_address object W-8BEN Address Information

Nested — home_address:

Field Type Required Description
country string yes Country, using ISO 3166-1 alpha-2 format
state string yes State or Province
city string yes City
street_address string yes Street Address
postal_code string yes Postal Code

Nested — mail_address:

Field Type Required Description
country string yes Country, using ISO 3166-1 alpha-2 format
state string yes State or Province
city string yes City
street_address string yes Street Address
postal_code string yes Postal Code

Nested — china_connect_investor_info:

Field Type Required Description
first_name string yes First Name
last_name string yes Last Name
middle_name string Middle Name
id_type string yes ID Type ID_CARD: Identification Card PASSPORT: Passport CERT_INCORP: Certificate of Incorporation LEI: Legal Entity Identifier OTHER_OFFICIAL_ID_DOC: Other Official ID Document — one of: ID_CARD, PASSPORT, CERT_INCORP, LEI, OTHER_OFFICIAL_ID_DOC
id_number string yes ID Number
country_of_issuance string yes Country of Issuance, using ISO 3166-1 alpha-2 format

Response 200

Field Type Required Description
client_request_id string yes Create VA Account Request ID
account_number string yes Account Number
account_id string yes Account ID
account_status string yes Account Status CREATED - Account is created but not yet active ACTIVE - Account is active and operational SUSPENDED - Account temporarily suspended RESTRICTED - Account restricted, limited operations FROZEN - Account frozen due to compliance or risk CLOSED - Account permanently closed — one of: CREATED, ACTIVE, SUSPENDED, RESTRICTED, FROZEN, CLOSED

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Get Virtual Account Detail

GET /broker/accounts/virtual-accounts/get

Retrieves detailed information for a specific virtual account.

SDK broker.GetVirtualAccount
Reference broker-account-detail.md

Request — parameters

Name In Type Required Description
account_id query String yes Virtual Account ID to retrieve details for.

Response 200

Field Type Required Description
belong_account_number string yes Belonging Account Number, the master account belong to
belong_account_id string yes Belonging Account ID, the master account belong to
account_number string yes Account Number
account_id string yes Account ID
account_type string yes Account Type CASH: Cash Account MARGIN: Margin Account — one of: CASH, MARGIN
account_status string yes Account Status CREATED - Account is created but not yet active ACTIVE - Account is active and operational SUSPENDED - Account temporarily suspended RESTRICTED - Account restricted, limited operations FROZEN - Account frozen due to compliance or risk CLOSED - Account permanently closed — one of: CREATED, ACTIVE, SUSPENDED, RESTRICTED, FROZEN, CLOSED
trading_permissions array yes Trading Permissions
option_level string The option level must be less than or equal to the option level of the master account.When the trading_permissions contains US_OPTION_NORMAL, it needs to be filled in — one of: LV1, LV2, LV3, LV4
commission_code string Commission Code
w8ben_info object W-8BEN Information,When trading U.S. stocks in the account, this information needs to be supplemented.
china_connect_investor_info object China Connect Investor Information,This information only needs to be supplemented when trading Chinese A-shares.

Nested — w8ben_info:

Field Type Required Description
treaty_country string yes Country of Treaty, using ISO 3166-1 alpha-2 format
tax_id string yes Tax Identification Number
sign_date string yes W-8BEN Form Sign Date, format: YYYY-MM-DD
first_name string yes First Name of the account holder
last_name string yes Last Name of the account holder
middle_name string Middle Name of the account holder
home_address object yes W-8BEN Address Information
mail_address object W-8BEN Address Information

Nested — home_address:

Field Type Required Description
country string yes Country, using ISO 3166-1 alpha-2 format
state string yes State or Province
city string yes City
street_address string yes Street Address
postal_code string yes Postal Code

Nested — mail_address:

Field Type Required Description
country string yes Country, using ISO 3166-1 alpha-2 format
state string yes State or Province
city string yes City
street_address string yes Street Address
postal_code string yes Postal Code

Nested — china_connect_investor_info:

Field Type Required Description
first_name string yes First Name
last_name string yes Last Name
middle_name string Middle Name
id_type string yes ID Type ID_CARD: Identification Card PASSPORT: Passport CERT_INCORP: Certificate of Incorporation LEI: Legal Entity Identifier OTHER_OFFICIAL_ID_DOC: Other Official ID Document — one of: ID_CARD, PASSPORT, CERT_INCORP, LEI, OTHER_OFFICIAL_ID_DOC
id_number string yes ID Number
country_of_issuance string yes Country of Issuance, using ISO 3166-1 alpha-2 format

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

List Virtual Accounts

GET /broker/accounts/virtual-accounts/list

Retrieves a paginated list of Virtual Accounts.

SDK broker.ListVirtualAccounts
Reference broker-account-list.md

Request — parameters

Name In Type Required Description
start_time query String Inclusive start time for the query. formats: yyyy-MM-dd'T'HH:mm:ss.SSSZ
end_time query String Inclusive end time for the query, formats: yyyy-MM-dd'T'HH:mm:ss.SSSZ
pagination_key query String Pagination key from previous response for next page.

Response 200

Field Type Required Description
data array Result data list
pagination_key string Pagination key for next page. If absent, indicates this is the last page.

Nested — data:

Field Type Required Description
belong_account_number string yes Belonging Account Number, the master account belong to
belong_account_id string yes Belonging Account ID, the master account belong to
account_number string yes Account Number
account_id string yes Account ID
account_type string yes Account Type CASH: Cash Account MARGIN: Margin Account — one of: CASH, MARGIN
account_status string yes Account Status CREATED - Account is created but not yet active ACTIVE - Account is active and operational SUSPENDED - Account temporarily suspended RESTRICTED - Account restricted, limited operations FROZEN - Account frozen due to compliance or risk CLOSED - Account permanently closed — one of: CREATED, ACTIVE, SUSPENDED, RESTRICTED, FROZEN, CLOSED
trading_permissions array yes Trading Permissions
option_level string The option level must be less than or equal to the option level of the master account.When the trading_permissions contains US_OPTION_NORMAL, it needs to be filled in — one of: LV1, LV2, LV3, LV4
commission_code string Commission Code
w8ben_info object W-8BEN Information,When trading U.S. stocks in the account, this information needs to be supplemented.
china_connect_investor_info object China Connect Investor Information,This information only needs to be supplemented when trading Chinese A-shares.

Nested — w8ben_info:

Field Type Required Description
treaty_country string yes Country of Treaty, using ISO 3166-1 alpha-2 format
tax_id string yes Tax Identification Number
sign_date string yes W-8BEN Form Sign Date, format: YYYY-MM-DD
first_name string yes First Name of the account holder
last_name string yes Last Name of the account holder
middle_name string Middle Name of the account holder
home_address object yes W-8BEN Address Information
mail_address object W-8BEN Address Information

Nested — home_address:

Field Type Required Description
country string yes Country, using ISO 3166-1 alpha-2 format
state string yes State or Province
city string yes City
street_address string yes Street Address
postal_code string yes Postal Code

Nested — mail_address:

Field Type Required Description
country string yes Country, using ISO 3166-1 alpha-2 format
state string yes State or Province
city string yes City
street_address string yes Street Address
postal_code string yes Postal Code

Nested — china_connect_investor_info:

Field Type Required Description
first_name string yes First Name
last_name string yes Last Name
middle_name string Middle Name
id_type string yes ID Type ID_CARD: Identification Card PASSPORT: Passport CERT_INCORP: Certificate of Incorporation LEI: Legal Entity Identifier OTHER_OFFICIAL_ID_DOC: Other Official ID Document — one of: ID_CARD, PASSPORT, CERT_INCORP, LEI, OTHER_OFFICIAL_ID_DOC
id_number string yes ID Number
country_of_issuance string yes Country of Issuance, using ISO 3166-1 alpha-2 format

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Get Stock Instrument

GET /broker/instruments/stocks/profiles/list

Retrieves detail information of instruments associated to customer's account.

SDK broker.GetStockInstruments
Reference broker-instrument-list.md

Request — parameters

Name In Type Required Description
category query string yes Security type. — one of: US_STOCK, HK_STOCK, CN_STOCK
symbols query string List of security symbols, maximum 100 symbols per query.
status query string Tradable status: OC (Tradable), CO (Liquidate only), NT (Non-Tradable) — one of: OC, CO, NT
sub_category query string Sub-category of the instrument. Only effective when symbols is not specified. When category = US_STOCK, supported values: COMMON_STOCK, ETF, PREFERRED_STOCK, WARRANT, UNITS, RIGHT. When category = HK_STOCK, CN_STOCK, supported values: COMMON_STOCK, ETF. If not specified, returns all sub-categories. — one of: COMMON_STOCK, ETF, PREFERRED_STOCK, WARRANT, UNITS, RIGHT
pagination_key query string Pagination key from previous response for next page

Response 200

Field Type Required Description
data array Result data list
pagination_key string Pagination key for next page. If absent, indicates this is the last page.

Nested — data:

Field Type Required Description
name string Symbol name, e.g. Apple
instrument_id string Unique identifier of the security
exchange_code string Exchange code, e.g. CCC
category string Instrument Stock Category US_STOCK - US stock, HK_STOCK - HK stock, CN_STOCK - China A share — one of: US_STOCK, HK_STOCK, CN_STOCK
symbol string Symbol of the instrument
status string Tradable Status OC - Tradable: Security is available for trading CO - Liquidate only: Security can only be sold, no purchases allowed NT - Non-Tradable: Security cannot be traded — one of: OC, CO, NT
shortable boolean Instrument is shortable or not
fractionable boolean Instrument is fractionable or not
marginable boolean Instrument is marginable or not
overnight_trading_supported boolean Instrument support overnight trading or not
margin_requirement_long string Margin requirement ratio for long position
margin_requirement_short string Margin requirement ratio for short position
intraday_margin_long string Intraday margin requirement ratio for long position
intraday_margin_short string Intraday margin requirement ratio for short position
maintenance_margin_long string Maintenance margin requirement ratio for long position
maintenance_margin_short string Maintenance margin requirement ratio for short position
easy_to_borrow boolean Instrument is easy to borrow or not
lot_size string Lot size
currency string currency
sub_category string Sub-category of the instrument. — one of: COMMON_STOCK, ETF, PREFERRED_STOCK, WARRANT, UNITS, RIGHT
etf_leveraged_flag string Is Leveraged ETF. Allowed values: YES / NO. Null if not an ETF
etf_leveraged_factor string ETF Leveraged Factor. Numeric string, positive for bullish, negative for inverse. Null if not an ETF
inverse_etf string Is Inverse ETF. Allowed values: true / false. Null if not an ETF
crypto_etf string Is Crypto ETF. Allowed values: true / false. Null if not an ETF
single_stock_etf string Is Single Stock ETF. Allowed values: true / false. Null if not an ETF

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Get Stock Locate Detail

GET /broker/instruments/stock-locates/get

Retrieves stock short trading related information, including stock borrow type (ETB/HTB), available short quantity, short interest rate, etc. (Reference use only).

SDK broker.GetStockLocate
Reference broker-stock-locate-detail.md

Request — parameters

Name In Type Required Description
symbols query string yes List of security symbols, maximum 100 symbols per query.
category query string yes Security type. — one of: US_STOCK

Response 200

Array of objects:

Field Type Required Description
symbol string Symbol of the instrument
shortable string Whether the security is shortable: Y = Yes, N = No
short_type string Short availability type: ETB (Easy To Borrow), HTB (Hard To Borrow)
available_num integer remaining available shares for short selling (not returned for ETB)
short_interest_rate number Annualized short interest rate

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Get Corporate Actions Detail

GET /broker/instruments/stocks/corporate-actions/get

Retrieves detailed information for corporate action events.

SDK broker.GetCorporateActionsDetail
Reference broker-corporate-actions-detail.md

Request — parameters

Name In Type Required Description
event_id query string yes Corporate Event Action ID

Response 200

Field Type Required Description
event_id string Company Event ID
event_type string Corporate Event Type IDENTIFIER_CHANGE - Identifier-related changes to a security without economic impact, including symbol, exchange, ISIN, CUSIP, or instrument name changes DIVIDEND - Dividend and distribution events, including cash dividend, stock dividend, optional dividend, and return of capital REVERSE_SPLIT - Reverse stock split that consolidates shares and reduces the number of outstanding shares FORWARD_SPLIT - Forward stock split that increases the number of outstanding shares BONUS_ISSUE - Bonus issue of additional shares distributed to existing shareholders at no cost RIGHTS_OFFERING - Rights offering allowing shareholders to subscribe for additional shares DISTRIBUTION - Distribution of cash, securities, or other assets to shareholders SPIN_OFF - Spin-off event where shares of a subsidiary or new entity are distributed to existing shareholders UNIT_SPLIT - Unit split event affecting composite or unit-based securities MERGER - Merger or acquisition event involving the combination of two or more entities FULL_CALL - Full call redemption of the entire outstanding security issue PARTIAL_CALL - Partial call redemption affecting only a portion of the outstanding issue EXCHANGE - Exchange event where existing securities are exchanged for new securities or other consideration DTC_EXIT - Event indicating a security is no longer eligible for DTC settlement or custody LIQUIDATION - Liquidation event involving the winding up of an issuer and asset distribution WORTHLESS - Worthless security event indicating the security has no residual value ADR_GDR_TERMINATION - Termination of an ADR or GDR program MATURITY - Maturity event where a security reaches its contractual maturity date ADR_FEE - ADR fee charged to holders of American Depositary Receipts CONVERSION - Conversion event where securities are converted into another class or form OPEN_OFFER - Open offer allowing shareholders to subscribe for additional securities PREFERENTIAL_OFFER - Preferential offer made to selected shareholders under specific terms PERFORMANCE_COMPENSATION - Performance compensation event related to performance commitments, commonly in A-share markets DELISTING - Delisting event where a security is removed from exchange trading — one of: IDENTIFIER_CHANGE, DIVIDEND, REVERSE_SPLIT, FORWARD_SPLIT, BONUS_ISSUE, RIGHTS_OFFERING, DISTRIBUTION, SPIN_OFF, UNIT_SPLIT, MERGER, FULL_CALL, PARTIAL_CALL, EXCHANGE, DTC_EXIT, LIQUIDATION, WORTHLESS, ADR_GDR_TERMINATION, MATURITY, ADR_FEE, CONVERSION, OPEN_OFFER, PREFERENTIAL_OFFER, PERFORMANCE_COMPENSATION, DELISTING
event_version string Event Version
instrument_id string Instrument ID
category string Instrument Stock Category US_STOCK - US stock, HK_STOCK - HK stock, CN_STOCK - China A share — one of: US_STOCK, HK_STOCK, CN_STOCK
record_date string Record Date (YYYY-MM-DD)
ex_date string Ex Date (YYYY-MM-DD)
payment_date string Payment Date (YYYY-MM-DD)
final_pay_date string Final Payment Date (YYYY-MM-DD)
country_code string Country Code, ISO 3166-1 alpha-2 format
listing_country_of_code string Listing Country Code, ISO 3166-1 alpha-2 format
issuer_country_code string Issuer Country Code, ISO 3166-1 alpha-2 format
from object Event From Info. Position's instrument information
to array Event To Info. Corporate action's target instrument information

Nested — from:

Field Type Required Description
symbol string Symbol of the instrument
name string Name of the instrument
exchange string Exchange code

Nested — to:

Field Type Required Description
option_number string Option Number. Identifier for the payout option
description string Description of the payout option
default_option_flag string Default Option Flag. Indicates if the default payout option is exposed
payouts array Payouts associated with this option

Nested — payouts:

Field Type Required Description
type string Payout Nature Type DV - Dividend: Cash or stock distribution paid to shareholders FR - Franked Dividend: Dividend paid with franking credits attached IN - Interest: Interest income distribution L2 - Long Term Capital Gains: Gains from disposal of assets held longer than one year OT - Other: Other types of income or entitlement (see extended terms) C - Cash: Cash payment (only applicable to events created prior to release 2) PC - Cash/Principal/Return of Capital: Cash returned as principal or capital PM - Premium: Additional amount paid over base entitlement S - Securities: Distribution of securities instead of cash ST - Short Term Capital Gains: Gains from disposal of assets held less than one year SI - Sundry Income: Miscellaneous income distributions UF - Unfranked Dividend: Dividend paid without franking credits PI - Property Income Distribution: Income derived from property assets TD - Tax Deferred: Income deferred for tax purposes TE - Tax Exempted: Income exempted from taxation FI - Foreign Income: Income sourced from foreign jurisdictions CD - Capital gain on disposal of taxable property - Discounted CO - Capital gain on disposal of taxable property - Other CC - Capital gain on disposal of taxable property - Concessional CN - Capital gain on disposal of non-taxable property RT - Royalties: Payment received for intellectual property usage TX - Tax Credit: Credit applied against tax liability BP - Buy Permitted: Security is eligible for purchase under corporate action CL - Cash in Lieu of Fractional Share: Cash payment for fractional share entitlement DF - Drop Fraction: Fractional shares are dropped without compensation EX - Extend and Retain Fractions: Fractional shares are retained and adjusted NC - Round to Nearest Cent: Monetary amounts rounded to the nearest cent NW - Round to Nearest Whole Number if .5 or above: Rounding rule for fractional shares PR - Purchase Required: Mandatory purchase of securities as part of corporate action RD - Round Down to Nearest Whole Number: Fractional shares rounded down RU - Round Up to Nearest Whole Number: Fractional shares rounded up SR - Sale Required: Mandatory sale of securities as part of corporate action BU - Round up: Generic rounding up rule BC - Beneficial Owner Cash in Lieu: Cash payment to beneficial owner for fractional share BD - Beneficial Owner Round Down: Fractional shares of beneficial owner rounded down CT - Security Convert To Cash: Conversion of security into cash (used for tokenized assets) — one of: DV, FR, IN, L2, OT, C, PC, PM, S, ST, SI, UF, PI, TD, TE, FI, CD, CO, CC, CN, RT, TX, BP, CL, DF, EX, NC, NW, PR, RD, RU, SR, BU, BC, BD, CT
pay_type string Payout Delivery Type CASH - Cash settlement SECURITY - Security settlement (stock, right, warrant, etc.) SCRIP - Scrip dividend (dividend paid in shares instead of cash) SECURITY_AND_CASH - Combination of security and cash (logical type, not for persistence) — one of: CASH, SECURITY, SCRIP, SECURITY_AND_CASH
payout_number integer Sequence number of the payout within the same option. Used for ordering and identification.
adr_fee_rate string ADR fee rate applied to this payout, if applicable.
fraction_share_rule string Fraction Share Rule NONE - No special handling for fractional shares ROUND_DOWN - Round down fractional shares ROUND_UP - Round up fractional shares CASH_IN_LIEU - Cash in lieu for fractional shares DISTRIBUTION - Fractional share distribution STANDARD - Standard rounding for fractional shares — one of: NONE, ROUND_DOWN, ROUND_UP, CASH_IN_LIEU, DISTRIBUTION, STANDARD
cancellation_fee string Cancellation fee rate applied if the corporate action is cancelled.
issuance_fee string Issuance fee rate applied for newly issued securities.
tax_status string IRS income classification for tax reporting purposes.
currency string Currency of the cash payout. Applicable only when payType involves CASH.
amount string Cash amount paid per share held. Applicable only when payType involves CASH.
withholding_tax_rate string Withholding tax rate applied to the cash payout.
symbol string Trading symbol of the distributed security.
name string Name of the distributed security.
exchange string Exchange where the distributed security is listed.
from_ratio string Original holding quantity used as the base for ratio calculation.
to_ratio string Distributed quantity received for the given base holding.
cash_in_lieu_price string Cash-in-lieu price used to settle fractional shares.
reinvest_price string Reinvestment price used for scrip dividend calculation.

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Account Activities By Type

GET /broker/activities/cash-activities/list

Retrieves account transaction activities records with details.

SDK broker.GetCashActivities
Reference broker-activity-by-type.md

Request — parameters

Name In Type Required Description
account_id query String yes Provide the target account id
activity_types query string Account activity types — one of: ADJUSTMENT, ALLOCATION, DEPOSIT, DIVIDENDS, EXECUTION, FEES, INTERESTS, JOURNAL, OPTION_EA, REORGANIZATION, SUBSCRIBE, TAX, TRADE, TRANSFER, WITHDRAW
start_time query String Activity query start time, formats: yyyy-MM-dd'T'HH:mm:ss.SSSZ
end_time query String Activity query end time, formats: yyyy-MM-dd'T'HH:mm:ss.SSSZ
pagination_key query String Pagination key from previous response for next page.

Response 200

Field Type Required Description
data array Result data list
pagination_key string Pagination key for next page. If absent, indicates this is the last page.

Nested — data:

Field Type Required Description
id string yes Unique ID
account_id string yes Account ID
account_number string yes Account Number
activity_type string yes Activity Type ADJUSTMENT - Adjustment Activity Type ALLOCATION - Allocation Activity Type DEPOSIT - Deposit Activity Type DIVIDENDS - Dividends Activity Type EXECUTION - Execution Activity Type FEES - Fees Activity Type INTERESTS - Interests Activity Type JOURNAL - Journal Activity Type OPTION_EA - Option EA Activity Type REORGANIZATION - Reorganization Activity Type SUBSCRIBE - Subscribe Activity Type TAX - Tax Activity Type TRADE - Trade Activity Type TRANSFER - Transfer Activity Type WITHDRAW - Withdraw Activity Type OTHER - Other Activity Type — one of: ADJUSTMENT, ALLOCATION, DEPOSIT, DIVIDENDS, EXECUTION, FEES, INTERESTS, JOURNAL, OPTION_EA, REORGANIZATION, SUBSCRIBE, TAX, TRADE, TRANSFER, WITHDRAW, OTHER
activity_sub_type string yes Activity Sub Type. Provides detailed classification under each ActivityType. Multiple sub-types may share the same enum value but belong to different parent types. For example, FOREIGN_TAX_WITHHELD can appear under DIVIDENDS, FEES, or TAX types. NOT_SET - No sub type CASH_ADJUSTMENT - Cash Adjustment Sub Type, super type is ADJUSTMENT WIRE - Wire Deposit Sub Type, super type is DEPOSIT or WITHDRAW TAX_WITHHOLD - Tax Withhold Dividend Sub Type, super type is DIVIDENDS COLLECTION_FEE - Collection Fee Dividend Sub Type, super type is DIVIDENDS or INTERESTS INCOME - Income Dividend Sub Type, super type is DIVIDENDS PAYMENT_IN_LIEU - Payment In Lieu Dividend Sub Type, super type is DIVIDENDS SCRIP_FEE - Scrip Fee Dividend Sub Type, super type is DIVIDENDS or REORGANIZATION US_TAX_WITHHOLDING - US Tax Withholding Dividend or Tax Sub Type, super type is DIVIDENDS or TAX CA_HANDLING_FEE - CA Handling Fee Sub Type, super type is DIVIDENDS or REORGANIZATION FOREIGN_TAX_WITHHELD - Foreign Tax Withheld Sub Type, super type is DIVIDENDS or FEES or TAX CASH_IN_LIEU - Cash In Lieu Sub Type, super type is DIVIDENDS or REORGANIZATION ADJUSTMENT - Adjustment Dividend Sub Type, super type is DIVIDENDS ADR - ADR Fees Sub Type, super type is FEES IPO_SUBSCRIPTION_FEE - IPO Subscription Fee Sub Type, super type is FEES TRANSACTION_FEES - Transaction Fees Sub Type, super type is FEES CCASS_SETTLEMENT_FEE - CCASS Settlement Fee Sub Type, super type is FEES JOURNAL_BETWEEN_ACCOUNTS - Journal Between Accounts Sub Type, super type is FEES or JOURNAL CUSTODIAN_FEE - Custodian Fee Sub Type, super type is FEES SETTLEMENT_FEES - Settlement Fees Sub Type, super type is FEES TRANSFER_FOP - Transfer FOP Fees Sub Type, super type is FEES FTT - FTT Fees Sub Type, super type is FEES COMMISSION - Commission Fees Sub Type, super type is FEES SYSTEM_FEE - System Fee Sub Type, super type is FEES CORRESPONDENT_BILLING - Correspondent Billing Fees Sub Type, super type is FEES CUSTODY_FEE - Custody Fee Sub Type, super type is FEES STOCK_BORROW_INTEREST - Stock Borrow Interest Sub Type, super type is INTERESTS DEBIT_CASH - Debit Cash Sub Type, super type is INTERESTS IPO_FINANCING - IPO Financing Interest Sub Type, super type is INTERESTS PAYMENT - Payment Interests Sub Type, super type is INTERESTS ACCOUNT_MIGRATION - Account Migration Sub Type, super type is JOURNAL IPO_REFUND - IPO Refund Sub Type, super type is JOURNAL JOURNAL_BETWEEN_TYPES - Journal Between Types Sub Type, super type is JOURNAL GIFTING - Gifting Sub Type, super type is JOURNAL BANK_TRANSFER - Bank Transfer Sub Type, super type is JOURNAL FX_EXCHANGE - FX Exchange Sub Type, super type is JOURNAL CA_BREAK_RESOLVING - CA Break Resolving Sub Type, super type is JOURNAL MARK_TO_MARKET - Mark To Market Sub Type, super type is JOURNAL INV_DEPOSIT - INV Deposit Sub Type, super type is JOURNAL IPO_SUBSCRIPTION - IPO Subscription Sub Type, super type is JOURNAL FIXED_INCOME_SPREAD - Fixed Income Spread Sub Type, super type is JOURNAL HK_CBBC_EXERCISE - HK CBBC Exercise Sub Type, super type is OPTION_EA HK_CBBC_EXPIRATION - HK CBBC Expiration Sub Type, super type is OPTION_EA HK_WARRANT_EXERCISE - HK Warrant Exercise Sub Type, super type is OPTION_EA OPTION_EXERCISE - Option Exercise Sub Type, super type is OPTION_EA or TRADE HK_INLINE_WARRANT_EXERCISE - HK Inline Warrant Exercise Sub Type, super type is OPTION_EA OPTION_ASSIGNMENT - Option Assignment Sub Type, super type is OPTION_EA or TRADE MERGER - Merger Sub Type, super type is REORGANIZATION RIGHT_SUBSCRIPTION - Right Subscription Sub Type, super type is REORGANIZATION CORP_ACTION_FEE - Corp Action Fee Sub Type, super type is REORGANIZATION LIQUIDATION - Liquidation Sub Type, super type is REORGANIZATION REDEMPTION - Redemption Sub Type, super type is REORGANIZATION REPURCHASE - Repurchase Sub Type, super type is REORGANIZATION FEE - Subscribe Fee Sub Type, super type is SUBSCRIBE FEE_RETURN - Subscribe Fee Return Sub Type, super type is SUBSCRIBE INTERNAL_TRANSFER - Internal Transfer Sub Type, super type is TRANSFER DTC_OUT - DTC Out Sub Type, super type is TRANSFER WIRE_FEE_LOCAL - Wire Fee Local Sub Type, super type is WITHDRAW OPTION_TRADE - Option Trade Sub Type, super type is TRADE FUND_TRADE - Fund Trade Sub Type, super type is TRADE OTHER - Other — one of: NOT_SET, CASH_ADJUSTMENT, WIRE, TAX_WITHHOLD, COLLECTION_FEE, INCOME, PAYMENT_IN_LIEU, SCRIP_FEE, US_TAX_WITHHOLDING, CA_HANDLING_FEE, FOREIGN_TAX_WITHHELD, CASH_IN_LIEU, ADJUSTMENT, ADR, IPO_SUBSCRIPTION_FEE, TRANSACTION_FEES, CCASS_SETTLEMENT_FEE, JOURNAL_BETWEEN_ACCOUNTS, CUSTODIAN_FEE, SETTLEMENT_FEES, TRANSFER_FOP, FTT, COMMISSION, SYSTEM_FEE, CORRESPONDENT_BILLING, CUSTODY_FEE, STOCK_BORROW_INTEREST, DEBIT_CASH, IPO_FINANCING, PAYMENT, ACCOUNT_MIGRATION, IPO_REFUND, JOURNAL_BETWEEN_TYPES, GIFTING, BANK_TRANSFER, FX_EXCHANGE, CA_BREAK_RESOLVING, MARK_TO_MARKET, INV_DEPOSIT, IPO_SUBSCRIPTION, FIXED_INCOME_SPREAD, HK_CBBC_EXERCISE, HK_CBBC_EXPIRATION, HK_WARRANT_EXERCISE, OPTION_EXERCISE, HK_INLINE_WARRANT_EXERCISE, OPTION_ASSIGNMENT, MERGER, RIGHT_SUBSCRIPTION, CORP_ACTION_FEE, LIQUIDATION, REDEMPTION, REPURCHASE, FEE, FEE_RETURN, INTERNAL_TRANSFER, DTC_OUT, WIRE_FEE_LOCAL, OPTION_TRADE, FUND_TRADE, OTHER
currency string yes Currency CNH - RMB HKD - Hong Kong Dollar USD - US Dollar — one of: CNH, HKD, USD
market string Market Code HK - Hong Kong Market US - US Market CN - China Market — one of: HK, US, CN
symbol string Activity Symbol
trade_date string yes Accounting date of the transaction (trade date), format: yyyy-MM-dd
net_amount string yes Net change amount of the transaction (positive for credit, negative for debit)
biz_time string yes Business event time when the transaction occurred

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Account Balance

GET /broker/assets/balances/get

Retrieves account asset information, including cash balance, position market value, profit & loss, buying power, interest payable, etc.

SDK broker.GetBalance
Reference broker-assets-balance.md

Request — parameters

Name In Type Required Description
account_id query String yes Account identifier.

Response 200

Field Type Required Description
total_asset_currency string yes Currency — one of: CNH, HKD, USD
total_cash_balance string yes Cash Balance
total_market_value string yes Total holding market value
total_unrealized_profit_loss string yes Open P&L
init_margin string Initial margin
account_currency_assets array yes Currency assets Details

Nested — account_currency_assets:

Field Type Required Description
currency string yes Currency — one of: CNH, HKD, USD
cash_balance string yes Cash Balance
settled_cash string yes Settled Cash
unsettled_cash string yes Unsettled Cash
market_value string yes holding market value
held_amount string In-transit funds
frozen_amount string Frozen funds
buying_power string yes Buying Power
unrealized_profit_loss string yes Open P&L
available_withdrawal string yes The withdrawable amount
interests_unpaid string yes Interest to be paid
init_margin string Init margin

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Account Positions

GET /broker/assets/positions/list

Retrieves position details for a specific account.

SDK broker.GetPositions
Reference broker-assets-positions.md

Request — parameters

Name In Type Required Description
account_id query String yes Account identifier.

Response 200

Field Type Required Description
position_id string yes Position ID
currency string yes Currency — one of: CNH, HKD, USD
quantity string yes Quantity of the order. Specifies the number of shares or units to transact. For US stocks, fractional quantities are allowed and can include decimals.
symbol string yes Trading symbol of the financial instrument.Represents the unique identifier of the security in the specified market (e.g., ticker symbol for equities or option symbol code for derivatives).
option_strategy string yes Type of options strategy - SINGLE: Single-leg options order - COVERED_STOCK: Covered call (stock + sell CALL) - STRADDLE: Same strike, same expiry CALL + PUT - STRANGLE: Different strike, same expiry CALL + PUT - VERTICAL: Same expiry, different strike, same type (Bull/Bear Spread) - CALENDAR: Same strike, different expiry, same type - DIAGONAL: Different strike, different expiry, same type - COLLAR_WITH_STOCK: Stock + buy PUT + sell CALL - BUTTERFLY: Buy low + sell 2 mid + buy high (same type) - CONDOR: Four different strikes, same type - IRON_BUTTERFLY: Buy low PUT + sell mid PUT + sell mid CALL + buy high CALL - IRON_CONDOR: Buy low PUT + sell mid-low PUT + sell mid-high CALL + buy high CALL - RATIO: Same expiry, same option type, unequal leg quantities (e.g. buy 1 low-strike CALL + sell 2 high-strike CALLs) — one of: SINGLE, COVERED_STOCK, STRADDLE, STRANGLE, VERTICAL, CALENDAR, DIAGONAL, COLLAR_WITH_STOCK, BUTTERFLY, CONDOR, IRON_BUTTERFLY, IRON_CONDOR, RATIO
instrument_type string yes Type of financial instrument associated with the request. — one of: EQUITY, OPTION
last_price string yes Last Price
cost_price string yes Cost Basis
unrealized_profit_loss string yes Open P&L
legs array legs

Nested — legs:

Field Type Required Description
symbol string yes Trading symbol of the financial instrument.Represents the unique identifier of the security in the specified market (e.g., ticker symbol for equities or option symbol code for derivatives).
leg_id string yes Leg Id
quantity string Quantity of the order. Specifies the number of shares or units to transact.
option_type string Type of the option. - CALL: Right to buy the underlying asset. - PUT: Right to sell the underlying asset. — one of: CALL, PUT
option_expire_date string Option expiration date. Format: yyyy-MM-dd
option_exercise_price string Exercise Price
option_contract_multiplier string The number of shares corresponding to each option contract
option_contract_deliverable string The number of shares required to exercise each contract
expiration_type string Option expiration types

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Order Preview

POST /broker/orders/preview

Calculates the estimated trading cost and fees based on the provided trade information.

SDK broker.PreviewOrder
Reference broker-order-preview.md

Request body

Field Type Required Description
account_id string yes Account identifier
client_combo_order_id string Unique client-defined identifier for the combined order If combo_type = NORMAL and client_combo_order_id not need to set If combo_type != NORMAL and client_combo_order_id not provided the server will automatically generate one.
new_orders array yes Order Details

Nested — new_orders:

Field Type Required Description
combo_type string yes Specifies the type of order combination. For details, please refer to Combo Order. - NORMAL: A standard single order. - MASTER: A primary order that triggers a take-profit or stop-loss order upon execution - STOP_PROFIT: A take-profit order - STOP_LOSS: A stop-loss order - OTO: An order that triggers another order upon execution (One-Triggers-the-Other) - OCO: A pair of orders where the execution of one cancels the other (One-Cancels-the-Other) - OTOCO: An order that triggers an OCO order set upon execution (One-Triggers-One-Cancels-the-Other)
client_order_id string yes Unique client-defined identifier for the order. Maximum length is 32 characters. Allowed characters: letters (A–Z, a–z), digits (0–9), hyphen (-), underscore (_).
instrument_type string yes Type of financial instrument associated with the request. — one of: EQUITY, OPTION
market string yes Market code indicating the trading venue or regulatory region of the financial instrument. Used together with symbol and instrument_type to uniquely identify a tradable instrument. — one of: US, HK, CN
symbol string yes Trading symbol of the financial instrument. Represents the unique identifier of the security in the specified market.
order_type string yes Specifies the type of order to be placed. Determines how the order will be executed in the market. Available order types depend on the market and instrument type. Options trading Only LIMIT,STOP_LOSS,STOP_LOSS_LIMIT are supported. U.S. Stock - LIMIT: Limit Order - MARKET: Market Order - STOP_LOSS: Stop Order - STOP_LOSS_LIMIT: Stop Limit Order - MARKET_ON_OPEN: Opening market order - MARKET_ON_CLOSE: Closing market order Hong Kong Stock - ENHANCED_LIMIT: Enhanced Limit Order - AT_AUCTION: At-auction order - AT_AUCTION_LIMIT: At-auction limit order - STOP_LOSS: Stop Order - STOP_LOSS_LIMIT: Stop Limit Order - TRAILING_STOP_LOSS: Trailing Stop Order - TRAILING_STOP_LOSS_LIMIT: Trailing Stop Limit Order - TOUCH_MKT: Touch Market Order - TOUCH_LMT: Touch Limit Order - MARKET: Market Order - ODD_LOT_LIMIT: Odd Lot Limit Order - MARKET_ON_OPEN: Opening market order - MARKET_ON_CLOSE: Closing market order HK Options - LIMIT: Limit Order - MARKET: Market Order - STOP_LOSS: Stop Order - STOP_LOSS_LIMIT: Stop Limit Order China Connect - LIMIT: Limit Order — one of: LIMIT, MARKET, STOP_LOSS, STOP_LOSS_LIMIT, ENHANCED_LIMIT, AT_AUCTION, AT_AUCTION_LIMIT, MARKET_ON_OPEN, MARKET_ON_CLOSE, TRAILING_STOP_LOSS, TRAILING_STOP_LOSS_LIMIT, TOUCH_MKT, TOUCH_LMT, ODD_LOT_LIMIT
entrust_type string yes Specifies the method for placing the order. - QTY: Order specified by quantity of shares or units. - AMOUNT: Order specified by total cash amount, applicable for fractional share trading of US stocks. — one of: QTY, AMOUNT
support_trading_session string yes Specifies the trading session for the order. Applicable to U.S. stock market orders only. Deprecated values: - Y: [Deprecated]Include extended trading hours. - N: [Deprecated]Only support regular trading hours. Active values: - NIGHT: Only supports night trading. - ALL: Include extended trading hours. - CORE: Only support regular trading hours. - ALL_DAY: Included Overnight Hours, 8:00 p.m.ET - 8:00 p.m.ET(the next day) — one of: Y, N, NIGHT, ALL, CORE, ALL_DAY
time_in_force string yes Specifies the duration for which the order remains active in the market (Time-In-Force). - DAY: The order is valid only for the current trading day and expires at the end of the day. - GTC: Good-Till-Canceled, the order remains active until it is executed, explicitly canceled, or reaches the maximum allowed duration (typically 90 days). — one of: DAY, GTC
side string yes The order side indicating the intended trading direction of the transaction. The meaning of side may vary depending on the instrument_type and account type (e.g., margin vs. cash). — one of: BUY, SELL, SHORT
quantity string Transaction quantity. You can specify decimals when placing fractional lot orders for US stocks.
limit_price string Limit price of the order. Required when order_type is LIMIT, STOP_LOSS_LIMIT. Specifies the maximum (for buy) or minimum (for sell) price at which the order can be executed.
stop_price string Stop price of the order. Required when order_type is STOP_LOSS or STOP_LOSS_LIMIT. Specifies the trigger price at which the stop order becomes active.
option_strategy string Type of options strategy - SINGLE: Single-leg options order - COVERED_STOCK: Covered call (stock + sell CALL) - STRADDLE: Same strike, same expiry CALL + PUT - STRANGLE: Different strike, same expiry CALL + PUT - VERTICAL: Same expiry, different strike, same type (Bull/Bear Spread) - CALENDAR: Same strike, different expiry, same type - DIAGONAL: Different strike, different expiry, same type - COLLAR_WITH_STOCK: Stock + buy PUT + sell CALL - BUTTERFLY: Buy low + sell 2 mid + buy high (same type) - CONDOR: Four different strikes, same type - IRON_BUTTERFLY: Buy low PUT + sell mid PUT + sell mid CALL + buy high CALL - IRON_CONDOR: Buy low PUT + sell mid-low PUT + sell mid-high CALL + buy high CALL - RATIO: Same expiry, same option type, unequal leg quantities (e.g. buy 1 low-strike CALL + sell 2 high-strike CALLs) — one of: SINGLE, COVERED_STOCK, STRADDLE, STRANGLE, VERTICAL, CALENDAR, DIAGONAL, COLLAR_WITH_STOCK, BUTTERFLY, CONDOR, IRON_BUTTERFLY, IRON_CONDOR, RATIO
legs array Option leg detail. Only required when previewing option orders.

Nested — legs:

Field Type Required Description
instrument_type string yes Type of financial instrument associated with the request. — one of: EQUITY, OPTION
market string yes Market code indicating the trading venue or regulatory region of the financial instrument. Used together with symbol and instrument_type to uniquely identify a tradable instrument. — one of: US, HK, CN
symbol string yes Trading symbol of the financial instrument. Represents the unique identifier of the security in the specified market (e.g., ticker symbol for equities or option symbol code for derivatives).
side string yes The order side indicating the intended trading direction of the transaction. The meaning of side may vary depending on the instrument_type and account type (e.g., margin vs. cash). — one of: BUY, SELL, SHORT
strike_price string Exercise price (strike price) of the option. Specifies the price at which the underlying asset can be bought (CALL) or sold (PUT) upon exercise.
option_expire_date string Expiration date. Format: yyyy-MM-dd
option_type string Type of the option. - CALL: Right to buy the underlying asset. - PUT: Right to sell the underlying asset. — one of: CALL, PUT
quantity string Quantity of the order or strategy leg. For stock legs, specifies the number of shares to transact For option legs, specifies the number of option contracts to transact for this leg and is expressed in whole contracts.

Response 200

Field Type Required Description
estimated_cost string yes Estimated capital required for the order. The meaning varies by product type: The actual fee may differ based on final execution.
estimated_transaction_fee string yes Estimated transaction fee for placing the order, including exchange, clearing, and commission fees. The actual fee may differ based on final execution.
estimated_transaction_fee_detail object Breakdown of the estimated transaction fee, including commission and itemized fees.

Nested — estimated_transaction_fee_detail:

Field Type Required Description
commission object Commission breakdown
fees array Fee breakdown

Nested — commission:

Field Type Required Description
actual_commission string Actual commission collected
receivable_commission string Receivable commission

Nested — fees:

Field Type Required Description
type string Fee type
actual_value string Actual fee collected
receivable_value string Receivable fee

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Order Place

POST /broker/orders/place

Places an order for a specific account. For order execution of accounts with Omnibus with VA model, please submit virtual account number instead of omnibus master account number.

SDK broker.PlaceOrder
Reference broker-order-place.md

Request body

Field Type Required Description
account_id string yes Account identifier
client_combo_order_id string Unique client-defined identifier for the combined order If combo_type = NORMAL and client_combo_order_id not need to set If combo_type != NORMAL and client_combo_order_id not provided the server will automatically generate one.
new_orders array yes Order Details

Nested — new_orders:

Field Type Required Description
combo_type string yes Specifies the type of order combination. For details, please refer to Combo Order. - NORMAL: A standard single order. - MASTER: A primary order that triggers a take-profit or stop-loss order upon execution - STOP_PROFIT: A take-profit order - STOP_LOSS: A stop-loss order - OTO: An order that triggers another order upon execution (One-Triggers-the-Other) - OCO: A pair of orders where the execution of one cancels the other (One-Cancels-the-Other) - OTOCO: An order that triggers an OCO order set upon execution (One-Triggers-One-Cancels-the-Other)
client_order_id string yes Unique client-defined identifier for the order. Maximum length is 32 characters. Allowed characters: letters (A–Z, a–z), digits (0–9), hyphen (-), underscore (_).
instrument_type string yes Type of financial instrument associated with the request. — one of: EQUITY, OPTION
market string yes Market code indicating the trading venue or regulatory region of the financial instrument. Used together with symbol and instrument_type to uniquely identify a tradable instrument. — one of: US, HK, CN
symbol string yes Trading symbol of the financial instrument. Represents the unique identifier of the security in the specified market.
order_type string yes Specifies the type of order to be placed. Determines how the order will be executed in the market. Available order types depend on the market and instrument type. Options trading Only LIMIT,STOP_LOSS,STOP_LOSS_LIMIT are supported. U.S. Stock - LIMIT: Limit Order - MARKET: Market Order - STOP_LOSS: Stop Order - STOP_LOSS_LIMIT: Stop Limit Order - MARKET_ON_OPEN: Opening market order - MARKET_ON_CLOSE: Closing market order Hong Kong Stock - ENHANCED_LIMIT: Enhanced Limit Order - AT_AUCTION: At-auction order - AT_AUCTION_LIMIT: At-auction limit order - STOP_LOSS: Stop Order - STOP_LOSS_LIMIT: Stop Limit Order - TRAILING_STOP_LOSS: Trailing Stop Order - TRAILING_STOP_LOSS_LIMIT: Trailing Stop Limit Order - TOUCH_MKT: Touch Market Order - TOUCH_LMT: Touch Limit Order - MARKET: Market Order - ODD_LOT_LIMIT: Odd Lot Limit Order - MARKET_ON_OPEN: Opening market order - MARKET_ON_CLOSE: Closing market order HK Options - LIMIT: Limit Order - MARKET: Market Order - STOP_LOSS: Stop Order - STOP_LOSS_LIMIT: Stop Limit Order China Connect - LIMIT: Limit Order — one of: LIMIT, MARKET, STOP_LOSS, STOP_LOSS_LIMIT, ENHANCED_LIMIT, AT_AUCTION, AT_AUCTION_LIMIT, MARKET_ON_OPEN, MARKET_ON_CLOSE, TRAILING_STOP_LOSS, TRAILING_STOP_LOSS_LIMIT, TOUCH_MKT, TOUCH_LMT, ODD_LOT_LIMIT
entrust_type string yes Specifies the method for placing the order. - QTY: Order specified by quantity of shares or units. - AMOUNT: Order specified by total cash amount, applicable for fractional share trading of US stocks. — one of: QTY, AMOUNT
support_trading_session string Specifies the trading session for the order. Applicable to U.S. stock market orders only. Deprecated values: - Y: [Deprecated]Include extended trading hours. - N: [Deprecated]Only support regular trading hours. Active values: - NIGHT: Only supports night trading. - ALL: Include extended trading hours. - CORE: Only support regular trading hours. - ALL_DAY: Included Overnight Hours, 8:00 p.m.ET - 8:00 p.m.ET(the next day) — one of: Y, N, NIGHT, ALL, CORE, ALL_DAY
time_in_force string yes Specifies the duration for which the order remains active in the market (Time-In-Force). - DAY: The order is valid only for the current trading day and expires at the end of the day. - GTC: Good-Till-Canceled, the order remains active until it is executed, explicitly canceled, or reaches the maximum allowed duration (typically 90 days). — one of: DAY, GTC
side string yes The order side indicating the intended trading direction of the transaction. The meaning of side may vary depending on the instrument_type and account type (e.g., margin vs. cash). — one of: BUY, SELL, SHORT
quantity string Transaction quantity. You can specify decimals when placing fractional lot orders for US stocks.
total_cash_amount string The total order amount is currently only applicable to US stock fractional share transactions and when the order is placed by amount.
limit_price string Limit price of the order. Required when order_type is LIMIT, STOP_LOSS_LIMIT or TOUCH_LMT. Specifies the maximum (for buy) or minimum (for sell) price at which the order can be executed.
stop_price string Stop price of the order. Required when order_type is STOP_LOSS, STOP_LOSS_LIMIT, TOUCH_MKT or TOUCH_LMT. Specifies the trigger price at which the stop order becomes active.
trailing_type string When market continues to fall, the stop price to buy follows, or trails, the lowest price of a stock by a trail that you set. Required when order_type is TRAILING_STOP_LOSS or TRAILING_STOP_LOSS_LIMIT. - AMOUNT: By amount. - PERCENTAGE: By percentage. — one of: AMOUNT, PERCENTAGE
trailing_stop_step string Trailing Stop Spread. If the tracking type is percentage, the tracking spread can not exceed 1,0.01 means 1%. Required when order_type is TRAILING_STOP_LOSS or TRAILING_STOP_LOSS_LIMIT.
trailing_limit_price_offset string The offset amount between the triggered stop price and the submitted limit price for a trailing stop-limit order. Required when order_type is TRAILING_STOP_LOSS_LIMIT. When triggered, the limit order price is calculated as: - Buy: limit price = stop price + trailing_limit_price_offset - Sell: limit price = stop price - trailing_limit_price_offset If the calculated limit price does not align with the instrument's tick size, it will be rounded to the nearest valid tick: rounded up for buy orders, rounded down for sell orders.
trigger_price_type string Trigger price type of the order - PRICE: Latest transaction price. - PRICE_BID: Buy at one price. - PRICE_ASK: Sell at one price. — one of: PRICE, PRICE_BID, PRICE_ASK
sender_sub_id string Identifier for the firm or sub-account in third-party transactions. For brokers, this field should contain the UUID of the broker user. Used to distinguish different entities or users within the same firm.
no_party_ids array List of party identifiers. Applicable only for Hong Kong stock orders. Required for Relevant Regulated Intermediaries; should be omitted otherwise.
option_strategy string Type of options strategy - SINGLE: Single-leg options order - COVERED_STOCK: Covered call (stock + sell CALL) - STRADDLE: Same strike, same expiry CALL + PUT - STRANGLE: Different strike, same expiry CALL + PUT - VERTICAL: Same expiry, different strike, same type (Bull/Bear Spread) - CALENDAR: Same strike, different expiry, same type - DIAGONAL: Different strike, different expiry, same type - COLLAR_WITH_STOCK: Stock + buy PUT + sell CALL - BUTTERFLY: Buy low + sell 2 mid + buy high (same type) - CONDOR: Four different strikes, same type - IRON_BUTTERFLY: Buy low PUT + sell mid PUT + sell mid CALL + buy high CALL - IRON_CONDOR: Buy low PUT + sell mid-low PUT + sell mid-high CALL + buy high CALL - RATIO: Same expiry, same option type, unequal leg quantities (e.g. buy 1 low-strike CALL + sell 2 high-strike CALLs) — one of: SINGLE, COVERED_STOCK, STRADDLE, STRANGLE, VERTICAL, CALENDAR, DIAGONAL, COLLAR_WITH_STOCK, BUTTERFLY, CONDOR, IRON_BUTTERFLY, IRON_CONDOR, RATIO
position_intent string Position intent for option orders, indicating whether the trade is opening or closing a position. - BUY_TO_OPEN: Buy to open a new position - BUY_TO_CLOSE: Buy to close an existing position - SELL_TO_OPEN: Sell to open a new position - SELL_TO_CLOSE: Sell to close an existing position — one of: BUY_TO_OPEN, BUY_TO_CLOSE, SELL_TO_OPEN, SELL_TO_CLOSE
legs array Option leg detail. Only required when placing option orders.

Nested — no_party_ids:

Field Type Required Description
party_id string yes ID of the broker client submitting the order. Format examples: - CE Number Format: ABC123 - BCAN Format: 2568 Combined format example: ABC123.2568 Must be certified by the BCAN system of the Hong Kong Stock Exchange.
party_id_source string yes Source of the party ID. Value must be "D" (Proprietary/Custom Code).
party_role string yes Role of the party. Value must be "3" (Client ID, BCAN Field).

Nested — legs:

Field Type Required Description
instrument_type string yes Type of financial instrument associated with the request. — one of: EQUITY, OPTION
market string yes Market code indicating the trading venue or regulatory region of the financial instrument. Used together with symbol and instrument_type to uniquely identify a tradable instrument. — one of: US, HK, CN
symbol string yes Trading symbol of the financial instrument. Represents the unique identifier of the security in the specified market (e.g., ticker symbol for equities or option symbol code for derivatives).
side string yes The order side indicating the intended trading direction of the transaction. The meaning of side may vary depending on the instrument_type and account type (e.g., margin vs. cash). — one of: BUY, SELL, SHORT
strike_price string Exercise price (strike price) of the option. Specifies the price at which the underlying asset can be bought (CALL) or sold (PUT) upon exercise.
option_expire_date string Expiration date. Format: yyyy-MM-dd
option_type string Type of the option. - CALL: Right to buy the underlying asset. - PUT: Right to sell the underlying asset. — one of: CALL, PUT
quantity string Quantity of the order or strategy leg. For stock legs, specifies the number of shares to transact For option legs, specifies the number of option contracts to transact for this leg and is expressed in whole contracts.

Response 200

Field Type Required Description
client_order_id string Client-defined order identifier. Returned in the response for simple orders. Represents the unique order ID assigned by the user when placing the order for NORMAL order.
order_id string System-generated order identifier. Returned in the response for simple orders. Represents the unique Webull order ID assigned by the system when placing the order for NORMAL order.

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Order Replace

POST /broker/orders/replace

Modifies a submitted order with updated parameters.

SDK broker.ReplaceOrder
Reference broker-order-replace.md

Request body

Field Type Required Description
account_id string yes Account identifier
modify_orders array yes Order Details

Nested — modify_orders:

Field Type Required Description
combo_type string yes Specifies the type of order combination. For details, please refer to Combo Order. - NORMAL: A standard single order. - MASTER: A primary order that triggers a take-profit or stop-loss order upon execution - STOP_PROFIT: A take-profit order - STOP_LOSS: A stop-loss order - OTO: An order that triggers another order upon execution (One-Triggers-the-Other) - OCO: A pair of orders where the execution of one cancels the other (One-Cancels-the-Other) - OTOCO: An order that triggers an OCO order set upon execution (One-Triggers-One-Cancels-the-Other)
client_order_id string yes Unique client-defined identifier for the order. Maximum length is 32 characters. Allowed characters: letters (A–Z, a–z), digits (0–9), hyphen (-), underscore (_).
time_in_force string Specifies the duration for which the order remains active in the market (Time-In-Force). - DAY: The order is valid only for the current trading day and expires at the end of the day. - GTC: Good-Till-Canceled, the order remains active until it is executed, explicitly canceled, or reaches the maximum allowed duration (typically 90 days). — one of: DAY, GTC
limit_price string Limit price of the order. Required when order_type is LIMIT, STOP_LOSS_LIMIT or TOUCH_LMT. Specifies the maximum (for buy) or minimum (for sell) price at which the order can be executed.
stop_price string Stop price of the order. Required when order_type is STOP_LOSS, STOP_LOSS_LIMIT, TOUCH_MKT or TOUCH_LMT. Specifies the trigger price at which the stop order becomes active.
trailing_type string When market continues to fall, the stop price to buy follows, or trails, the lowest price of a stock by a trail that you set. Required when order_type is TRAILING_STOP_LOSS or TRAILING_STOP_LOSS_LIMIT. - AMOUNT: By amount. - PERCENTAGE: By percentage. — one of: AMOUNT, PERCENTAGE
trailing_stop_step string Trailing Stop Spread. If the tracking type is percentage, the tracking spread can not exceed 1,0.01 means 1%. Required when order_type is TRAILING_STOP_LOSS or TRAILING_STOP_LOSS_LIMIT.
trailing_limit_price_offset string The offset amount between the triggered stop price and the submitted limit price for a trailing stop-limit order. Required when order_type is TRAILING_STOP_LOSS_LIMIT. When triggered, the limit order price is calculated as: - Buy: limit price = stop price + trailing_limit_price_offset - Sell: limit price = stop price - trailing_limit_price_offset If the calculated limit price does not align with the instrument's tick size, it will be rounded to the nearest valid tick: rounded up for buy orders, rounded down for sell orders.
trigger_price_type string Trigger price type of the order - PRICE: Latest transaction price. - PRICE_BID: Buy at one price. - PRICE_ASK: Sell at one price. — one of: PRICE, PRICE_BID, PRICE_ASK
quantity string Transaction quantity. You can specify decimals when placing fractional lot orders for US stocks.
legs array Option leg detail for modifying option orders.

Nested — legs:

Field Type Required Description
id string yes Unique defined identifier for the leg.
quantity string yes Quantity of the order or strategy leg. For stock legs, specifies the number of shares to transact For option legs, specifies the number of option contracts to transact for this leg and is expressed in whole contracts.

Response 200

Field Type Required Description
client_order_id string Client-defined order identifier. Returned in the response for simple orders. Represents the unique order ID assigned by the user when placing the order for NORMAL order.
order_id string System-generated order identifier. Returned in the response for simple orders. Represents the unique Webull order ID assigned by the system when placing the order for NORMAL order.

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Order Cancel

POST /broker/orders/cancel

Cancels a submitted order that is still under open status.

SDK broker.CancelOrder
Reference broker-order-cancel.md

Request body

Field Type Required Description
account_id string yes Account identifier
client_order_id string yes Unique client-defined identifier for the order. Maximum length is 32 characters. Allowed characters: letters (A–Z, a–z), digits (0–9), hyphen (-), underscore (_).

Response 200

Field Type Required Description
client_order_id string Client-defined order identifier. Returned in the response for simple orders. Represents the unique order ID assigned by the user when placing the order for NORMAL order.
order_id string System-generated order identifier. Returned in the response for simple orders. Represents the unique Webull order ID assigned by the system when placing the order for NORMAL order.

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Order Detail

GET /broker/orders/get

Retrieves the order details for a specific trade via the order ID.

SDK broker.GetOrderDetail
Reference broker-order-detail.md

Request — parameters

Name In Type Required Description
account_id query String yes Account identifier.
client_order_id query String yes Unique client-defined identifier for the order. Maximum length is 32 characters and must be unique per user/account. Used to track or reference the order when interacting with the system.

Response 200

Field Type Required Description
client_order_id string yes Client-defined order identifier. Returned in the response for simple orders. Represents the unique order ID assigned by the user when placing the order.
combo_type string Specifies the type of order combination. For details, please refer to Combo Order. - NORMAL: A standard single order. - MASTER: A primary order that triggers a take-profit or stop-loss order upon execution - STOP_PROFIT: A take-profit order - STOP_LOSS: A stop-loss order - OTO: An order that triggers another order upon execution (One-Triggers-the-Other) - OCO: A pair of orders where the execution of one cancels the other (One-Cancels-the-Other) - OTOCO: An order that triggers an OCO order set upon execution (One-Triggers-One-Cancels-the-Other) — one of: NORMAL, MASTER, STOP_PROFIT, STOP_LOSS, OTO, OCO, OTOCO
orders array yes Order Details

Nested — orders:

Field Type Required Description
client_order_id string yes Client-defined order identifier. Returned in the response for simple orders. Represents the unique order ID assigned by the user when placing the order.
order_id string yes System-generated order identifier. Returned in the response for simple orders. Represents the unique Webull order ID assigned by the system.
symbol string yes Trading symbol of the financial instrument.Represents the unique identifier of the security in the specified market (e.g., ticker symbol for equities or option symbol code for derivatives).
side string yes The order side indicating the intended trading direction of the transaction. The meaning of side may vary depending on the instrument_type and account type (e.g., margin vs. cash). — one of: BUY, SELL, SHORT
status string yes - PENDING: Indicates that the order has been submitted to the exchange and is awaiting completion - SUBMITTED: Indicates that the order has been submitted to the exchange and is awaiting completion - CANCELLED: Indicates that the order has been successfully cancelled - FILLED: Indicates that the order has been fully executed - FAILED: Indicates a failed order, such as REJECTED - PARTIAL_FILLED: Refers to the portion of the order that has been completed, but not all of it has been completed — one of: PENDING, SUBMITTED, CANCELLED, FILLED, FAILED, PARTIAL_FILLED
order_type string yes Specifies the type of order to be placed. Determines how the order will be executed in the market. Available order types depend on the market and instrument type. Options trading Only LIMIT,STOP_LOSS,STOP_LOSS_LIMIT are supported. U.S. Stock - LIMIT: Limit Order - MARKET: Market Order - STOP_LOSS: Stop Order - STOP_LOSS_LIMIT: Stop Limit Order - MARKET_ON_OPEN: Opening market order - MARKET_ON_CLOSE: Closing market order Hong Kong Stock - ENHANCED_LIMIT: Enhanced Limit Order - AT_AUCTION: At-auction order - AT_AUCTION_LIMIT: At-auction limit order - STOP_LOSS: Stop Order - STOP_LOSS_LIMIT: Stop Limit Order - TRAILING_STOP_LOSS: Trailing Stop Order - TRAILING_STOP_LOSS_LIMIT: Trailing Stop Limit Order - TOUCH_MKT: Touch Market Order - TOUCH_LMT: Touch Limit Order - MARKET: Market Order - ODD_LOT_LIMIT: Odd Lot Limit Order - MARKET_ON_OPEN: Opening market order - MARKET_ON_CLOSE: Closing market order HK Options - LIMIT: Limit Order - MARKET: Market Order - STOP_LOSS: Stop Order - STOP_LOSS_LIMIT: Stop Limit Order China Connect - LIMIT: Limit Order — one of: LIMIT, MARKET, STOP_LOSS, STOP_LOSS_LIMIT, ENHANCED_LIMIT, AT_AUCTION, AT_AUCTION_LIMIT, MARKET_ON_OPEN, MARKET_ON_CLOSE, TRAILING_STOP_LOSS, TRAILING_STOP_LOSS_LIMIT, TOUCH_MKT, TOUCH_LMT, ODD_LOT_LIMIT
instrument_type string Type of financial instrument associated with the request. — one of: EQUITY, OPTION
support_trading_session string Specifies the trading session for the order. Applicable to U.S. stock market orders only. Deprecated values: - Y: [Deprecated]Include extended trading hours. - N: [Deprecated]Only support regular trading hours. Active values: - NIGHT: Only supports night trading. - ALL: Include extended trading hours. - CORE: Only support regular trading hours. - ALL_DAY: Included Overnight Hours, 8:00 p.m.ET - 8:00 p.m.ET(the next day) — one of: Y, N, NIGHT, ALL, CORE, ALL_DAY
time_in_force string yes Specifies the duration for which the order remains active in the market (Time-In-Force). - DAY: The order is valid only for the current trading day and expires at the end of the day. - GTC: Good-Till-Canceled, the order remains active until it is executed, explicitly canceled, or reaches the maximum allowed duration (typically 90 days). — one of: DAY, GTC
total_quantity string yes Total order quantity. Represents the total number of units submitted for this order.
filled_quantity string Quantity that has been executed. Represents the number of units that have been filled so far.
filled_price string Average transaction price of the filled quantity. If the order has not been executed yet, this may be zero or null.
limit_price string Limit price of the order. Required when order_type is LIMIT, STOP_LOSS_LIMIT, ENHANCED_LIMIT, or AT_AUCTION_LIMIT or TOUCH_LMT. Specifies the maximum (for buy) or minimum (for sell) price at which the order can be executed.
stop_price string Stop price of the order. Required when order_type is STOP_LOSS, STOP_LOSS_LIMIT, TOUCH_MKT or TOUCH_LMT. Specifies the trigger price at which the stop order becomes active.
trailing_type string When market continues to fall, the stop price to buy follows, or trails, the lowest price of a stock by a trail that you set. Required when order_type is TRAILING_STOP_LOSS or TRAILING_STOP_LOSS_LIMIT. - AMOUNT: By amount. - PERCENTAGE: By percentage. — one of: AMOUNT, PERCENTAGE
trailing_stop_step string Trailing Stop Spread. If the tracking type is percentage, the tracking spread can not exceed 1,0.01 means 1%. Required when order_type is TRAILING_STOP_LOSS or TRAILING_STOP_LOSS_LIMIT.
trailing_limit_price_offset string The offset amount between the triggered stop price and the submitted limit price for a trailing stop-limit order. Required when order_type is TRAILING_STOP_LOSS_LIMIT. When triggered, the limit order price is calculated as: - Buy: limit price = stop price + trailing_limit_price_offset - Sell: limit price = stop price - trailing_limit_price_offset If the calculated limit price does not align with the instrument's tick size, it will be rounded to the nearest valid tick: rounded up for buy orders, rounded down for sell orders.
trigger_price_type string Trigger price type of the order - PRICE: Latest transaction price. - PRICE_BID: Buy at one price. - PRICE_ASK: Sell at one price. — one of: PRICE, PRICE_BID, PRICE_ASK
place_time string Order placement time in milliseconds since Unix epoch.
place_time_at string yes Order placement time in ISO8601 format (UTC). Format: YYYY-MM-DDThh:mm:ssZ
filled_time string Time of the last executed trade in milliseconds since Unix epoch.
filled_time_at string Time of the last executed trade in ISO8601 format (UTC). Format: YYYY-MM-DDThh:mm:ssZ
commission object Commission breakdown
fees array Fee breakdown
legs array Leg detail

Nested — commission:

Field Type Required Description
actual_commission string Actual commission collected
receivable_commission string Receivable commission

Nested — fees:

Field Type Required Description
type string Fee type
actual_value string Actual fee collected
receivable_value string Receivable fee

Nested — legs:

Field Type Required Description
id string Unique identifier for the leg.
symbol string yes Trading symbol of the financial instrument.Represents the unique identifier of the security in the specified market (e.g., ticker symbol for equities or option symbol code for derivatives).
side string yes The order side indicating the intended trading direction of the transaction. The meaning of side may vary depending on the instrument_type and account type (e.g., margin vs. cash). — one of: BUY, SELL, SHORT
quantity string yes Quantity of the order. Specifies the number of shares or units to transact. For US stocks, fractional quantities are allowed and can include decimals.
option_type string Type of the option. - CALL: Right to buy the underlying asset. - PUT: Right to sell the underlying asset. — one of: CALL, PUT
option_category string Category of the option, indicating its exercise style. Possible values: - AMERICAN: Can be exercised any time before expiration. - EUROPEAN: Can only be exercised at expiration. — one of: AMERICAN, EUROPEAN
option_strategy string Type of options strategy - SINGLE: Single-leg options order - COVERED_STOCK: Covered call (stock + sell CALL) - STRADDLE: Same strike, same expiry CALL + PUT - STRANGLE: Different strike, same expiry CALL + PUT - VERTICAL: Same expiry, different strike, same type (Bull/Bear Spread) - CALENDAR: Same strike, different expiry, same type - DIAGONAL: Different strike, different expiry, same type - COLLAR_WITH_STOCK: Stock + buy PUT + sell CALL - BUTTERFLY: Buy low + sell 2 mid + buy high (same type) - CONDOR: Four different strikes, same type - IRON_BUTTERFLY: Buy low PUT + sell mid PUT + sell mid CALL + buy high CALL - IRON_CONDOR: Buy low PUT + sell mid-low PUT + sell mid-high CALL + buy high CALL - RATIO: Same expiry, same option type, unequal leg quantities (e.g. buy 1 low-strike CALL + sell 2 high-strike CALLs) — one of: SINGLE, COVERED_STOCK, STRADDLE, STRANGLE, VERTICAL, CALENDAR, DIAGONAL, COLLAR_WITH_STOCK, BUTTERFLY, CONDOR, IRON_BUTTERFLY, IRON_CONDOR, RATIO
strike_price string Exercise price (strike price) of the option. Specifies the price at which the underlying asset can be bought (CALL) or sold (PUT) upon exercise.
option_contract_multiplier string The number of shares corresponding to each option contract
option_contract_deliverable string The number of shares required to exercise each contract
option_expire_date string Expiration date of the option. Format: yyyy-MM-dd. After this date, the option will no longer be valid.

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Order History

GET /broker/orders/historical-orders/list

Retrieves historical orders.

SDK broker.GetOrderHistory
Reference broker-order-history.md

Request — parameters

Name In Type Required Description
account_id query String yes Account identifier.
start_date query String The start date of the query period. If not provided, the default query period is the last 7 days. Users can specify an earlier date, but the maximum allowed look-back period is 6 months. Format: yyyy-MM-dd.
pagination_key query String Pagination key from previous response for next page.

Response 200

Field Type Required Description
client_order_id string yes Client-defined order identifier. Returned in the response for simple orders. Represents the unique order ID assigned by the user when placing the order.
combo_type string Specifies the type of order combination. For details, please refer to Combo Order. - NORMAL: A standard single order. - MASTER: A primary order that triggers a take-profit or stop-loss order upon execution - STOP_PROFIT: A take-profit order - STOP_LOSS: A stop-loss order - OTO: An order that triggers another order upon execution (One-Triggers-the-Other) - OCO: A pair of orders where the execution of one cancels the other (One-Cancels-the-Other) - OTOCO: An order that triggers an OCO order set upon execution (One-Triggers-One-Cancels-the-Other) — one of: NORMAL, MASTER, STOP_PROFIT, STOP_LOSS, OTO, OCO, OTOCO
orders array yes Order Details

Nested — orders:

Field Type Required Description
client_order_id string yes Client-defined order identifier. Returned in the response for simple orders. Represents the unique order ID assigned by the user when placing the order.
order_id string yes System-generated order identifier. Returned in the response for simple orders. Represents the unique Webull order ID assigned by the system.
symbol string yes Trading symbol of the financial instrument.Represents the unique identifier of the security in the specified market (e.g., ticker symbol for equities or option symbol code for derivatives).
side string yes The order side indicating the intended trading direction of the transaction. The meaning of side may vary depending on the instrument_type and account type (e.g., margin vs. cash). — one of: BUY, SELL, SHORT
status string yes - PENDING: Indicates that the order has been submitted to the exchange and is awaiting completion - SUBMITTED: Indicates that the order has been submitted to the exchange and is awaiting completion - CANCELLED: Indicates that the order has been successfully cancelled - FILLED: Indicates that the order has been fully executed - FAILED: Indicates a failed order, such as REJECTED - PARTIAL_FILLED: Refers to the portion of the order that has been completed, but not all of it has been completed — one of: PENDING, SUBMITTED, CANCELLED, FILLED, FAILED, PARTIAL_FILLED
order_type string yes Specifies the type of order to be placed. Determines how the order will be executed in the market. Available order types depend on the market and instrument type. Options trading Only LIMIT,STOP_LOSS,STOP_LOSS_LIMIT are supported. U.S. Stock - LIMIT: Limit Order - MARKET: Market Order - STOP_LOSS: Stop Order - STOP_LOSS_LIMIT: Stop Limit Order - MARKET_ON_OPEN: Opening market order - MARKET_ON_CLOSE: Closing market order Hong Kong Stock - ENHANCED_LIMIT: Enhanced Limit Order - AT_AUCTION: At-auction order - AT_AUCTION_LIMIT: At-auction limit order - STOP_LOSS: Stop Order - STOP_LOSS_LIMIT: Stop Limit Order - TRAILING_STOP_LOSS: Trailing Stop Order - TRAILING_STOP_LOSS_LIMIT: Trailing Stop Limit Order - TOUCH_MKT: Touch Market Order - TOUCH_LMT: Touch Limit Order - MARKET: Market Order - ODD_LOT_LIMIT: Odd Lot Limit Order - MARKET_ON_OPEN: Opening market order - MARKET_ON_CLOSE: Closing market order HK Options - LIMIT: Limit Order - MARKET: Market Order - STOP_LOSS: Stop Order - STOP_LOSS_LIMIT: Stop Limit Order China Connect - LIMIT: Limit Order — one of: LIMIT, MARKET, STOP_LOSS, STOP_LOSS_LIMIT, ENHANCED_LIMIT, AT_AUCTION, AT_AUCTION_LIMIT, MARKET_ON_OPEN, MARKET_ON_CLOSE, TRAILING_STOP_LOSS, TRAILING_STOP_LOSS_LIMIT, TOUCH_MKT, TOUCH_LMT, ODD_LOT_LIMIT
instrument_type string Type of financial instrument associated with the request. — one of: EQUITY, OPTION
support_trading_session string Specifies the trading session for the order. Applicable to U.S. stock market orders only. Deprecated values: - Y: [Deprecated]Include extended trading hours. - N: [Deprecated]Only support regular trading hours. Active values: - NIGHT: Only supports night trading. - ALL: Include extended trading hours. - CORE: Only support regular trading hours. - ALL_DAY: Included Overnight Hours, 8:00 p.m.ET - 8:00 p.m.ET(the next day) — one of: Y, N, NIGHT, ALL, CORE, ALL_DAY
time_in_force string yes Specifies the duration for which the order remains active in the market (Time-In-Force). - DAY: The order is valid only for the current trading day and expires at the end of the day. - GTC: Good-Till-Canceled, the order remains active until it is executed, explicitly canceled, or reaches the maximum allowed duration (typically 90 days). — one of: DAY, GTC
total_quantity string yes Total order quantity. Represents the total number of units submitted for this order.
filled_quantity string Quantity that has been executed. Represents the number of units that have been filled so far.
filled_price string Average transaction price of the filled quantity. If the order has not been executed yet, this may be zero or null.
limit_price string Limit price of the order. Required when order_type is LIMIT, STOP_LOSS_LIMIT, ENHANCED_LIMIT, or AT_AUCTION_LIMIT or TOUCH_LMT. Specifies the maximum (for buy) or minimum (for sell) price at which the order can be executed.
stop_price string Stop price of the order. Required when order_type is STOP_LOSS, STOP_LOSS_LIMIT, TOUCH_MKT or TOUCH_LMT. Specifies the trigger price at which the stop order becomes active.
trailing_type string When market continues to fall, the stop price to buy follows, or trails, the lowest price of a stock by a trail that you set. Required when order_type is TRAILING_STOP_LOSS or TRAILING_STOP_LOSS_LIMIT. - AMOUNT: By amount. - PERCENTAGE: By percentage. — one of: AMOUNT, PERCENTAGE
trailing_stop_step string Trailing Stop Spread. If the tracking type is percentage, the tracking spread can not exceed 1,0.01 means 1%. Required when order_type is TRAILING_STOP_LOSS or TRAILING_STOP_LOSS_LIMIT.
trailing_limit_price_offset string The offset amount between the triggered stop price and the submitted limit price for a trailing stop-limit order. Required when order_type is TRAILING_STOP_LOSS_LIMIT. When triggered, the limit order price is calculated as: - Buy: limit price = stop price + trailing_limit_price_offset - Sell: limit price = stop price - trailing_limit_price_offset If the calculated limit price does not align with the instrument's tick size, it will be rounded to the nearest valid tick: rounded up for buy orders, rounded down for sell orders.
trigger_price_type string Trigger price type of the order - PRICE: Latest transaction price. - PRICE_BID: Buy at one price. - PRICE_ASK: Sell at one price. — one of: PRICE, PRICE_BID, PRICE_ASK
place_time string Order placement time in milliseconds since Unix epoch.
place_time_at string yes Order placement time in ISO8601 format (UTC). Format: YYYY-MM-DDThh:mm:ssZ
filled_time string Time of the last executed trade in milliseconds since Unix epoch.
filled_time_at string Time of the last executed trade in ISO8601 format (UTC). Format: YYYY-MM-DDThh:mm:ssZ
option_strategy string Type of options strategy - SINGLE: Single-leg options order - COVERED_STOCK: Covered call (stock + sell CALL) - STRADDLE: Same strike, same expiry CALL + PUT - STRANGLE: Different strike, same expiry CALL + PUT - VERTICAL: Same expiry, different strike, same type (Bull/Bear Spread) - CALENDAR: Same strike, different expiry, same type - DIAGONAL: Different strike, different expiry, same type - COLLAR_WITH_STOCK: Stock + buy PUT + sell CALL - BUTTERFLY: Buy low + sell 2 mid + buy high (same type) - CONDOR: Four different strikes, same type - IRON_BUTTERFLY: Buy low PUT + sell mid PUT + sell mid CALL + buy high CALL - IRON_CONDOR: Buy low PUT + sell mid-low PUT + sell mid-high CALL + buy high CALL - RATIO: Same expiry, same option type, unequal leg quantities (e.g. buy 1 low-strike CALL + sell 2 high-strike CALLs) — one of: SINGLE, COVERED_STOCK, STRADDLE, STRANGLE, VERTICAL, CALENDAR, DIAGONAL, COLLAR_WITH_STOCK, BUTTERFLY, CONDOR, IRON_BUTTERFLY, IRON_CONDOR, RATIO
legs array Leg detail

Nested — legs:

Field Type Required Description
id string Unique identifier for the leg.
symbol string yes Trading symbol of the financial instrument.Represents the unique identifier of the security in the specified market (e.g., ticker symbol for equities or option symbol code for derivatives).
side string yes The order side indicating the intended trading direction of the transaction. The meaning of side may vary depending on the instrument_type and account type (e.g., margin vs. cash). — one of: BUY, SELL, SHORT
quantity string yes Quantity of the order. Specifies the number of shares or units to transact. For US stocks, fractional quantities are allowed and can include decimals.
option_type string Type of the option. - CALL: Right to buy the underlying asset. - PUT: Right to sell the underlying asset. — one of: CALL, PUT
option_category string Category of the option, indicating its exercise style. Possible values: - AMERICAN: Can be exercised any time before expiration. - EUROPEAN: Can only be exercised at expiration. — one of: AMERICAN, EUROPEAN
option_strategy string Type of options strategy - SINGLE: Single-leg options order - COVERED_STOCK: Covered call (stock + sell CALL) - STRADDLE: Same strike, same expiry CALL + PUT - STRANGLE: Different strike, same expiry CALL + PUT - VERTICAL: Same expiry, different strike, same type (Bull/Bear Spread) - CALENDAR: Same strike, different expiry, same type - DIAGONAL: Different strike, different expiry, same type - COLLAR_WITH_STOCK: Stock + buy PUT + sell CALL - BUTTERFLY: Buy low + sell 2 mid + buy high (same type) - CONDOR: Four different strikes, same type - IRON_BUTTERFLY: Buy low PUT + sell mid PUT + sell mid CALL + buy high CALL - IRON_CONDOR: Buy low PUT + sell mid-low PUT + sell mid-high CALL + buy high CALL - RATIO: Same expiry, same option type, unequal leg quantities (e.g. buy 1 low-strike CALL + sell 2 high-strike CALLs) — one of: SINGLE, COVERED_STOCK, STRADDLE, STRANGLE, VERTICAL, CALENDAR, DIAGONAL, COLLAR_WITH_STOCK, BUTTERFLY, CONDOR, IRON_BUTTERFLY, IRON_CONDOR, RATIO
strike_price string Exercise price (strike price) of the option. Specifies the price at which the underlying asset can be bought (CALL) or sold (PUT) upon exercise.
option_contract_multiplier string The number of shares corresponding to each option contract
option_contract_deliverable string The number of shares required to exercise each contract
option_expire_date string Expiration date of the option. Format: yyyy-MM-dd. After this date, the option will no longer be valid.

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Open Orders

GET /broker/orders/open-orders/list

Retrieves current pending orders list with pagination support.

SDK broker.GetOpenOrders
Reference broker-order-open.md

Request — parameters

Name In Type Required Description
account_id query String yes Account identifier.
pagination_key query String Pagination key from previous response for next page.

Response 200

Field Type Required Description
client_order_id string yes Client-defined order identifier. Returned in the response for simple orders. Represents the unique order ID assigned by the user when placing the order.
combo_type string Specifies the type of order combination. For details, please refer to Combo Order. - NORMAL: A standard single order. - MASTER: A primary order that triggers a take-profit or stop-loss order upon execution - STOP_PROFIT: A take-profit order - STOP_LOSS: A stop-loss order - OTO: An order that triggers another order upon execution (One-Triggers-the-Other) - OCO: A pair of orders where the execution of one cancels the other (One-Cancels-the-Other) - OTOCO: An order that triggers an OCO order set upon execution (One-Triggers-One-Cancels-the-Other) — one of: NORMAL, MASTER, STOP_PROFIT, STOP_LOSS, OTO, OCO, OTOCO
orders array yes Order Details

Nested — orders:

Field Type Required Description
client_order_id string yes Client-defined order identifier. Returned in the response for simple orders. Represents the unique order ID assigned by the user when placing the order.
order_id string yes System-generated order identifier. Returned in the response for simple orders. Represents the unique Webull order ID assigned by the system.
symbol string yes Trading symbol of the financial instrument.Represents the unique identifier of the security in the specified market (e.g., ticker symbol for equities or option symbol code for derivatives).
side string yes The order side indicating the intended trading direction of the transaction. The meaning of side may vary depending on the instrument_type and account type (e.g., margin vs. cash). — one of: BUY, SELL, SHORT
status string yes - PENDING: Indicates that the order has been submitted to the exchange and is awaiting completion - SUBMITTED: Indicates that the order has been submitted to the exchange and is awaiting completion - CANCELLED: Indicates that the order has been successfully cancelled - FILLED: Indicates that the order has been fully executed - FAILED: Indicates a failed order, such as REJECTED - PARTIAL_FILLED: Refers to the portion of the order that has been completed, but not all of it has been completed — one of: PENDING, SUBMITTED, CANCELLED, FILLED, FAILED, PARTIAL_FILLED
order_type string yes Specifies the type of order to be placed. Determines how the order will be executed in the market. Available order types depend on the market and instrument type. Options trading Only LIMIT,STOP_LOSS,STOP_LOSS_LIMIT are supported. U.S. Stock - LIMIT: Limit Order - MARKET: Market Order - STOP_LOSS: Stop Order - STOP_LOSS_LIMIT: Stop Limit Order - MARKET_ON_OPEN: Opening market order - MARKET_ON_CLOSE: Closing market order Hong Kong Stock - ENHANCED_LIMIT: Enhanced Limit Order - AT_AUCTION: At-auction order - AT_AUCTION_LIMIT: At-auction limit order - STOP_LOSS: Stop Order - STOP_LOSS_LIMIT: Stop Limit Order - TRAILING_STOP_LOSS: Trailing Stop Order - TRAILING_STOP_LOSS_LIMIT: Trailing Stop Limit Order - TOUCH_MKT: Touch Market Order - TOUCH_LMT: Touch Limit Order - MARKET: Market Order - ODD_LOT_LIMIT: Odd Lot Limit Order - MARKET_ON_OPEN: Opening market order - MARKET_ON_CLOSE: Closing market order HK Options - LIMIT: Limit Order - MARKET: Market Order - STOP_LOSS: Stop Order - STOP_LOSS_LIMIT: Stop Limit Order China Connect - LIMIT: Limit Order — one of: LIMIT, MARKET, STOP_LOSS, STOP_LOSS_LIMIT, ENHANCED_LIMIT, AT_AUCTION, AT_AUCTION_LIMIT, MARKET_ON_OPEN, MARKET_ON_CLOSE, TRAILING_STOP_LOSS, TRAILING_STOP_LOSS_LIMIT, TOUCH_MKT, TOUCH_LMT, ODD_LOT_LIMIT
instrument_type string Type of financial instrument associated with the request. — one of: EQUITY, OPTION
support_trading_session string Specifies the trading session for the order. Applicable to U.S. stock market orders only. Deprecated values: - Y: [Deprecated]Include extended trading hours. - N: [Deprecated]Only support regular trading hours. Active values: - NIGHT: Only supports night trading. - ALL: Include extended trading hours. - CORE: Only support regular trading hours. - ALL_DAY: Included Overnight Hours, 8:00 p.m.ET - 8:00 p.m.ET(the next day) — one of: Y, N, NIGHT, ALL, CORE, ALL_DAY
time_in_force string yes Specifies the duration for which the order remains active in the market (Time-In-Force). - DAY: The order is valid only for the current trading day and expires at the end of the day. - GTC: Good-Till-Canceled, the order remains active until it is executed, explicitly canceled, or reaches the maximum allowed duration (typically 90 days). — one of: DAY, GTC
total_quantity string yes Total order quantity. Represents the total number of units submitted for this order.
filled_quantity string Quantity that has been executed. Represents the number of units that have been filled so far.
filled_price string Average transaction price of the filled quantity. If the order has not been executed yet, this may be zero or null.
limit_price string Limit price of the order. Required when order_type is LIMIT, STOP_LOSS_LIMIT, ENHANCED_LIMIT, or AT_AUCTION_LIMIT or TOUCH_LMT. Specifies the maximum (for buy) or minimum (for sell) price at which the order can be executed.
stop_price string Stop price of the order. Required when order_type is STOP_LOSS, STOP_LOSS_LIMIT, TOUCH_MKT or TOUCH_LMT. Specifies the trigger price at which the stop order becomes active.
trailing_type string When market continues to fall, the stop price to buy follows, or trails, the lowest price of a stock by a trail that you set. Required when order_type is TRAILING_STOP_LOSS or TRAILING_STOP_LOSS_LIMIT. - AMOUNT: By amount. - PERCENTAGE: By percentage. — one of: AMOUNT, PERCENTAGE
trailing_stop_step string Trailing Stop Spread. If the tracking type is percentage, the tracking spread can not exceed 1,0.01 means 1%. Required when order_type is TRAILING_STOP_LOSS or TRAILING_STOP_LOSS_LIMIT.
trailing_limit_price_offset string The offset amount between the triggered stop price and the submitted limit price for a trailing stop-limit order. Required when order_type is TRAILING_STOP_LOSS_LIMIT. When triggered, the limit order price is calculated as: - Buy: limit price = stop price + trailing_limit_price_offset - Sell: limit price = stop price - trailing_limit_price_offset If the calculated limit price does not align with the instrument's tick size, it will be rounded to the nearest valid tick: rounded up for buy orders, rounded down for sell orders.
trigger_price_type string Trigger price type of the order - PRICE: Latest transaction price. - PRICE_BID: Buy at one price. - PRICE_ASK: Sell at one price. — one of: PRICE, PRICE_BID, PRICE_ASK
place_time string Order placement time in milliseconds since Unix epoch.
place_time_at string yes Order placement time in ISO8601 format (UTC). Format: YYYY-MM-DDThh:mm:ssZ
filled_time string Time of the last executed trade in milliseconds since Unix epoch.
filled_time_at string Time of the last executed trade in ISO8601 format (UTC). Format: YYYY-MM-DDThh:mm:ssZ
option_strategy string Type of options strategy - SINGLE: Single-leg options order - COVERED_STOCK: Covered call (stock + sell CALL) - STRADDLE: Same strike, same expiry CALL + PUT - STRANGLE: Different strike, same expiry CALL + PUT - VERTICAL: Same expiry, different strike, same type (Bull/Bear Spread) - CALENDAR: Same strike, different expiry, same type - DIAGONAL: Different strike, different expiry, same type - COLLAR_WITH_STOCK: Stock + buy PUT + sell CALL - BUTTERFLY: Buy low + sell 2 mid + buy high (same type) - CONDOR: Four different strikes, same type - IRON_BUTTERFLY: Buy low PUT + sell mid PUT + sell mid CALL + buy high CALL - IRON_CONDOR: Buy low PUT + sell mid-low PUT + sell mid-high CALL + buy high CALL - RATIO: Same expiry, same option type, unequal leg quantities (e.g. buy 1 low-strike CALL + sell 2 high-strike CALLs) — one of: SINGLE, COVERED_STOCK, STRADDLE, STRANGLE, VERTICAL, CALENDAR, DIAGONAL, COLLAR_WITH_STOCK, BUTTERFLY, CONDOR, IRON_BUTTERFLY, IRON_CONDOR, RATIO
legs array Leg detail

Nested — legs:

Field Type Required Description
id string Unique identifier for the leg.
symbol string yes Trading symbol of the financial instrument.Represents the unique identifier of the security in the specified market (e.g., ticker symbol for equities or option symbol code for derivatives).
side string yes The order side indicating the intended trading direction of the transaction. The meaning of side may vary depending on the instrument_type and account type (e.g., margin vs. cash). — one of: BUY, SELL, SHORT
quantity string yes Quantity of the order. Specifies the number of shares or units to transact. For US stocks, fractional quantities are allowed and can include decimals.
option_type string Type of the option. - CALL: Right to buy the underlying asset. - PUT: Right to sell the underlying asset. — one of: CALL, PUT
option_category string Category of the option, indicating its exercise style. Possible values: - AMERICAN: Can be exercised any time before expiration. - EUROPEAN: Can only be exercised at expiration. — one of: AMERICAN, EUROPEAN
option_strategy string Type of options strategy - SINGLE: Single-leg options order - COVERED_STOCK: Covered call (stock + sell CALL) - STRADDLE: Same strike, same expiry CALL + PUT - STRANGLE: Different strike, same expiry CALL + PUT - VERTICAL: Same expiry, different strike, same type (Bull/Bear Spread) - CALENDAR: Same strike, different expiry, same type - DIAGONAL: Different strike, different expiry, same type - COLLAR_WITH_STOCK: Stock + buy PUT + sell CALL - BUTTERFLY: Buy low + sell 2 mid + buy high (same type) - CONDOR: Four different strikes, same type - IRON_BUTTERFLY: Buy low PUT + sell mid PUT + sell mid CALL + buy high CALL - IRON_CONDOR: Buy low PUT + sell mid-low PUT + sell mid-high CALL + buy high CALL - RATIO: Same expiry, same option type, unequal leg quantities (e.g. buy 1 low-strike CALL + sell 2 high-strike CALLs) — one of: SINGLE, COVERED_STOCK, STRADDLE, STRANGLE, VERTICAL, CALENDAR, DIAGONAL, COLLAR_WITH_STOCK, BUTTERFLY, CONDOR, IRON_BUTTERFLY, IRON_CONDOR, RATIO
strike_price string Exercise price (strike price) of the option. Specifies the price at which the underlying asset can be bought (CALL) or sold (PUT) upon exercise.
option_contract_multiplier string The number of shares corresponding to each option contract
option_contract_deliverable string The number of shares required to exercise each contract
option_expire_date string Expiration date of the option. Format: yyyy-MM-dd. After this date, the option will no longer be valid.

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Get FX Rate

GET /broker/funding/fx-rates/get

Retrieves the currency exchange rate based on currency pair.

SDK broker.GetFXRate
Reference broker-funding-query-rate.md

Request — parameters

Name In Type Required Description
from_currency query string yes Which currency you use for exchange. — one of: CNH, HKD, USD
to_currency query string yes Target currency you plan to get for exchange. — one of: CNH, HKD, USD

Response 200

Field Type Required Description
from_currency string yes Currency — one of: CNH, HKD, USD
to_currency string yes Currency — one of: CNH, HKD, USD
fx_rate string yes FX rate
rate_effective_time string yes Effective time of the FX rate (ISO 8601 format, UTC time zone).
rate_expire_time string yes Expiration time of the FX rate (ISO 8601 format, UTC time zone).

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Create FX Request

POST /broker/funding/fx-exchanges/create

Creates a currency exchange request at the Omnibus master account level. Requires base currency, base amount and target currency as inputs. Uses the latest FX rate for currency exchange processing.

SDK broker.CreateFXExchange
Reference broker-funding-create-fx.md

Request body

Field Type Required Description
account_id string yes Account identifier, Exchange on which account id.
client_request_id string yes Client Request ID, unique for each request. Maximum length is 32 characters. Allowed characters: letters (A–Z, a–z), digits (0–9), hyphen (-), underscore (_).
from_amount string yes Base amount for exchange.
from_currency string yes Currency — one of: CNH, HKD, USD
to_currency string yes Currency — one of: CNH, HKD, USD

Response 200

Field Type Required Description
account_id string yes Account identifier, Exchange on which account id.
client_request_id string yes Client Request ID, unique for each request.
fx_id string yes Request id generated by the system.
from_amount string yes Base amount for exchange.
from_currency string yes Currency — one of: CNH, HKD, USD
to_currency string yes Currency — one of: CNH, HKD, USD
status string yes Request status — one of: SUBMITTED, CANCELED, REJECTED, FAILED, COMPLETED

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Get FX Detail

GET /broker/funding/fx-exchanges/get

Retrieves currency exchange record details at the Omnibus master account level.

SDK broker.GetFXExchangeDetail
Reference broker-funding-query-fx.md

Request — parameters

Name In Type Required Description
client_request_id query String yes Client Request ID, unique for each request. Maximum length is 32 characters. Allowed characters: letters (A–Z, a–z), digits (0–9), hyphen (-), underscore (_).
account_id query String yes Account identifier

Response 200

Field Type Required Description
account_id string yes Account identifier, Exchange on which account id.
client_request_id string yes Client Request ID, unique for each request.
fx_id string yes Request id generated by the system.
from_amount string Base amount for exchange.
to_amount string Amount after exchange.
from_currency string yes Currency — one of: CNH, HKD, USD
to_currency string yes Currency — one of: CNH, HKD, USD
fx_rate string FX rate
status string yes Request status — one of: SUBMITTED, CANCELED, REJECTED, FAILED, COMPLETED
reason string Reason. If the terminal state is not “COMPLETED”, return the reason.

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Create Instant Exchange

POST /broker/funding/instant-exchanges/create

Creates an instant currency exchange request at the Virtual account level. Requires base currency, base amount, target currency, and target amount as inputs. This feature does not rely on the latest FX rate provided by Webull.

SDK broker.CreateInstantExchange
Reference broker-funding-create-instant-fx.md

Request body

Field Type Required Description
account_id string yes Account identifier, Exchange on which account id.
client_request_id string yes Client Request ID, unique for each request. Maximum length is 32 characters. Allowed characters: letters (A–Z, a–z), digits (0–9), hyphen (-), underscore (_).
from_amount string yes Base amount for exchange.
to_amount string yes Amount after exchange.
from_currency string yes Currency — one of: CNH, HKD, USD
to_currency string yes Currency — one of: CNH, HKD, USD

Response 200

Field Type Required Description
account_id string yes Account identifier, Exchange on which account id.
client_request_id string yes Client Request ID, unique for each request.
instant_exchange_id string yes Request id generated by the system.
from_amount string yes Base amount for exchange.
to_amount string yes Amount after exchange.
from_currency string yes Currency — one of: CNH, HKD, USD
to_currency string yes Currency — one of: CNH, HKD, USD
status string yes Request status — one of: SUBMITTED, CANCELED, REJECTED, FAILED, COMPLETED
reason string Reason. If the terminal state is not “COMPLETED”, return the reason.

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Get Instant Exchange Detail

GET /broker/funding/instant-exchanges/get

Retrieves instant currency exchange record details at the Omnibus master account level.

SDK broker.GetInstantExchangeDetail
Reference broker-funding-query-instant-fx.md

Request — parameters

Name In Type Required Description
client_request_id query String yes Client Request ID, unique for each request. Maximum length is 32 characters. Allowed characters: letters (A–Z, a–z), digits (0–9), hyphen (-), underscore (_).
account_id query String yes Account identifier

Response 200

Field Type Required Description
account_id string yes Account identifier, Exchange on which account id.
client_request_id string yes Client Request ID, unique for each request.
instant_exchange_id string yes Request id generated by the system.
from_amount string yes Base amount for exchange.
to_amount string yes Amount after exchange.
from_currency string yes Currency — one of: CNH, HKD, USD
to_currency string yes Currency — one of: CNH, HKD, USD
status string yes Request status — one of: SUBMITTED, CANCELED, REJECTED, FAILED, COMPLETED
reason string Reason. If the terminal state is not “COMPLETED”, return the reason.

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Create Instant Funding

POST /broker/funding/instant-funding/create

Creates an instant funding request at the Virtual account level.

SDK broker.CreateInstantFunding
Reference broker-funding-instant-create.md

Request body

Field Type Required Description
account_id string yes Account identifier, Exchange on which account id.
type string yes Instant Funding Request Type — one of: DEPOSIT, WITHDRAWAL
client_request_id string yes Client Request ID, unique for each request. Maximum length is 32 characters. Allowed characters: letters (A–Z, a–z), digits (0–9), hyphen (-), underscore (_).
amount string yes Amount.
currency string yes Currency — one of: CNH, HKD, USD

Response 200

Field Type Required Description
account_id string yes Account identifier, Exchange on which account id.
type string yes Instant Funding Request Type — one of: DEPOSIT, WITHDRAWAL
client_request_id string yes Client Request ID, unique for each request.
instant_funding_id string yes Request id generated by the system.
amount string yes Amount.
currency string yes Currency — one of: CNH, HKD, USD
status string yes Request status — one of: SUBMITTED, CANCELED, REJECTED, FAILED, COMPLETED
reason string Reason. If the terminal state is not “COMPLETED”, return the reason.

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Get Instant Funding Detail

GET /broker/funding/instant-funding/get

Retrieves instant funding record details at the Virtual account level.

SDK broker.GetInstantFundingDetail
Reference broker-funding-instant-query.md

Request — parameters

Name In Type Required Description
client_request_id query String yes Client Request ID, unique for each request. Maximum length is 32 characters. Allowed characters: letters (A–Z, a–z), digits (0–9), hyphen (-), underscore (_).
account_id query String yes Account identifier

Response 200

Field Type Required Description
account_id string yes Account identifier, Exchange on which account id.
type string yes Instant Funding Request Type — one of: DEPOSIT, WITHDRAWAL
client_request_id string yes Client Request ID, unique for each request.
instant_funding_id string yes Request id generated by the system.
amount string yes Amount.
currency string yes Currency — one of: CNH, HKD, USD
status string yes Request status — one of: SUBMITTED, CANCELED, REJECTED, FAILED, COMPLETED
reason string Reason. If the terminal state is not “COMPLETED”, return the reason.

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Create Cash Journal

POST /broker/journals/cash-journals/create

Creates a cash journal request. Cash journal supports both Omnibus master account level and Virtual account level.

SDK broker.CreateCashJournal
Reference broker-journal-cash-create.md

Request body

Field Type Required Description
from_account string yes From account id.
to_account string yes To account id.
client_request_id string yes Client Request ID, unique for each request. Maximum length is 32 characters. Allowed characters: letters (A–Z, a–z), digits (0–9), hyphen (-), underscore (_).
amount string yes Amount
currency string yes Currency — one of: CNH, HKD, USD

Response 200

Field Type Required Description
from_account string yes From account id.
to_account string yes To account id.
client_request_id string yes Client Request ID, unique for each request.
journal_id string yes Request id generated by the system.
amount string yes Amount
currency string yes Currency — one of: CNH, HKD, USD
status string yes Request status — one of: SUBMITTED, CANCELED, REJECTED, FAILED, COMPLETED
reason string Reason. If the terminal state is not “COMPLETED”, return the reason.

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Get Cash Journal Detail

GET /broker/journals/cash-journals/get

Retrieves detailed information for a cash journal request.

SDK broker.GetCashJournalDetail
Reference broker-journal-cash-query.md

Request — parameters

Name In Type Required Description
client_request_id query String yes Client Request ID, unique for each request. Maximum length is 32 characters. Allowed characters: letters (A–Z, a–z), digits (0–9), hyphen (-), underscore (_).
account_id query String yes From account identifier.

Response 200

Field Type Required Description
from_account string yes From account id.
to_account string yes To account id.
client_request_id string yes Client Request ID, unique for each request.
journal_id string yes Request id generated by the system.
amount string yes Amount
currency string yes Currency — one of: CNH, HKD, USD
status string yes Request status — one of: SUBMITTED, CANCELED, REJECTED, FAILED, COMPLETED
reason string Reason. If the terminal state is not “COMPLETED”, return the reason.

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Create Position Journal

POST /broker/journals/position-journals/create

Creates a position journal request. Position journal only supports Virtual account level.

SDK broker.CreatePositionJournal
Reference broker-journal-position-create.md

Request body

Field Type Required Description
from_account string yes From account id.
to_account string yes To account id.
client_request_id string yes Client Request ID, unique for each request. Maximum length is 32 characters. Allowed characters: letters (A–Z, a–z), digits (0–9), hyphen (-), underscore (_).
instrument_type string yes Type of financial instrument associated with the request. — one of: EQUITY, OPTION
market string yes Market code indicating the trading venue or regulatory region of the financial instrument. Used together with symbol and instrument_type to uniquely identify a tradable instrument. — one of: US, HK, CN
quantity string yes Quantity, positive number.
symbol string yes Symbol name. Options use OCC format.

Response 200

Field Type Required Description
from_account string yes From account id.
to_account string yes To account id.
client_request_id string yes Client Request ID, unique for each request.
journal_id string yes Request id generated by the system.
instrument_type string yes Type of financial instrument associated with the request. — one of: EQUITY, OPTION
market string yes Market code indicating the trading venue or regulatory region of the financial instrument. Used together with symbol and instrument_type to uniquely identify a tradable instrument. — one of: US, HK, CN
quantity string yes Quantity, positive number.
symbol string yes Symbol name. Options use OCC format.
status string yes Request status — one of: SUBMITTED, CANCELED, REJECTED, FAILED, COMPLETED
reason string Reason for failure. Returned when the terminal state is not COMPLETED.

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Get Position Journal Detail

GET /broker/journals/position-journals/get

Retrieves detailed information for a position journal request.

SDK broker.GetPositionJournalDetail
Reference broker-journal-position-query.md

Request — parameters

Name In Type Required Description
client_request_id query String yes Client Request ID, unique for each request. Maximum length is 32 characters. Allowed characters: letters (A–Z, a–z), digits (0–9), hyphen (-), underscore (_).
account_id query String yes From account identifier.

Response 200

Field Type Required Description
from_account string yes From account id.
to_account string yes To account id.
client_request_id string yes Client Request ID, unique for each request.
journal_id string yes Request id generated by the system.
instrument_type string yes Type of financial instrument associated with the request. — one of: EQUITY, OPTION
market string yes Market code indicating the trading venue or regulatory region of the financial instrument. Used together with symbol and instrument_type to uniquely identify a tradable instrument. — one of: US, HK, CN
quantity string yes Quantity, positive number.
symbol string yes Symbol name. Options use OCC format.
status string yes Request status — one of: SUBMITTED, CANCELED, REJECTED, FAILED, COMPLETED
reason string Reason for failure. Returned when the terminal state is not COMPLETED.

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Trade Calendar

GET /broker/master-data/trading-calendars/list

Retrieves trading and settlement calendar based on markets and product types.

SDK broker.GetTradeCalendar
Reference broker-trade-calendar.md

Request — parameters

Name In Type Required Description
market query string yes Country code, US,HK,etc. — one of: US, HK, CN
instrument_type query string yes Type of financial instrument associated with the request. — one of: EQUITY, OPTION
year query String yes Query Year in YYYY format

Response 200

Array of objects:

Field Type Required Description
date string yes Date string in YYYY-MM-DD format.
settlement_date string Settlement Date string in YYYY-MM-DD format.
is_trading_day boolean yes Is Trading Day
is_early_close boolean Whether it is a half-day trading session
is_settlement_day boolean yes Is Settlement Day

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Account Events

SDK
Reference broker-account-events.md
Note gRPC subscription.

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Instrument Events

SDK
Reference broker-instrument-events.md
Note gRPC subscription.

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Corporate Actions Events

SDK
Reference broker-ca-events.md
Note gRPC subscription.

Errors401 unauthorized, 417 business error, 500 server error. See Errors.

Trade Events

Reference: broker-trade-events.md

SDK:

Note: gRPC subscription.

To enable third-party systems to promptly obtain order execution results and order status updates, Broker OpenAPI provides an asynchronous active push mechanism for order trading events.

Clients can subscribe to order-related events to receive notifications, allowing them to monitor order processing results and execution status changes in real time.

Order

Order Event Notification

{
"id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",    
"event_type": "TRADE",    
"timestamp": "2025-03-29T07:02:33.200962333Z",    
"payload": {  
   "request_id": "1045474398137483264",
    "account_id": "4MHSOMIJ88O7E80VBG0O4G6E9A",
    "client_order_id": "db74f19918054a7e9bb72067731c9ae4",
    "instrument_id": "913256135",
    "order_status": "PARTIAL_FILLED",
    "symbol": "AAPL",
    "qty": "10.00",
    "filled_price": "180.00",
    "filled_qty": "1.00",
    "filled_time": "2025-11-21T06:27:43.312+0000",
    "side": "BUY",
    "category": "US_STOCK",
    "order_type": "LIMIT",
    "scene_type": "FILLED",
    "biz_type":"TRADE"
    }
}
{
"id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",    
"event_type": "TRADE",    
"timestamp": "2025-03-29T07:02:33.200962333Z",    
"payload": {  
   "request_id": "1045474398137483264",
    "account_id": "4MHSOMIJ88O7E80VBG0O4G6E9A",
    "order_id": "036LVV5P4I8BV0KHKN60000000",
    "client_order_id": "db74f19918054a7e9bb72067731c9ae4",
    "instrument_id": "913256135",
    "order_status": "FILLED",
    "symbol": "AAPL",
    "qty": "10.00",
    "filled_price": "180.00",
    "filled_qty": "10.00",
    "filled_time": "2025-11-21T06:27:43.312+0000",
    "side": "BUY",
    "category": "US_STOCK",
    "order_type": "LIMIT",
    "scene_type": "FINAL_FILLED",
    "biz_type":"TRADE"
    }
}
{
"id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",    
"event_type": "TRADE",    
"timestamp": "2025-03-29T07:02:33.200962333Z",    
"payload": {
    "request_id": "1045474643156140032",
    "account_id": "4MHSOMIJ88O7E80VBG0O4G6E9A",
    "order_id": "036LVV5P4I8BV0KHKN60000000",
    "client_order_id": "de2868b71c154bcaafd2baca61127966",
    "instrument_id": "913256135",
    "order_status": "FAILED",
    "symbol": "AAPL",
    "qty": "10.00",
    "side": "BUY",
    "category": "US_STOCK",
    "order_type": "LIMIT",
    "scene_type": "PLACE_FAILED",
    "biz_type":"TRADE"
    }
}
{
"id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",    
"event_type": "TRADE",      
"timestamp": "2025-03-29T07:02:33.200962333Z",    
"payload": {
    "account_id": "PHIUK08VAKH7EOVG85ULCAG3JB",
    "request_id": "036LVV5P4I8BV0KHKN60000000",
    "order_id": "036LVV5P4I8BV0KHKN60000000",
    "client_order_id": "04cda8db7ed940f6afeb26be6201ee53",
    "instrument_id": "913256135",
    "order_status": "SUBMITTED",
    "symbol": "AAPL",
    "qty": "4.0000000000",
    "filled_price": "0E-10",
    "filled_qty": "0E-10",
    "side": "BUY",
    "category": "US_STOCK",
    "order_type": "LIMIT",
    "scene_type": "MODIFY_SUCCESS",
    "biz_type":"TRADE"
}
}
{
"id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",    
"event_type": "TRADE",    
"timestamp": "2025-03-29T07:02:33.200962333Z",    
"payload": {
    "account_id": "PHIUK08VAKH7EOVG85ULCAG3JB",
    "request_id": "036LVV5P4I8BV0KHKN60000000",
    "order_id": "036LVV5P4I8BV0KHKN60000000",
    "client_order_id": "04cda8db7ed940f6afeb26be6201ee53",
    "instrument_id": "913256135",
    "order_status": "SUBMITTED",
    "symbol": "AAPL",
    "qty": "4.0000000000",
    "filled_price": "0E-10",
    "filled_qty": "0E-10",
    "side": "BUY",
    "category": "US_STOCK",
    "order_type": "LIMIT",
    "scene_type": "MODIFY_FAILED",
    "biz_type":"TRADE"
}
}
{
"id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",    
"event_type": "TRADE",      
"timestamp": "2025-03-29T07:02:33.200962333Z",    
"payload": {
    "account_id": "PHIUK08VAKH7EOVG85ULCAG3JB",
    "request_id": "036LVV5P4I8BV0KHKN60000000",
    "order_id": "036LVV5P4I8BV0KHKN60000000",
    "client_order_id": "04cda8db7ed940f6afeb26be6201ee53",
    "instrument_id": "913256135",
    "order_status": "CANCELLED",
    "symbol": "AAPL",
    "qty": "4.0000000000",
    "filled_price": "0E-10",
    "filled_qty": "0E-10",
    "side": "BUY",
    "category": "US_STOCK",
    "order_type": "LIMIT",
    "scene_type": "CANCEL_SUCCESS",
    "biz_type":"TRADE"
}
}
{
"id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",    
"event_type": "TRADE",      
"timestamp": "2025-03-29T07:02:33.200962333Z",    
"payload": {
    "account_id": "PHIUK08VAKH7EOVG85ULCAG3JB",
    "request_id": "036LVV5P4I8BV0KHKN60000000",
    "order_id": "036LVV5P4I8BV0KHKN60000000",
    "client_order_id": "04cda8db7ed940f6afeb26be6201ee53",
    "instrument_id": "913256135",
    "order_status": "SUBMITTED",
    "symbol": "AAPL",
    "qty": "4.0000000000",
    "filled_price": "0E-10",
    "filled_qty": "0E-10",
    "side": "BUY",
    "category": "US_STOCK",
    "order_type": "LIMIT",
    "scene_type": "CANCEL_FAILED",
    "biz_type":"TRADE"
}
}

Response Fields

Field Type Description
id string Unique event identifier
event_type string Event type, fixed as TRADE
timestamp string Event timestamp in ISO 8601 format
payload object Event payload data

Payload Fields

Field Type Description
account_id string Account id
request_id string Request Id
order_id string System-generated order identifier.
client_order_id array Client-defined order identifier.
instrument_id string Instrument Id
order_status string Order Status, See the status field in the Order Detail API response.
symbol string Trading symbol of the financial instrument.Represents the unique identifier of the security in the specified market.
qty string Total order quantity. Represents the total number of units submitted for this order.
filled_qty string Quantity that has been executed. Represents the number of units that have been filled so far.
filled_price string Average transaction price of the filled quantity. If the order has not been executed yet, this may be zero or null.
filled_time string Time of the last executed trade. Example: 2025-11-21T06:27:43.312+0000
side string Order Side, See the side field in the Order Detail API response.
category string Category, HK_STOCK or US_STOCK .
order_type string Order Type, See the order_type field in the Order Detail API response.
scene_type string Indicates the order event scenario or execution result.
biz_type string Business type, fixed as TRADE

Scene Types

scene_type Description
FILLED Partially filled
FINAL_FILLED All filled
PLACE_FAILED Order failed
MODIFY_SUCCESS Change order successfully
MODIFY_FAILED Change order failed
CANCEL_SUCCESS Cancellation succeeded
CANCEL_FAILED Cancellation failed

Funding Events

Reference: broker-funding-events.md

SDK:

Note: gRPC subscription.

To enable third-party systems to promptly obtain the execution results of foreign exchange and deposit/withdrawal operations, Broker OpenAPI provides an asynchronous proactive event push mechanism for FX conversion and deposit/withdrawal transaction events.

Clients can subscribe to receive relevant events, allowing them to monitor transaction processing results and status changes in real time.

Instant Funding

Instant Funding Event Notification

{
    "id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",
    "event_type": "FUNDING",
    "timestamp": "2025-03-29T07:02:33.200962333Z",
    "payload": {
        "account_id": "93IUJ28O9VO2KBGHDHR4H9",
        "client_request_id": "LJIS16BACHQG9LPP44L9IQHGAB",
        "instant_funding_id": "89JGKD4LKIVI5UU6L3KHNU10IA",
        "amount": "100",
        "currency": "HKD",
        "type": "DEPOSIT",
        "status": "CANCELED",
        "reason": "xxxxxx",
        "biz_type": "INSTANT_FUNDING"
    }
}
{
    "id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",
    "event_type": "FUNDING",
    "timestamp": "2025-03-29T07:02:33.200962333Z",
    "payload": {
        "account_id": "93IUJ28O9VO2KBGHDHR4H9",
        "client_request_id": "LJIS16BACHQG9LPP44L9IQHGAB",
        "instant_funding_id": "89JGKD4LKIVI5UU6L3KHNU10IA",
        "amount": "100",
        "currency": "HKD",
        "type": "DEPOSIT",
        "status": "REJECTED",
        "reason": "xxxxxx",
        "biz_type": "INSTANT_FUNDING"
    }
}
{
    "id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",
    "event_type": "FUNDING",
    "timestamp": "2025-03-29T07:02:33.200962333Z",
    "payload": {
        "account_id": "93IUJ28O9VO2KBGHDHR4H9",
        "client_request_id": "LJIS16BACHQG9LPP44L9IQHGAB",
        "instant_funding_id": "89JGKD4LKIVI5UU6L3KHNU10IA",
        "amount": "100",
        "currency": "HKD",
        "type": "DEPOSIT",
        "status": "FAILED",
        "reason": "xxxxxx",
        "biz_type": "INSTANT_FUNDING"
    }
}
{
    "id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",
    "event_type": "FUNDING",
    "timestamp": "2025-03-29T07:02:33.200962333Z",
    "payload": {
        "account_id": "93IUJ28O9VO2KBGHDHR4H9",
        "client_request_id": "LJIS16BACHQG9LPP44L9IQHGAB",
        "instant_funding_id": "89JGKD4LKIVI5UU6L3KHNU10IA",
        "amount": "100",
        "currency": "HKD",
        "type": "DEPOSIT",
        "status": "COMPLETED",
        "biz_type": "INSTANT_FUNDING"
    }
}

Response Fields

Field Type Description
id string Unique event identifier
event_type string Event type, fixed as FUNDING
timestamp string Event timestamp in ISO 8601 format
payload object Event payload data

Payload Fields

Field Type Description
account_id string Account id
client_request_id string Client Request ID, unique for each request.
instant_funding_id string Request id generated by the system.
amount string Amount.
currency string Currency, See the currency field in the Get Instant Funding Detail API response.
type string Instant Funding Request Type, See the type field in the Get Instant Funding Detail API response.
status string Request status, See the status field in the Get Instant Funding Detail API response.
reason string Reason. If the terminal state is not “COMPLETED”, return the reason.
biz_type string Business type, fixed as INSTANT_FUNDING

Instant Exchange

Instant Exchange Event Notification

{
    "id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",
    "event_type": "FUNDING",
    "timestamp": "2025-03-29T07:02:33.200962333Z",
    "payload": {
        "account_id": "93IUJ28O9VO2KBGHDHR4H9",
        "client_request_id": "LJIS16BACHQG9LPP44L9IQHGAB",
        "instant_exchange_id": "89JGKD4LKIVI5UU6L3KHNU10IA",
        "from_amount": "100",
        "to_amount": "700",
        "from_currency": "USD",
        "to_currency": "HKD",
        "status": "CANCELED",
        "reason": "xxxxxx",
        "biz_type": "INSTANT_EXCHANGE"
    }
}
{
    "id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",
    "event_type": "FUNDING",
    "timestamp": "2025-03-29T07:02:33.200962333Z",
    "payload": {
        "account_id": "93IUJ28O9VO2KBGHDHR4H9",
        "client_request_id": "LJIS16BACHQG9LPP44L9IQHGAB",
        "instant_exchange_id": "89JGKD4LKIVI5UU6L3KHNU10IA",
        "from_amount": "100",
        "to_amount": "700",
        "from_currency": "USD",
        "to_currency": "HKD",
        "status": "REJECTED",
        "reason": "xxxxxx",
        "biz_type": "INSTANT_EXCHANGE"
    }
}
{
    "id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",
    "event_type": "FUNDING",
    "timestamp": "2025-03-29T07:02:33.200962333Z",
    "payload": {
        "account_id": "93IUJ28O9VO2KBGHDHR4H9",
        "client_request_id": "LJIS16BACHQG9LPP44L9IQHGAB",
        "instant_exchange_id": "89JGKD4LKIVI5UU6L3KHNU10IA",
        "from_amount": "100",
        "to_amount": "700",
        "from_currency": "USD",
        "to_currency": "HKD",
        "status": "FAILED",
        "reason": "xxxxxx",
        "biz_type": "INSTANT_EXCHANGE"
    }
}
{
    "id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",
    "event_type": "FUNDING",
    "timestamp": "2025-03-29T07:02:33.200962333Z",
    "payload": {
        "account_id": "93IUJ28O9VO2KBGHDHR4H9",
        "client_request_id": "LJIS16BACHQG9LPP44L9IQHGAB",
        "instant_exchange_id": "89JGKD4LKIVI5UU6L3KHNU10IA",
        "from_amount": "100",
        "to_amount": "700",
        "from_currency": "USD",
        "to_currency": "HKD",
        "status": "COMPLETED",
        "biz_type": "INSTANT_EXCHANGE"
    }
}

Response Fields

Field Type Description
id string Unique event identifier
event_type string Event type, fixed as FUNDING
timestamp string Event timestamp in ISO 8601 format
payload object Event payload data

Payload Fields

Field Type Description
account_id string Account id
client_request_id string Client Request ID, unique for each request.
instant_exchange_id string Request id generated by the system.
from_amount string Base amount for exchange.
to_amount string Amount after exchange.
from_currency string Base currency for exchange., See the from_currency field in the Get Instant Exchange Detail API response.
to_currency string Currency after exchange. , See the to_currency field in the Get Instant Exchange Detail API response.
status string Request status, See the status field in the Get Instant Exchange Detail API response.
reason string Reason. If the terminal state is not “COMPLETED”, return the reason.
biz_type string Business type, fixed as INSTANT_EXCHANGE

Exchange

Foreign Exchange Conversion Event Notification

{
    "id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",
    "event_type": "FUNDING",
    "timestamp": "2025-03-29T07:02:33.200962333Z",
    "payload": {
        "account_id": "93IUJ28O9VO2KBGHDHR4H9",
        "client_request_id": "LJIS16BACHQG9LPP44L9IQHGAB",
        "fx_id": "89JGKD4LKIVI5UU6L3KHNU10IA",
        "from_amount": "100",
        "from_currency": "USD",
        "to_currency": "HKD",
        "status": "CANCELED",
        "reason": "xxxxxx",
        "biz_type": "EXCHANGE"
    }
}
{
    "id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",
    "event_type": "FUNDING",
    "timestamp": "2025-03-29T07:02:33.200962333Z",
    "payload": {
        "account_id": "93IUJ28O9VO2KBGHDHR4H9",
        "client_request_id": "LJIS16BACHQG9LPP44L9IQHGAB",
        "fx_id": "89JGKD4LKIVI5UU6L3KHNU10IA",
        "from_amount": "100",
        "from_currency": "USD",
        "to_currency": "HKD",
        "status": "REJECTED",
        "reason": "xxxxxx",
        "biz_type": "EXCHANGE"
    }
}
{
    "id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",
    "event_type": "FUNDING",
    "timestamp": "2025-03-29T07:02:33.200962333Z",
    "payload": {
        "account_id": "93IUJ28O9VO2KBGHDHR4H9",
        "client_request_id": "LJIS16BACHQG9LPP44L9IQHGAB",
        "fx_id": "89JGKD4LKIVI5UU6L3KHNU10IA",
        "from_amount": "100",
        "from_currency": "USD",
        "to_currency": "HKD",
        "status": "FAILED",
        "reason": "xxxxxx",
        "biz_type": "EXCHANGE"
    }
}
{
    "id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",
    "event_type": "FUNDING",
    "timestamp": "2025-03-29T07:02:33.200962333Z",
    "payload": {
        "account_id": "93IUJ28O9VO2KBGHDHR4H9",
        "client_request_id": "LJIS16BACHQG9LPP44L9IQHGAB",
        "fx_id": "89JGKD4LKIVI5UU6L3KHNU10IA",
        "from_amount": "100",
        "to_amount": "801",
        "from_currency": "USD",
        "to_currency": "HKD",
        "fx_rate": "8.01",
        "status": "COMPLETED",
        "biz_type": "EXCHANGE"
    }
}

Response Fields

Field Type Description
id string Unique event identifier
event_type string Event type, fixed as FUNDING
timestamp string Event timestamp in ISO 8601 format
payload object Event payload data

Payload Fields

Field Type Description
account_id string Account id
client_request_id string Client Request ID, unique for each request.
fx_id string Request id generated by the system.
from_amount string Base amount for exchange.
to_amount string Amount after exchange.
from_currency string Base currency for exchange., See the from_currency field in the Get FX Detail API response.
to_currency string Currency after exchange. , See the to_currency field in the Get FX Detail API response.
fx_rate string FX ratre.
status string Request status, See the status field in the Get FX Detail API response.
reason string Reason. If the terminal state is not “COMPLETED”, return the reason.
biz_type string Business type, fixed as EXCHANGE

Journal Events

Reference: broker-journal-events.md

SDK:

Note: gRPC subscription.

To enable third-party systems to promptly obtain the results of journal transfers (cash / position), Broker OpenAPI supports an asynchronous event push mechanism for journal transfer–related operations (cash / position).

When the status of a journal transfer operation (cash / position) changes, the system will deliver event notifications, and subscribed clients will receive the final or intermediate execution results.

Cash Journal

Cash Journal Event Notification

{
    "id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",
    "event_type": "JOURNAL",
    "timestamp": "2025-03-29T07:02:33.200962333Z",
    "payload": {
        "from_account": "93IUJ28O9VO2KBGHDHR4H9",
        "to_account": "41IO9QG4M5O65B0EA4LSJ4UJ99",
        "client_request_id": "LJIS16BACHQG9LPP44L9IQHGAB",
        "journal_id": "89JGKD4LKIVI5UU6L3KHNU10IA",
        "journal_type": "CASH",
        "amount": "100",
        "currency": "USD",
        "status": "CANCELED",
        "reason": "xxxxxx",
        "biz_type": "CASH_JOURNAL"
    }
}
{
    "id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",
    "event_type": "JOURNAL",
    "timestamp": "2025-03-29T07:02:33.200962333Z",
    "payload": {
        "from_account": "93IUJ28O9VO2KBGHDHR4H9",
        "to_account": "41IO9QG4M5O65B0EA4LSJ4UJ99",
        "client_request_id": "LJIS16BACHQG9LPP44L9IQHGAB",
        "journal_id": "89JGKD4LKIVI5UU6L3KHNU10IA",
        "journal_type": "CASH",
        "amount": "100",
        "currency": "USD",
        "status": "REJECTED",
        "reason": "xxxxxx",
        "biz_type": "CASH_JOURNAL"
    }
}
{
    "id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",
    "event_type": "JOURNAL",
    "timestamp": "2025-03-29T07:02:33.200962333Z",
    "payload": {
        "from_account": "93IUJ28O9VO2KBGHDHR4H9",
        "to_account": "41IO9QG4M5O65B0EA4LSJ4UJ99",
        "client_request_id": "LJIS16BACHQG9LPP44L9IQHGAB",
        "journal_id": "89JGKD4LKIVI5UU6L3KHNU10IA",
        "journal_type": "CASH",
        "amount": "100",
        "currency": "USD",
        "status": "FAILED",
        "reason": "xxxxxx",
        "biz_type": "CASH_JOURNAL"
    }
}
{
    "id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",
    "event_type": "JOURNAL",
    "timestamp": "2025-03-29T07:02:33.200962333Z",
    "payload": {
        "from_account": "93IUJ28O9VO2KBGHDHR4H9",
        "to_account": "41IO9QG4M5O65B0EA4LSJ4UJ99",
        "client_request_id": "LJIS16BACHQG9LPP44L9IQHGAB",
        "journal_id": "89JGKD4LKIVI5UU6L3KHNU10IA",
        "journal_type": "CASH",
        "amount": "100",
        "currency": "USD",
        "status": "COMPLETED",
        "biz_type": "CASH_JOURNAL"
    }
}

Response Fields

Field Type Description
id string Unique event identifier
event_type string Event type, fixed as JOURNAL
timestamp string Event timestamp in ISO 8601 format
payload object Event payload data

Payload Fields

Field Type Description
from_account string From account id.
to_account string To account id.
client_request_id string Client Request ID, unique for each request.
journal_id string Request id generated by the system.
journal_type string Journal type, fixed as CASH
amount string Amount
currency string Currency, See the currency field in the Query Cash Journal Detail API response.
status string Request status, See the status field in the Query Cash Journal Detail API response.
reason string Reason. If the terminal state is not “COMPLETED”, return the reason.
biz_type string Business type, fixed as CASH_JOURNAL

Position Journal

Position Journal Event Notification

{
    "id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",
    "event_type": "JOURNAL",
    "timestamp": "2025-03-29T07:02:33.200962333Z",
    "payload": {
        "from_account": "93IUJ28O9VO2KBGHDHR4H9",
        "to_account": "41IO9QG4M5O65B0EA4LSJ4UJ99",
        "client_request_id": "LJIS16BACHQG9LPP44L9IQHGAB",
        "journal_id": "89JGKD4LKIVI5UU6L3KHNU10IA",
        "journal_type": "POSITION",
        "instrument_type": "EQUITY",
        "market": "US",
        "symbol": "BULL",
        "quantity": "100",
        "status": "CANCELED",
        "reason": "xxxxxx",
        "biz_type": "POSITION_JOURNAL"
    }
}
{
    "id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",
    "event_type": "JOURNAL",
    "timestamp": "2025-03-29T07:02:33.200962333Z",
    "payload": {
        "from_account": "93IUJ28O9VO2KBGHDHR4H9",
        "to_account": "41IO9QG4M5O65B0EA4LSJ4UJ99",
        "client_request_id": "LJIS16BACHQG9LPP44L9IQHGAB",
        "journal_id": "89JGKD4LKIVI5UU6L3KHNU10IA",
        "journal_type": "POSITION",
        "instrument_type": "EQUITY",
        "market": "US",
        "symbol": "BULL",
        "quantity": "100",
        "status": "REJECTED",
        "reason": "xxxxxx",
        "biz_type": "POSITION_JOURNAL"
    }
}
{
    "id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",
    "event_type": "JOURNAL",
    "timestamp": "2025-03-29T07:02:33.200962333Z",
    "payload": {
        "from_account": "93IUJ28O9VO2KBGHDHR4H9",
        "to_account": "41IO9QG4M5O65B0EA4LSJ4UJ99",
        "client_request_id": "LJIS16BACHQG9LPP44L9IQHGAB",
        "journal_id": "89JGKD4LKIVI5UU6L3KHNU10IA",
        "journal_type": "POSITION",
        "instrument_type": "EQUITY",
        "market": "US",
        "symbol": "BULL",
        "quantity": "100",
        "status": "FAILED",
        "reason": "xxxxxx",
        "biz_type": "POSITION_JOURNAL"
    }
}
{
    "id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",
    "event_type": "JOURNAL",
    "timestamp": "2025-03-29T07:02:33.200962333Z",
    "payload": {
        "from_account": "93IUJ28O9VO2KBGHDHR4H9",
        "to_account": "41IO9QG4M5O65B0EA4LSJ4UJ99",
        "client_request_id": "LJIS16BACHQG9LPP44L9IQHGAB",
        "journal_id": "89JGKD4LKIVI5UU6L3KHNU10IA",
        "journal_type": "POSITION",
        "instrument_type": "EQUITY",
        "market": "US",
        "symbol": "BULL",
        "quantity": "100",
        "status": "COMPLETED",
        "biz_type": "POSITION_JOURNAL"
    }
}

Response Fields

Field Type Description
id string Unique event identifier
event_type string Event type, fixed as JOURNAL
timestamp string Event timestamp in ISO 8601 format
payload object Event payload data

Payload Fields

Field Type Description
from_account string From account id.
to_account string To account id.
client_request_id string Client Request ID, unique for each request.
journal_id string Request id generated by the system.
journal_type string Journal type, fixed as POSITION
market string Market code indicating the trading venue or regulatory region of the financial instrument. See the market field in the Query Position Journal Detail API response.
instrument_type string Type of financial instrument associated with the request. See the instrument_type field in the Query Position Journal Detail API response.
symbol string Symbol name.
quantity string Quantity
status string Request status, See the status field in the Query Position Journal Detail API response.
reason string Reason. If the terminal state is not “COMPLETED”, return the reason.
biz_type string Business type, fixed as POSITION_JOURNAL

Master Data Events

Reference: broker-master-data-events.md

SDK:

Note: gRPC subscription.

Trade Calendar

To enable third-party systems to promptly obtain updates on changes to the trading and settlement calendar, Broker OpenAPI provides an asynchronous proactive event push mechanism for trading and settlement calendar events.

Clients can subscribe to receive these events, allowing them to monitor adjustments to trading days and settlement dates in real time, ensuring accurate time calculations in trading and fund management systems.

{
    "id": "event_c4b2c210-ce32-41d4-a9a1-cfad4fdf191c",
    "event_type": "MASTER_DATA",
    "timestamp": "2025-03-29T07:02:33.200962333Z",
    "payload": {
        "request_id": "036LVV5P4I8BV0KHKN60000000",
        "market": "HK",
        "instrument_type": "EQUITY",
        "year": 2026,
        "biz_type": "CALENDAR_UPDATE"
    }
}

Response Fields

Field Type Description
id string Unique event identifier
event_type string Event type, fixed as MASTER_DATA
timestamp string Event timestamp in ISO 8601 format
payload object Event payload data

Payload Fields

Field Type Description
request_id string Request Id.
market string See the market field in the Query Trade Calendar API request for details.
instrument_type string See the instrument_type field in the Query Trade Calendar API request for details.
year string Year in YYYY format.
biz_type string Business type, fixed as CALENDAR_UPDATE