Skip to main content

Query Order History

OrderHistory

Input Parameters

ParameterTypeDescription
accountAccountAccount
startDatestringQuery Start Date (Format: YYYYMMDD)
endDate*string (Null default same as Start Date)Query End Date (Format: YYYYMMDD)
info

Maximum query range setting is 30 days per query.

Result Return

ParameterTypeDescription
IsSuccessboolWhether successful
Data*[]OrderResultReturns historical order list (including history details)
Message*stringReturns error message when IsSuccess = false

Order Information OrderResult Fields

Return type : Object

ParameterTypeDescription
FunctionType*int64Function Type: 0 New Order, 10 Execute New Order, 15 Change Price, 20 Change Qty, 30 Cancel Order, 90 Fail
Date*stringTransaction Date
SeqNo*stringOrder Sequence Number
BranchNo*stringBranch Code
Account*stringAccount
OrderNo*stringOrder Number
AssetType*int64Asset Type: 0 Securities
Market*stringMarket: TAIEX Listed Stocks, TAISDAQ OTC Stocks, TAIEMG Emerging Stocks
MarketTypeMarketTypeMarket Type Category: MarketTypeCommon Regular Stock, MarketTypeFixing Fixing, MarketTypeIntradayOdd Intraday Odd Lot, MarketTypeOdd Post-market Odd Lot, MarketTypeEmg Emerging, MarketTypeEmgOdd Emerging Odd Lot
StockNo*stringStock Symbol
BuySell*BsActionBuy/Sell Action: BsActionBuy Buy, BsActionSell Sell
PriceType*PriceTypeEffective Price Type: PriceTypeLimit Limit, PriceTypeLimitUp Limit Up, PriceTypeLimitDown Limit Down, PriceTypeMarket Market, PriceTypeReference Reference
Price*stringPrice
Quantity*int64Original Order Quantity
TimeInForce*TimeInForceOrder Condition: TimeInForceRod ROD, TimeInForceFok FOK, TimeInForceIoc IOC
OrderType*OrderTypeOrder Type: OrderTypeStock Common, OrderTypeMargin Margin, OrderTypeShort Short Sell, OrderTypeDayTrade Day Trade, OrderTypeSbl SBL
IsPreOrder*boolIs Pre-order
Status*int64Order Status: 0 Pre-order, 4 Sending to Backend, 9 Connection Timeout, 10 Order Success, 30 Cancelled Unfilled, 40 Partial Fill/Rest Cancelled, 50 Fully Filled, 90 Fail
AfterPriceType*PriceTypeEffective Price Type: PriceTypeLimit Limit, PriceTypeLimitUp Limit Up, PriceTypeLimitDown Limit Down, PriceTypeMarket Market, PriceTypeReference Reference
AfterPrice*stringEffective Order Price
Unit*int64Unit
AfterQty*int64Effective Order Quantity (including filled part)
FilledQty*int64Filled Quantity
FilledMoney*int64Filled Amount
BeforeQty*int64Effective Qty Before Change
BeforePrice*stringEffective Price Before Change
UserDef*stringUser Defined Field
LastTime*stringLast Modified Time
ErrorMessage*stringError Message
Details*[]OrderDetailOrder History
>> FunctionType*int64Function Type: 0 New Order, 10 Execute New Order, 15 Change Price, 20 Change Qty, 30 Cancel Order, 50 Fully Filled, 90 Fail
>> ModifiedTime*stringModified Time
>> BeforeQty*int64Original Order Quantity
>> AfterQty*int64Effective Order Quantity (including filled part)
>> BeforePrice*stringOriginal Order Price
>> AfterPrice*stringEffective Order Price
>> FilledMoney*stringFilled Amount
>> Status*int64Order Status
>> ErrorMessage*stringError Message

Request Example

package main

import (
"fmt"
"fubon"
)

func main() {
// Initialize SDK and login
sdk := fubon.NewSDK()

// ... Login, connection, and other initialization steps ...

// Query Order History
startDate := "20250502"
endDate := "20250502"

orderHis, err := sdk.Stock.OrderHistory(account, startDate, &endDate)

// Error Handling
if err != nil {
fmt.Printf("❌ Order History Format/Parse Error:: %v (Type: %T)\n", err, err)
return
}

// Check Success
if !orderHis.IsSuccess {
message := "No message"
if orderHis.Message != nil {
message = *orderHis.Message
}
fmt.Printf("Order history failed. Message: %s\n", message)
return
}

// Output Order History List
if orderHis.Data != nil && len(*orderHis.Data) > 0 {
fmt.Printf("✅ Found %d historical orders\n", len(*orderHis.Data))

for i, result := range *orderHis.Data {
fmt.Printf("\n=== Historical Order %d ===\n", i+1)
fmt.Printf("Date: %s\n", *result.Date)
fmt.Printf("OrderNo: %s\n", *result.OrderNo)
fmt.Printf("StockNo: %s\n", *result.StockNo)
fmt.Printf("BuySell: %v\n", *result.BuySell)
fmt.Printf("Price: %s\n", *result.Price)
fmt.Printf("Quantity: %d\n", *result.Quantity)
fmt.Printf("Status: %d\n", *result.Status)
fmt.Printf("FilledQty: %d\n", *result.FilledQty)

// Display Order History Details
if result.Details != nil && len(*result.Details) > 0 {
fmt.Printf("\n Order Details (%d records):\n", len(*result.Details))
for j, detail := range *result.Details {
fmt.Printf(" [%d] FunctionType: %d, Time: %s\n",
j+1, *detail.FunctionType, *detail.ModifiedTime)
fmt.Printf(" Qty: %d -> %d, Price: %s -> %s\n",
*detail.BeforeQty, *detail.AfterQty,
*detail.BeforePrice, *detail.AfterPrice)
}
}
}
} else {
fmt.Println("No order history data.")
}
}

Response Example

// OrderHistory Return Structure
Result{
IsSuccess: true,
Message: nil,
Data: &[]OrderResult{
{
FunctionType: nil, // Function Type
Date: "2025/05/02", // Transaction Date
SeqNo: "00000000001", // Order Sequence Number
BranchNo: "6460", // Branch Code
Account: "26", // Account
OrderNo: "bA598", // Order Number
AssetType: 0, // Asset Type
Market: "TAIEX", // Market Type
MarketType: Common, // Market Type Category
StockNo: "2888", // Stock Symbol
BuySell: Buy, // Buy/Sell Action
PriceType: Limit, // Original Price Type
Price: "8.9", // Price
Quantity: 2000, // Original Order Quantity
TimeInForce: Rod, // Order Condition
OrderType: Stock, // Order Type
IsPreOrder: false, // Is Pre-order
Status: 10, // Order Status
AfterPriceType: nil, // Effective Price Type
AfterPrice: "9", // Effective Price
Unit: 1000, // Unit
AfterQty: 1000, // Effective Order Quantity
FilledQty: 0, // Filled Quantity
FilledMoney: 0, // Filled Amount
BeforeQty: nil, // Effective Qty Before Change
BeforePrice: nil, // Effective Price Before Change
UserDef: "", // User Defined Field
LastTime: "14:19:41.879", // Last Modified Time
ErrorMessage: "", // Error Message
Details: &[]OrderDetail{ // Order History
{
FunctionType: 10,
ModifiedTime: "14:19:41.879",
BeforeQty: 0,
AfterQty: 1000,
BeforePrice: "9.0",
AfterPrice: "9.0",
Status: 10,
ErrorMessage: "",
},
},
},
// ... more historical orders
},
}