Skip to main content
Register a webhook endpoint to receive payment event notifications.
POST /api/v1/businesses/:businessId/webhook-endpoints/create-endpoint Webhooks are dispatched as signed HTTP POST requests with HMAC-SHA256 signatures. You can subscribe to specific event types and register multiple endpoints per business.

Parameters

Path

NameTypeRequiredDescription
businessIdstringYesThe business ID

Body

NameTypeRequiredDescription
urlstringYesHTTPS URL to deliver events to
descriptionstringNoHuman-readable description of this endpoint
eventsarrayYesList of event types to subscribe to
Supported event types:
  • deposit.created — Deposit session created
  • deposit.pending — On-chain payment detected
  • deposit.confirmed — Payment confirmed after block confirmations
  • deposit.expired — Session expired without payment
  • deposit.failed — Deposit failed
  • deposit.underpaid — Payment received below the expected amount
  • deposit.overpaid — Payment received above the expected amount

Request example

curl --request POST 'https://payments.bleepay.com/api/v1/businesses/biz_abc/webhook-endpoints/create-endpoint' \
  --header 'Authorization: Bearer <business_token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "url": "https://example.com/webhooks/bleepay",
    "description": "Production webhook endpoint",
    "events": ["deposit.pending", "deposit.confirmed", "deposit.expired"]
  }'

Response

Response schema

FieldTypeDescription
idstringEndpoint identifier
urlstringDelivery URL
eventsarraySubscribed event types
enabledbooleanWhether the endpoint is active
signingSecretstringSecret for verifying webhook signatures — shown only once

Example response

{
  "id": "wh_abc123",
  "url": "https://example.com/webhooks/bleepay",
  "description": "Production webhook endpoint",
  "events": ["deposit.pending", "deposit.confirmed", "deposit.expired"],
  "enabled": true,
  "signingSecret": "whsec_abc123def456..."
}
Warning: The signingSecret is shown only once at creation time. Store it securely — you’ll need it to verify webhook payload signatures.