Webhooks let Bloobank notify your system in real time when something relevant happens — a confirmed transaction, a failed payment, an updated balance. Instead of periodically polling lookup endpoints, your server receives an HTTPDocumentation Index
Fetch the complete documentation index at: https://docs.bloobank.com/llms.txt
Use this file to discover all available pages before exploring further.
POST call at the moment of the event.
How it works
Configure the endpoint
In the Bloobank Dashboard, go to Tools → Webhooks and register the
public URL of your server that will receive events.
Bloobank sends events
Whenever an event happens, Bloobank sends a
POST request to the
configured endpoint with a standardized JSON envelope.Your server responds 2xx
Your server must respond with a
2xx status in under 10 seconds to
confirm receipt.Event envelope
All webhooks follow the same base format:| Field | Type | Description |
|---|---|---|
event | string | Event name (e.g. payment.confirmed). See the catalog at Payment events. |
messageId | string | Unique delivery identifier. Use it for idempotency on your side. |
method | string | HTTP method used by Bloobank. Always POST in the current version. |
pathname | string | Internal event routing (e.g. /topic/api-payments/payment/v1). |
body | object | Full resource at the event’s state. Same shape returned by the corresponding GET. |
query | object | Optional query parameters. Usually {}. |
Idempotency
The same delivery can arrive more than once in retry scenarios. Your server must be idempotent.Check before processing
Before applying the effect of the event (update balance, mark order as
paid), check whether the
messageId was already processed.Retry policy
TODO (needs to be filled manually): The exact retry policy — number of
attempts, interval between attempts, backoff (linear, exponential), maximum
time until give-up, and handling of 4xx vs 5xx errors — must be confirmed
with the Bloobank platform team before publishing.
- Treat the webhook as eventually consistent — it may be delayed by seconds to minutes.
- On a
5xxerror from your server, Bloobank will attempt redelivery. - On a
4xxerror, the delivery may be marked as permanently failed. - Undelivered events can be manually reprocessed via the Dashboard.
Signature and verification
TODO (needs to be filled manually): The webhook signature scheme
(signature header, algorithm, shared secret, signed payload format) must be
defined and documented by the platform team. Without this, the integrator
cannot verify the authenticity of received events.
- Verify the signature before processing the event.
- Reject events with very old timestamps (replay protection).
- Use HTTPS on your public endpoint.
- Restrict by IP or private network where possible.
Best practices
Respond fast, process later
Respond fast, process later
Respond
2xx immediately after validating the event. Push the actual work (update database, send email) onto an async queue. Bloobank’s timeout is short.Log every event received
Log every event received
Keep a persistent log of every
messageId received, with timestamp and
processing status. Useful for reconciliation and support.Re-fetch the resource when in doubt
Re-fetch the resource when in doubt
The
body reflects the state at the moment of emission. To guarantee
consistency, perform a GET on the corresponding endpoint after receiving
the event.Use different endpoints per environment
Use different endpoints per environment
Use distinct endpoints for sandbox and production. Never point the sandbox at your production server.
Next steps
Payment events
See the catalog of events fired by Bloobank throughout the lifecycle of a
payment order.