Event Types
Daya Pro sends webhooks for the following trading events:| Event | Terminal? | Description |
|---|---|---|
order.created | No | Order accepted by matching engine |
order.filled | Yes | Order completely filled |
order.partially_filled | No | Order partially filled, still open |
order.cancelled | Yes | Order cancelled |
order.rejected | Yes | Order rejected |
trade.executed | N/A | Trade executed for your order |
deposit.completed | N/A | A deposit settled to your Daya Pro balance |
Order Events
All order events share these common fields in thedata object:
Unique order identifier (UUID)
Trading pair (e.g.,
USD-NGN)Order side:
buy or sellOrder type:
market or limitOrder status
Limit price (omitted for market orders)
Total order quantity
Quantity filled so far
Volume-weighted average execution price (present when partially or fully filled)
Base asset of the trading pair (e.g.,
USD)Quote asset of the trading pair (e.g.,
NGN)ISO 8601 timestamp when order was created
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:
ISO 8601 timestamp when cancelled
order.rejected
Sent when an order is rejected. Status:rejected
Additional field:
Reason for rejectionValues:
insufficient_balance- Not enough fundsinvalid_price- Price outside allowed rangeinvalid_quantity- Quantity below minimum or above maximummarket_closed- Market not accepting ordersrate_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.Unique trade identifier (UUID)
Your order ID that was filled
Trading pair
Your side in this trade:
buy or sellWhether 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)
Execution price
Trade quantity
Total value in quote currency
Trading fee charged
Base asset of the trading pair
Quote asset of the trading pair
The order ID of the counterparty in this trade
ISO 8601 timestamp of execution
Deposit Events
deposit.completed
Sent when a deposit settles to your Daya Pro balance. Useful for triggering downstream ledger updates without polling.Deposit events fire only on the terminal
completed state. There is no deposit.created
or deposit.failed for this category in v1 — failures and pending events are not delivered
to webhooks.Deposit transaction identifier
Always
depositFunding rail used. Examples:
bank_transfer, onchainAlways
completed for this eventSettled amount in NGN as a decimal string
Fee charged in NGN, if any
Currency code of the original deposit (e.g.
NGN, USDT)Underlying provider that settled the deposit (e.g.
flutterwave)Provider-side reference for reconciliation
Transaction reference (when provider supplies one)
Name on the source bank account, when available
Internal reference used to attribute the deposit to your account
User-supplied or generated reference shown on statements
Free-form narration from the source institution
Human-readable summary
ISO 8601 timestamp when the deposit was first observed
ISO 8601 timestamp when the deposit finished settling
Order Status Flow
Next Steps
Webhook Overview
Delivery guarantees and implementation
Signature Verification
Verify webhook authenticity