Pulse-Signature, HMAC-SHA256 over the raw body),
at-least-once, and carries an evt_* id for de-duplication.
pulse.webhooks.verify / verifyOnce return the typed WebhookEvent. See
Webhooks for the handler pattern and the
node reference for the method signatures.
This surface reflects the
@pulsebyshiga/node types — the working view of the API
until the canonical Pulse OpenAPI contract is published. Wire shapes
(snake_case JSON, decimal-string amounts) are stable; a few fields are still
being reconciled and are flagged where they appear.Envelope
Every event shares this envelope; onlytype and the data shape differ.
string
evt_* — the idempotency key for consumers.WebhookEventType
The event name (the
## headings below).string
object
Event-specific payload, documented per event below.
collection.order.created
CollectionOrder
The full order (see CollectionOrder).
collection.deposit.detected
string
Deposit
collection.deposit.confirmed
string
Deposit
Same
Deposit shape as collection.deposit.detected; confirmed_at is now
set.collection.deposit.wrong_chain
Provisional contract shape (PRD wrong-chain row) — the real detection signal
comes from Pulse and the recovery policy is still being decided. Treat as
subject to change until the canonical contract publishes.
string
WrongChainDeposit
Network
The network the order expected payment on.
collection.amount.underpaid
string
string
Expected amount, decimal string.
string
Received amount, decimal string.
"USDC" | "USDT"
Network
string
collection.amount.overpaid
AmountMismatchData
Same shape as
collection.amount.underpaid: order_id, expected,
received, asset, network, tx_hash.collection.order.expired
string
collection.order.failed
string
string
disbursement.completed
The only event you should credit a customer from.string
Disbursement