Skip to content
Create account or Sign in
The Stripe Docs logo
/
Ask AI
Create accountSign in
Get started
Payments
Revenue
Data
Platforms and marketplaces
Money management
Developer resources
APIs & SDKsHelp
Overview
Get started with Connect
Design your integration
Integration fundamentals
Example integrations
Account management
Onboard connected accounts
Configure account Dashboards
Capabilities and information requirements
Work with connected account types
Payment processing
Accept payments
Pay out to accounts
Platform administration
Manage your Connect platform
Tax forms for your Connect platform
Embedded finance
Treasury for platforms
    Overview
    Get started
    How Treasury for platforms works
    Eligibility requirements
    Marketing and compliance
    Manage fraud
    Integrate
    Build an integration
    Embed prebuilt finance components
    Store and convert
    Manage financial accounts
    Connected accounts
    Multiple financial accounts
    Multi-currency financial accounts
    Move money
    Fund a financial account
    Transfer between same-owner accounts
    Pay others
    Authorize direct debits
    Money movement timelines
    Spend
    Rewards
    Administrative facilitation fee
    Transactions
    Monitor transactions
    Statements
    Legacy
    Treasury for platforms v1
Issuing
Capital for platforms
Managed support
United States
English (United States)
  1. Home/
  2. Platforms and marketplaces/
  3. Treasury for platforms
Public preview

Working with TransactionsPublic 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
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v2/money_management/transactions/trxn_7X8Y9Z0A1B2C3D4E \ -H "Authorization: Bearer sk_test_BQokikJOvBiI2HlWgH4olfQ2" \ -H "Stripe-Version: 2026-07-29.preview" \ -H "Stripe-Context:
{{CONTEXT}}
"

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
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v2/money_management/outbound_payments/obp_3E4F5G6H7I8J9K0L \ -H "Authorization: Bearer sk_test_BQokikJOvBiI2HlWgH4olfQ2" \ -H "Stripe-Version: 2026-07-29.preview" \ -H "Stripe-Context:
{{CONTEXT}}
"

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.

Was this page helpful?
YesNo
  • Need help? Contact Support.
  • Chat with Stripe developers on Discord.
  • Check out our changelog.
  • Questions? Contact Sales.
  • LLM? Read llms.txt.
  • Powered by Markdoc
On this page