List Event Types

Use Case

Returns the catalogue of event types with human-readable labels and categories.

List Event Types

List Event Types Response
1
dataEventTypeResponse[]

Static catalogue of every event you can subscribe to. Use it to populate UIs and validate `eventTypes` before sending the create-subscription call.

2
valuestring

Event slug to send in `eventTypes` when creating a subscription (e.g. `incoming_native_tx`, `outgoing_token_tx`, `tx_confirmation_threshold`, `address_event`).

3
labelstring

Human-readable name for the event — safe to render in subscription-management UIs.

4
categorystring

Grouping for the event. One of: `Incoming` (deposits), `Outgoing` (sends from a watched address), `State` (transaction lifecycle changes), `Confirmation` (block-confirmation thresholds), `Balance` (balance shifts), or `Address` (catch-all).

List Event Types Response

Create Subscription

Use Case

Registers a new address subscription. The response includes the plaintext signing secret one time only — store it before the response is closed; it cannot be retrieved later (only rotated).

Create Subscription

Request Body
1
addressstringRequired

On-chain address to watch. The subscription fires whenever this address is touched by an event matching `eventTypes`.

2
chainstringRequired

Chain the address lives on (`ethereum`, `bitcoin`, `tron`, `solana`, etc.). Used to interpret the address and route to the correct indexer.

3
networkstringRequired

Specific network within the chain — typically `mainnet`, or a testnet such as `sepolia` / `testnet` / `nile`.

4
providerstringRequired

Delivery channel slug identifying which indexer/webhook pipeline to use. Use the value supplied to your organisation during onboarding.

5
eventTypesstring[]

One or more event slugs from the event-type catalogue (e.g. `["incoming_native_tx", "incoming_token_tx"]`). Defaults to the catch-all `address_event` if omitted.

6
filtersEventFilter[]

Optional per-event-type predicates that narrow which events fire — for example minimum amount, token contract, or confirmation count. Filters are AND-ed within an event type and OR-ed across types.

7
webhookURLstring (url)

HTTPS URL deliveries are POSTed to. Must answer `2xx` within the delivery timeout, otherwise the delivery is retried with backoff.

8
labelstring

Free-form label for your own bookkeeping (e.g. `"Deposits sweep — eth main"`). Surfaced in list/get responses but never sent to the webhook receiver.

9
metadataobject

Arbitrary JSON object forwarded verbatim into the delivery payload — useful for correlating an event back to your internal IDs (`customer_id`, `order_id`, etc.).

Example Payload

Create Subscription Response
One-time secret

The signingSecret is returned only on this response. Store it before the response closes — it can be rotated but not retrieved later.

1
successboolean

Indicates whether the API request was successful.

2
dataSubscriptionResponse

The newly created subscription. Same shape as the get/list response, but the create call also returns the plaintext signing secret one time.

3
idstring (uuid)

Stable subscription identifier — pass it to pause/resume/test/rotate-secret/delete and to the deliveries endpoints.

4
addressstring

Watched on-chain address, echoed back from the request.

5
chainstring

Chain the subscription is bound to (`ethereum`, `bitcoin`, `tron`, etc.).

6
networkstring

Network within the chain (`mainnet`, `sepolia`, `testnet`, ...).

7
webhookURLstring (url)

URL deliveries will POST to. Used for every event that matches `eventTypes` until you pause, delete, or update the subscription.

8
eventTypesstring[]

Event slugs this subscription receives — exactly the values you sent at creation time (or the default `address_event`).

9
signingSecretstring

Plaintext HMAC signing secret with `hn_whs_` prefix. Used to verify the `X-Bitnob-Signature` header on each delivery. **Returned only here and on rotate** — store it immediately.

10
statusstring

Lifecycle state. `active` immediately after creation; transitions to `paused` via the pause endpoint, back to `active` on resume.

Create Subscription Response

List / Get / Update Subscription

Use Case

Lists subscriptions, fetches a single subscription, or patches mutable fields on an existing one.

List / Get / Update

List Query Parameters
1
chainstring

Restrict the list to subscriptions on a single chain — useful when you have many subscriptions across `ethereum`, `tron`, `bitcoin`, etc.

2
networkstring

Restrict the list to a single network (`mainnet`, `sepolia`, `testnet`, ...). Combine with `chain` to scope to one environment.

3
statusstring

Filter by lifecycle stage: `active` (delivering events) or `paused` (kept around but not delivering).

4
limitinteger

Items per page (1-100, default 20). Combine with `offset` to paginate.

5
offsetinteger

Number of items to skip before returning results (default 0).

Update Request Body
1
webhookURLstring (url)

Replacement delivery URL. Future events for this subscription will be POSTed here instead of the previous URL — no signing-secret change is implied.

2
eventTypestring

Replacement event-type slug (or array of slugs depending on integration mode). Lets you broaden or narrow what fires deliveries without recreating the subscription.

Example Payload

List / Get / Update Subscription Response
Same shape as Create Subscription Response

List returns an array of SubscriptionResponse plus a pagination meta envelope (total, limit, offset, has_more); get/update return a single object. Field shape matches Create Subscription Response with one exception: signingSecret is never returned here — only at create or rotate.

List / Get / Update Response

Pause / Resume / Test / Delete

Use Case

Pausing stops new deliveries without deleting the subscription. Resuming reactivates it. Test triggers a synthetic delivery so you can verify your endpoint, signature handling, and parser. Delete permanently removes the subscription (in-flight queued deliveries are still attempted).

Pause / Resume / Test / Delete

Pause / Resume / Test / Delete Response
Same shape as Create Subscription Response (minus the secret)

Pause and resume return HTTP 200 with the full SubscriptionResponse reflecting the new status (paused after pause, active after resume) — same field set as Create Subscription Response without signingSecret. Test returns HTTP 202 with no body (it just enqueues a synthetic delivery). Delete returns HTTP 204 with no body.

Pause / Resume / Test / Delete Response

Rotate Signing Secret

Use Case

Generates a new HMAC signing secret for this subscription, encrypts it for storage, and returns the new plaintext secret one time. The previous secret stops verifying deliveries immediately.

Rotate Secret

Rotate Signing Secret Response
One-time secret

The new signingSecret is returned only on this response. Store it before the response closes; the old secret stops working immediately.

1
successboolean

Indicates whether the rotation succeeded.

2
dataSubscriptionResponse

Subscription record reflecting the rotation — same field shape as **Create Subscription Response**, with `signingSecret` carrying the *new* secret and the previous secret invalidated immediately.

3
idstring (uuid)

Subscription identifier — unchanged across the rotation.

4
signingSecretstring

Newly generated plaintext HMAC signing secret with the `hn_whs_` prefix. Use it to verify the `X-Bitnob-Signature` header on subsequent deliveries; the previous secret stops verifying signatures the instant this response is produced.

5
rotated_atstring (RFC3339)

Server-side timestamp marking when the new secret took effect — useful for correlating signature-verification failures around the rotation moment.

Rotate Signing Secret Response

List / Get / Resend Delivery

Use Case

Lists past delivery attempts for a subscription (with HTTP status, duration, and attempt counter), fetches a single delivery, or re-attempts a previously failed (or succeeded) delivery as a fresh attempt.

Deliveries

List Query Parameters
1
statusstring

Filter by delivery status: `success` (your endpoint answered `2xx`), `failed` (gave up after the retry budget), or `retrying` (still being attempted with backoff).

2
limitinteger

Items per page (1-100, default 20). Combine with `offset` to walk through historical attempts.

3
offsetinteger

Number of attempts to skip before returning results (default 0).

Query

Subscription Deliveries Response
1
successboolean

Indicates whether the API request was successful.

2
dataWebhookDeliveryResponse[]

List endpoint returns an array of past delivery attempts (with a pagination `meta` envelope); the get-by-id endpoint returns a single `WebhookDeliveryResponse` instead.

3
idstring (uuid)

Stable delivery identifier — pass it to the resend endpoint to queue a fresh attempt.

4
statusstring

Outcome of the attempt: `success` (your endpoint returned `2xx`), `failed` (retry budget exhausted), or `retrying` (still queued for another attempt with exponential backoff).

5
http_statusinteger

HTTP status code your endpoint returned. `0` (or absent) when the request never got a response (timeout, DNS failure, TLS error).

6
duration_msinteger

Wall-clock time from sending the POST to receiving the response, in milliseconds — useful for spotting slow webhook handlers before they trip timeouts.

7
attemptinteger

1-based counter that increments on every retry. The first delivery is `1`; manually-resent deliveries continue the count.

8
delivered_atstring (RFC3339)

Server-side timestamp recording when this attempt finished (success, failure, or timeout).

9
resendobject

Resend endpoint returns HTTP `202` with `{ delivery_id, attempt }` describing the freshly queued attempt — not a field on the delivery record itself.

Subscription Deliveries Response
Did you find this page useful?