Overview
Bluvo webhooks notify your application in real-time when events occur — wallets connecting, balances updating, withdrawals completing, and more. Instead of polling the API, your server receives an HTTP POST with a signed JSON payload the moment something happens. Webhooks are managed through the Bluvo Portal. There is no REST API for webhook management — all configuration (creating endpoints, selecting events, rotating secrets) is done in the dashboard.Supported events
| Event | Description |
|---|---|
wallet.created | A wallet was connected via OAuth or API key |
wallet.balance.updated | Balances were synced for a wallet |
wallet.deleted | A wallet was removed |
quotation.created | A withdrawal quote was successfully generated |
quotation.error | A withdrawal quote failed |
transaction.created | A withdrawal was submitted to the exchange |
transaction.error | A withdrawal failed |
transaction.broadcasted | A withdrawal was confirmed on-chain |
error.fatal | An unrecoverable error occurred |
Creating a webhook endpoint
Open the Webhooks page
In the Bluvo Portal, navigate to Settings > Webhooks.
Add an endpoint
Click Add Endpoint, enter the URL of your receiver, and select the events you want to subscribe to.
Copy your signing secret
After creation, copy the webhook signing secret. You’ll need this to verify signatures. Store it securely — it won’t be shown again.
You can create up to 3 webhook endpoints per project.
Payload structure
Every webhook delivery sends a POST request with a JSON body following this envelope:| Field | Type | Description |
|---|---|---|
event | string | The event type (e.g., wallet.created) |
eventId | string | Unique identifier for this event |
timestamp | string | ISO 8601 timestamp of when the event occurred |
data | object | Event-specific payload — see individual event pages |
Headers
Each delivery includes two signature headers:| Header | Description |
|---|---|
X-Webhook-Signature | Base64-encoded HMAC-SHA256 signature |
X-Webhook-Timestamp | Unix timestamp in milliseconds |
Building a receiver
Here’s a minimal Express.js receiver that verifies the signature and processes events:Idempotency
Use theeventId field to deduplicate deliveries. The same event may be delivered more than once (e.g., if your server returns a timeout before Bluvo receives the 200 response). Your receiver should be idempotent — processing the same eventId twice should have no side effects.
Next steps
Verify Signatures
Secure your endpoint with HMAC-SHA256 verification.
Retries & Logs
Understand the retry schedule and view delivery logs.
Event Reference
Browse detailed payload schemas for every event.