Skip to main content

Event Types

Daya Pro sends webhooks for the following trading events:

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

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.
id
string
required
Deposit transaction identifier
type
string
required
Always deposit
method
string
required
Funding rail used. Always bank_transfer for this event
status
string
required
Always completed for this event
amount_ngn
string
required
Settled amount in NGN as a decimal string
fee_amount_ngn
string
Fee charged in NGN, if any
currency
string
required
Currency code of the original deposit. Always NGN for this event
payment_provider
string
Underlying provider that settled the deposit (e.g. flutterwave)
provider_transaction_id
string
Provider-side reference for reconciliation
tx_ref
string
Transaction reference (when provider supplies one)
originator_name
string
Name on the source bank account, when available
matching_reference
string
Internal reference used to attribute the deposit to your account
reference
string
User-supplied or generated reference shown on statements
narration
string
Free-form narration from the source institution
description
string
Human-readable summary
created_at
string
required
ISO 8601 timestamp when the deposit was first observed
completed_at
string
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.
transaction_id
string
required
Daya transaction identifier
status
string
required
Always completed for this event
asset
string
required
Partner-facing asset symbol, such as USDT
amount
string
required
Credited amount as a full-precision decimal string for the asset
fee_amount
string
required
Fee amount as a full-precision decimal string for the asset
fee_asset
string
required
Asset used to charge the fee. This currently matches asset
blockchain
string
required
Canonical chain key, such as ethereum or polygon
transaction_hash
string
On-chain transaction hash when available
from_address
string
Source address when available
to_address
string
Account-level deposit address that received the funds
created_at
string
required
ISO 8601 timestamp when the deposit transaction was first observed
completed_at
string
ISO 8601 timestamp when the deposit was credited

Order Status Flow

Next Steps

Webhook Overview

Delivery guarantees and implementation

Signature Verification

Verify webhook authenticity