Skip to main content
Webhooks let your server react to things as they happen. When a payment is confirmed, a subscription is canceled, or a customer is updated, StellarTools sends an HTTP POST to your endpoint with a signed JSON payload. Create and manage webhooks at dashboard.stellartools.dev/webhooks. When you create one, pick which events to subscribe to and copy the signing secret to verify deliveries.

Event envelope

Every webhook POST has the same top-level shape, regardless of event type.

Envelope fields

string
required
Unique ID for this event. Prefixed with wh_evt_.
string
required
The event type, e.g. payment.confirmed or subscription.canceled. See the full list below.
string
required
ISO 8601 timestamp of when the event was created.
boolean
required
true if the event came from a mainnet (live) API key. false for testnet.
object
required
Contains the event payload.

Event types

Customer events

event
A new customer was created.
event
A customer’s details were updated. Includes previous_attributes.
event
A customer was deleted.

Payment method events

event
A Stellar wallet was linked to a customer.
event
A wallet was removed from a customer.

Checkout events

event
A new checkout session was created.

Payment events

event
A payment transaction was submitted to the network but has not yet been confirmed.
event
A payment is confirmed on the Stellar ledger. This is the event to act on when fulfilling an order.
event
A payment could not be confirmed on-chain.

Refund events

event
A refund was sent to the customer’s wallet successfully.
event
A refund could not be processed.

Subscription events

event
A new subscription was created.
event
A subscription was updated (for example: paused, resumed, or cancel_at_period_end was toggled). Includes previous_attributes.
event
A subscription was canceled.

Handling events

Use st.webhooks.constructEvent to verify the signature and get the typed event back. Always verify before acting on the payload.
If constructEvent throws, the signature is invalid or the payload was tampered with. Return a 400 and do not process the event.

Retries

If your endpoint returns a non-2xx response, StellarTools will retry the delivery. Check your webhook logs at dashboard.stellartools.dev/webhooks to see all delivery attempts and manually resend any failed events.