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 type | Trigger |
|---|---|
v2.money_management.transaction.created | A 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:
| Status | Meaning | Balance impact |
|---|---|---|
pending | The transaction is in progress. | inbound_pending or outbound_pending is non-zero. |
posted | The transaction is complete. This is a terminal state. | Only available is non-zero. |
void | The 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.
