Skip to main content
Every delivery is signed (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; only type 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.
Credit a customer only after a verified disbursement.completed event — never off a client callback. See Webhooks.

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