Every webhook is delivered as JSON with the same envelope, transaction.updated carries the transaction in data:
The event name, transaction.updated.
The transaction this event is about.
Unique id for the transaction.
Current state of the transaction, for example paid or refunded.
Transaction amount in cents, serialized as a string, e.g. "4900".
Three-letter currency code, for example usd.
Where the transaction came from, for example stripe.
Id of the underlying charge in the source system.
How the customer is billed, for example subscription or one_time.
Billing interval, for example month. May be null, for example for one-time payments.
Names of the products included in the transaction.
Number of units purchased.
Id of the partner credited for the sale.
Id of the customer who made the purchase.
Id of the click this transaction was attributed to, if any.
Id of the program the transaction belongs to.
Id of the organization that owns the program.
When the transaction was created, as an ISO 8601 timestamp.
When the transaction was last updated, as an ISO 8601 timestamp.
ISO 8601 time the event was emitted.
Deliveries can carry more fields than listed here, and the example below is shortened, so ignore fields you don't use.