Glossary
Stripe Financial Account Transaction
A financial account transaction is the ledger row Stripe writes for every movement of money into or out of a financial account, recording how much the balance changed, which sub-balance it changed, and whether the movement has settled.
Also called: financial account transaction, treasury transaction, money management transaction, balance impact
Definition
The six objects that move money in and out of a Stripe financial account all get the attention: inbound transfers, outbound transfers, outbound payments, received credits, received debits, and payouts from the payments balance. The transaction is the thing underneath all of them. Each one of those movements writes a row, and the row is where the balance arithmetic actually lives.
That matters because a financial account balance is not one number. It is three, and a transaction says which of the three it touched. A movement can be recorded, visible, and completely real while the money it describes is not yet spendable, and the transaction is the only object that tells you which of those states you are in.
For anyone closing a period, this is the difference between a balance you can explain and one you cannot. The account shows a figure, your books show a figure, and when they disagree the answer is usually sitting in a transaction that has been created but has not posted.
Key points
- +One row per money movement into or out of a financial account, written by the object that caused it.
- +Balance impact splits the effect across three sub-balances rather than a single total.
- +Status is open, posted, or void. Open means the sub-balances moved but the current balance has not.
- +The flow and its type name the object responsible, which is what decides the bookkeeping treatment.
- +Transaction entries sit underneath a transaction and record each stage of the same movement separately.
Three sub-balances, not one balance
A financial account balance is reported as three separate figures, and every transaction says which of them it moved.
Stripe documents the balance impact fields as follows. The cash figure, called available in the newer API, is "the change made to funds the user can spend right now". The inbound pending figure is "the change made to funds that are not spendable yet, but will become available at a later time". The outbound pending figure is "the change made to funds in the account, but not spendable because they are being held for pending outbound flows".
So a single outbound payment of 10.00 USD does not simply reduce the balance by 10.00. At the moment it is initiated it moves 10.00 out of the spendable figure and into the outbound pending figure. Nothing has left the account yet. The total the account holds is unchanged, and the amount you could spend today is 10.00 lower.
This is why a financial account balance read at the wrong moment is so easy to misreport. If you take the spendable figure as the account balance, you understate it by everything currently held for pending outbound flows. If you take the sum, you overstate what is actually usable.
Open, posted, and void
A transaction carries one of three statuses, and Stripe defines them precisely enough to be worth quoting.
Open is "the initial state for all Transactions. The Transaction results in updates to the sub-balance amounts, but the current balance is not affected until the Transaction posts." Posted means "funds have successfully entered or left the account. The current balance was affected." Void means "the Transaction never impacted the balance", and Stripe gives the example of an outbound payment that was initiated and then canceled before the funds left.
The open state is the one that produces reconciliation questions. It is a real row describing a real instruction, it has already changed what you can spend, and it has not yet changed the account balance. A transaction sitting open across a period boundary is money that is committed but not gone.
The status transitions object records when the movement resolved, with a posted at timestamp and a void at timestamp. At most one of them is ever set, because posted and void are both terminal. For a period cutoff, the posted at timestamp is the date that answers when the balance actually changed, and it is frequently not the date the transaction was created.
The flow is what decides the bookkeeping
A transaction on its own does not tell you whether money moved because you paid a supplier, because a customer funded your account, or because a card was used. The flow does.
Every transaction points at the object that caused it and names that object type. In the Treasury API the documented types are inbound transfer, outbound transfer, outbound payment, received credit, received debit, credit reversal, debit reversal, issuing authorization, and other. The newer money management API carries the same idea as a category plus a flow object holding the identifier and its type.
This is the field that matters most for your books, because the accounting treatment is a property of the flow rather than of the transaction. Money leaving a financial account to your own external bank account is a transfer between two accounts you own. Money leaving to pay a supplier is an expense. Both are outbound, both write a transaction, and they belong in entirely different places in your chart of accounts.
Two API generations, and a field that quietly changed its name
This object exists in two shapes, and the differences are the kind that cost an afternoon.
In the Treasury API the object is a treasury transaction. Amounts are plain integers in the smallest currency unit, the balance impact fields are named cash, inbound pending and outbound pending, and the flow type is a single string.
In the v2 money management API, which Stripe currently serves under a preview API version, the object is a money management transaction. Amounts are objects carrying a value and a currency rather than bare integers, the flow becomes an object holding both the identifier and its type, a separate category field names the movement, and the field that was called cash is called available.
That rename is the trap. The same concept, funds you can spend right now, answers to one name in one reference and a different name in the other. Anyone comparing a dashboard figure against an API response, or reading documentation written against the older generation, should check which shape they are looking at before concluding the numbers disagree.
Transaction entries, and why one movement writes several rows
Underneath a transaction sit transaction entries, which Stripe describes as the most granular view of money movements that affect a financial account balance. A transaction is an aggregation of its entries.
The outbound payment above shows why both layers exist. When the payment is initiated, the transaction is created with one entry moving the amount from the spendable figure into outbound pending. When the payment later posts, the transaction does not get rewritten. A second entry is added, removing the amount from outbound pending, and the transaction status changes to posted.
So the transaction is the story and the entries are its chapters. Each entry carries its own effective date, describing when it affected or will affect the balance, which is what makes the pair useful for anything date-sensitive.
Stripe also documents when a transaction stops accumulating entries. A transaction in the void status will not have new entries added. A transaction in the posted status where all of its balance impact is to the cash sub-balance will not either. Both cases mean the movement is finished and the row can be treated as final.
What Acodei records from financial account activity
Acodei supports Stripe financial accounts and books each money-movement event into QuickBooks Online according to the object that produced it, which is the same flow the transaction row names.
A payout from the Stripe payments balance into the financial account becomes a Transfer from your Stripe payment holding account to your Stripe financial account holding account. An inbound transfer becomes a Transfer from your mapped external bank account into the financial account holding account, and a received credit becomes a Transfer from your default payment bank account into it. An outbound transfer becomes a Transfer the other way, from the financial account holding account to the bank account you selected in Account Mapping.
The two that become expenses rather than transfers are the ones that leave the business. An outbound payment to a vendor or contractor becomes a Purchase or Expense paid from your financial account holding account, categorised by the expense account you chose in Account Mapping, for the payment amount only. A received debit, typically spending on a Stripe-issued card, becomes a Purchase or Expense the same way. If a connection sets its expense batch interval to daily, outbound payments and received debits do not each produce their own record. They collapse into a single daily journal entry per account per day.
A few details are worth knowing before you reconcile. Each currency your financial account holds needs its own holding account in QuickBooks, so a multicurrency account is mapped per currency. Stripe fees on transfers and outbound payments are not attached to those records; they are recorded separately on a daily balance summary for financial accounts, which is a different record from the daily balance summary used for the payments balance. Acodei checks for a financial account automatically when a Stripe account is connected, and the mapping section appears only if one is found, since Stripe gates the feature and enables it per account. One current limitation to expect in your books: the recipient name on an outbound payment is not retrievable from Stripe today, so those purchases are assigned to a default vendor named Stripe.
Want to see this on your own Stripe data?
Start a free trialFrequently asked questions
What is the difference between a financial account transaction and a Stripe balance transaction?
They describe different balances. A Stripe balance transaction is a row against the payments balance, the one that funds your payouts and carries your charges, refunds and fees. A financial account transaction is a row against a financial account, which behaves like a bank account with its own ledger. A business using both has two independent sets of rows, and moving money between them is itself a transaction on each side.
Why does my financial account balance not match what I can spend?
Because the balance is reported as three figures rather than one. Funds held for pending outbound flows are in the account but not spendable, and funds arriving are recorded before they become available. The spendable figure and the total are different numbers by design, and transactions in the open status are usually what separates them.
What does it mean when a transaction is open rather than posted?
Open is the initial state. Stripe documents it as updating the sub-balance amounts while leaving the current balance unaffected until the transaction posts. In practice the instruction has been accepted and the money is committed, but it has not yet entered or left the account. An open transaction across a period end is the classic cause of a cutoff difference.
Is the balance impact field called cash or available?
Both, depending on which API generation you are reading. The Treasury reference calls it cash. The v2 money management reference calls it available and wraps it in an object carrying a value and a currency rather than a bare integer. The concept is identical: funds you can spend right now.
Does Acodei create a QuickBooks record for each transaction row?
Acodei books the money-movement events rather than the ledger rows underneath them. Each supported event has its own QuickBooks record, a Transfer for money moving between accounts you own and a Purchase or Expense for money leaving the business, with fees recorded separately on a daily balance summary for financial accounts. The transaction row remains the place to check Stripe timing when you need to know whether a movement has posted.
What customers say about running Stripe through Acodei

“If you're testing out all the different Stripe/QuickBooks integration apps right now, let me save you some time. This one is the best one by far.”
“Works well and is really helpful for massive transactions. The support is really fast and helpful. 100% recommended.”
Related reading
- The account these transactions belong to
- The payments balance equivalent of this row
- Available and pending on the payments balance
- Funding a financial account from your own bank
- Paying a vendor out of a financial account
- Financial account spending and card expenses in QuickBooks
More glossary terms
- Undeposited Funds
- Stripe Balance Transaction
- Available vs Pending Balance
- Stripe Dispute
- Stripe Dispute Evidence
- Stripe Fee
- Stripe Balance Adjustment
- QuickBooks Credit Memo
- Stripe Tax
- QuickBooks Tax Code
- Stripe Reserve
- Stripe Tax Rate
- Stripe Fee Credit
- Stripe Credit Note
- QuickBooks Product/Service Item
- Stripe Payout
- QuickBooks Sales Receipt
- QuickBooks Bank Deposit
- QuickBooks Transfer
- Stripe Authorization Hold
- QuickBooks Refund Receipt
- QuickBooks Payment
- QuickBooks Expense
- QuickBooks Journal Entry
- Stripe Financial Account
- Holding Account
- Accounts Receivable
- Bank Feed
- Deferred Revenue
- Stripe PaymentIntent
- Stripe Checkout Session
- Stripe SetupIntent
- Stripe PaymentMethod
- Stripe Charge
- Stripe Refund
- QuickBooks Invoice
- QuickBooks Class Tracking
- QuickBooks Location Tracking
- QuickBooks Project
- QuickBooks Closing Date
- Stripe Invoice Line Item
- Stripe Proration
- Stripe Invoice Status
- Stripe Shipping Rate
- Stripe Transfer
- Stripe Mandate
- Stripe on_behalf_of
- Stripe Invoice Item
- QuickBooks Estimate
- Stripe Invoice Payment
- Stripe Invoice Payment Settings
- Stripe Billing Meter
- Stripe Invoice Template
- Stripe Price
- Stripe Subscription Schedule
- Stripe Subscription Item
- QuickBooks Recurring Transaction
- QuickBooks Sub-Customer
- QuickBooks Audit Log
- QuickBooks Bank Rule
- Stripe Subscription Status
- Stripe Mixed Interval Subscription
- Stripe Trial Settings
- QuickBooks Payment Terms
- Stripe Pending Update
- QuickBooks Tags
- QuickBooks Credit Card Credit
- QuickBooks Vendor Credit
- QuickBooks Bill
- QuickBooks Delayed Charge
- Stripe Billing Mode
- QuickBooks Billable Expense
- Stripe Customer Cash Balance
- QuickBooks Purchase Order
- QuickBooks Opening Balance
- QuickBooks Account Type
- QuickBooks Sales Tax Center
- Stripe Webhook
- Stripe Metadata
- Stripe Outbound Payment
- Stripe Received Credit
- Stripe Outbound Transfer
- Stripe Inbound Transfer
- Stripe Received Debit
- Stripe Payout Method
Ready to try Acodei?
Connect Stripe to QuickBooks Online in minutes and let the fees, refunds, and payouts land where your accountant expects them.