Stripe | Financial Infrastructure to Grow Your Revenue

Stripe | Financial Infrastructure to Grow Your Revenue

4466 articles

Working with Transactions


Public preview

Working with Transactions Public preview

Use transactions to track money movement on financial accounts.

Every movement of funds into or out of a financial account creates a Transaction object. Transactions are the ledger entries for your financial accounts. They record what happened, how it affected the balance, and which resource caused the movement.

Use transactions to build account activity feeds, reconcile against your internal systems, and track money movement through your platform. You can’t create transactions directly. Stripe creates them automatically when flows such as OutboundPayments, OutboundTransfers, ReceivedCredits, and ReceivedDebits move money.

Listen for transaction webhooks

Stripe sends the following event type for transactions:

Event typeTrigger
v2.money_management.transaction.createdA flow creates a transaction on a financial account.

This event is a thin event. The payload doesn’t contain the full transaction object. Instead, it provides a related_object with the transaction ID, type, and URL you can use to retrieve the full resource.

Webhook payload example

For the transaction webhook payload schema and examples, see Transaction event types.

Retrieve the transaction

Use the related_object.url from the event to retrieve the full transaction.

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

The response includes the transaction amount, balance impact, status, and flow that created the transaction. For the response schema and example, see Retrieve a Transaction.

Identify the source flow

Use the transaction’s flow property to identify the resource that caused the balance change. The flow.type property identifies the flow category, and the matching property contains the source resource ID.

For example, if flow.type is outbound_payment, then flow.outbound_payment contains the ID of the OutboundPayment that created the transaction.

Retrieve the OutboundPayment to get the full details of the flow that created the transaction, such as the recipient, amount, statement descriptor, delivery method, and status.

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

Transaction statuses

A transaction progresses through the following statuses:

StatusMeaningBalance impact
pendingThe transaction is in progress.inbound_pending or outbound_pending is non-zero.
postedThe transaction is complete. This is a terminal state.Only available is non-zero.
voidThe transaction was canceled or reversed before posting. This is a terminal state.All balance impact values are zero.

Stripe doesn’t add more entries to a transaction after it reaches posted or void.

Last verified 2026-09-24

Is this helpful?