Event Types
Daya Pro sends webhooks for the following trading events: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 an NGN bank-transfer deposit settles to your Daya Pro balance. Useful for triggering downstream ledger updates without polling.Bank deposit events fire only on the terminal
completed state. On-chain deposits use
crypto.deposit.completed.Deposit transaction identifier
Always
depositFunding rail used. Always
bank_transfer for this eventAlways
completed for this eventSettled amount in NGN as a decimal string
Fee charged in NGN, if any
Currency code of the original deposit. Always
NGN for this eventUnderlying 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
crypto.deposit.completed
Sent after a confirmed on-chain deposit is credited to your Daya Pro balance.This event is for account-level crypto collection. It is not a per-customer wallet
creation or custody event.
Daya transaction identifier
Always
completed for this eventPartner-facing asset symbol, such as
USDTCredited amount as a full-precision decimal string for the asset
Fee amount as a full-precision decimal string for the asset
Asset used to charge the fee. This currently matches
assetCanonical chain key, such as
ethereum or polygonOn-chain transaction hash when available
Source address when available
Account-level deposit address that received the funds
ISO 8601 timestamp when the deposit transaction was first observed
ISO 8601 timestamp when the deposit was credited
Order Status Flow
Next Steps
Webhook Overview
Delivery guarantees and implementation
Signature Verification
Verify webhook authenticity