Skip to main content
Each delivery is a single event for one association. Use the X-Webhook-Event header as the reliable event discriminator.

Event types

These are the values you subscribe to when you create a webhook. IntentSuccessful and IntentFailed correspond to a transaction reaching completed and failed respectively.

Delivery headers

Every delivery is an HTTP POST with a JSON body and these headers:
  • X-Webhook-Event: the dotted event key, for example intent.successful.
  • X-Zeam-Signature: sha256=<hex>, an HMAC of the body keyed on X-Webhook-Id. See Security.
  • X-Association-Id: the association the event belongs to.
  • X-Webhook-Id: a unique delivery id. Also the HMAC key. Use it to de-duplicate retries.
  • X-Webhook-Ts: delivery timestamp as Unix milliseconds (UTC). Use it to reject stale deliveries. See Security.
  • Content-Type: application/json.

Payload

string
The event type. Prefer the X-Webhook-Event header as the discriminator.
string
The payment intent identifier for this event.
string
The association the event belongs to.
string
A human-readable description of the event.
string
ISO 8601 timestamp of when the event was created.
object
Event-specific detail. Treat the shape as event-defined and read fields defensively.
string | null
Your own reference from the original request, when present. Use it to reconcile the event with your records.
string | null
The Stellar transaction hash, once the payment is on-chain.
Example delivery

Reconcile the event

The payload does not include the amount or final status. Use intentId or your externalReference to look the payment up with GET /v1/transactions/{transactionId} (the transactionRecordId you received in the 202 response) and act on the authoritative record.