Skip to main content

Event Types

Daya Pro sends webhooks for the following trading events:
EventTerminal?Description
order.createdNoOrder accepted by matching engine
order.filledYesOrder completely filled
order.partially_filledNoOrder partially filled, still open
order.cancelledYesOrder cancelled
order.rejectedYesOrder rejected
trade.executedN/ATrade executed for your order

Order Events

All order events share these common fields in the data object:
id
string
required
Unique order identifier (UUID)
symbol
string
required
Trading pair (e.g., USD-NGN)
side
string
required
Order side: buy or sell
type
string
required
Order type: market or limit
status
string
required
Order status
price
string
Limit price (omitted for market orders)
quantity
string
required
Total order quantity
filled_quantity
string
required
Quantity filled so far
executed_price
string
Volume-weighted average execution price (present when partially or fully filled)
base_asset
string
required
Base asset of the trading pair (e.g., USD)
quote_asset
string
required
Quote asset of the trading pair (e.g., NGN)
created_at
string
required
ISO 8601 timestamp when order was created
updated_at
string
required
ISO 8601 timestamp when order was last updated

order.created

Sent when a new order is accepted by the matching engine. Status: open

order.filled

Sent when an order is completely filled. Status: filled Additional field:
  • executed_price - Volume-weighted average execution price

order.partially_filled

Sent when an order is partially filled but still has remaining quantity. Status: partially_filled Additional field:
  • executed_price - Average execution price so far

order.cancelled

Sent when an order is cancelled. Status: cancelled Additional field:
cancelled_at
string
ISO 8601 timestamp when cancelled

order.rejected

Sent when an order is rejected. Status: rejected Additional field:
rejection_reason
string
Reason for rejectionValues:
  • insufficient_balance - Not enough funds
  • invalid_price - Price outside allowed range
  • invalid_quantity - Quantity below minimum or above maximum
  • market_closed - Market not accepting orders
  • rate_limit_exceeded - Too many orders

Trade Events

trade.executed

Sent when a trade is executed involving your order.
You may receive multiple trade.executed events for a single order if it fills across multiple price levels or counterparties.
id
string
required
Unique trade identifier (UUID)
order_id
string
required
Your order ID that was filled
symbol
string
required
Trading pair
side
string
required
Your side in this trade: buy or sell
is_maker
boolean
required
Whether you were the maker in this trade
  • true - Your order was resting on the order book (maker)
  • false - Your order matched against resting orders (taker)
price
string
required
Execution price
quantity
string
required
Trade quantity
total_value
string
required
Total value in quote currency
fee
string
required
Trading fee charged
base_asset
string
required
Base asset of the trading pair
quote_asset
string
required
Quote asset of the trading pair
counterparty_order_id
string
required
The order ID of the counterparty in this trade
executed_at
string
required
ISO 8601 timestamp of execution

Order Status Flow

                    +---> rejected
                    |
placed ---> created +---> filled
                    |
                    +---> partially_filled ---> filled
                    |                      |
                    |                      +---> cancelled
                    |
                    +---> cancelled

Next Steps

Webhook Overview

Delivery guarantees and implementation

Signature Verification

Verify webhook authenticity