Glossary

Stripe Received Debit

A Stripe received debit is a record of money being pulled out of your Stripe financial account by a process you did not send, most often a purchase on a Stripe-issued card, but also an ACH debit or a top-up into your payments balance.

Also called: received_debit, ReceivedDebit, card spend on a Stripe financial account, money pulled from a financial account

Definition

A received debit is the financial account equivalent of somebody reaching in and taking money out.

The name is the first thing to get past, because it points the wrong way. It does not mean money was received. It means Stripe received an instruction to debit you. What arrives is the instruction. What leaves is the money.

Stripe describes received debits as the result of processes initiated outside the financial account that pull funds out of it, and names three: spending on a card through Stripe Issuing, pulling money out to an external account by ACH debit, and pulling money out of a platform’s financial account into that platform’s Stripe payments balance using a top-up. Those are three different events with three different meanings for your books, and they all produce the same object.

You never create one. Stripe is explicit that you observe received debits through webhooks rather than making them, and the object cannot be created in live mode through the API at all. That is what makes this object different from the ones around it. An outbound payment or an inbound transfer is something you instructed, so you already know why it exists. A received debit is something that happened to you, so the only question worth asking about one is what created it.

Acodei’s documentation covers the case most businesses will actually meet, which is card spend, and records it as a Purchase or Expense. That treatment is correct for the card case and is not a safe assumption for the others, which is the distinction this page exists to draw.

Key points

  • +A received debit records money leaving your Stripe financial account because a process outside it pulled the funds.
  • +Stripe documents three origins: spending on a Stripe-issued card, an ACH debit pulling funds to an external account, and a top-up moving money into your Stripe payments balance.
  • +You do not create received debits. Stripe creates them and you observe them through the received debit created webhook.
  • +There are only two statuses, succeeded and failed. Stripe states that a failed received debit creates no transaction at all.
  • +The initiating payment method details on the object identify the origin: a US bank account, an Issuing card, another financial account, or the Stripe payments balance.
  • +A received debit can be reversed, but only before a deadline Stripe records on the object itself. ACH received debits stay reversible for a limited time after they are created.
  • +Acodei records the documented card-spend case as a Purchase or Expense in QuickBooks, paid from the financial account holding account and categorized to the expense account you mapped.

The field that tells you what pulled the money

Because a received debit can come from three unrelated places, the useful work is identifying which one you are looking at, and the object carries the answer in two places rather than one.

The first is the initiating payment method details, which Stripe describes as a polymorphic type matching the originating money movement’s source. It resolves to a US bank account when an external account holder pulled by ACH debit, in which case Stripe also records the bank name, the routing number and the last four digits of the account. It resolves to an Issuing card when the movement was card spend. It resolves to a financial account when the source was another financial account. And it resolves to a balance, with the value payments, which Stripe notes is only set when the source is a payout.

The second is the linked flows object, and it is the more revealing of the two because it points at the thing that caused the debit rather than at the instrument. Stripe documents six pointers on it. A debit reversal is set when this received debit has itself been reversed. An inbound transfer is set when the received debit is associated with an inbound transfer’s return of funds. An issuing authorization is set when the debit was created by an Issuing authorization, and an issuing transaction is set when the same debit is also viewable as an Issuing dispute. A payout is set when a payout caused it, and a top-up is set when a top-up did.

Read those six together and the shape of the object becomes clear. Only two of them are spending in any ordinary sense. The rest are your own money moving, or money coming back. A received debit is a category of event, not a category of expense, and the linked flow is what separates the two.

Two statuses, and one of them leaves nothing behind

Most Stripe money-movement objects have a lifecycle. This one barely has one.

Stripe documents exactly two statuses for a received debit, succeeded and failed, and says they are created with one or the other already set. There is no processing state and nothing to wait on, because by the time the object exists the decision has been made. It was approved, or it was declined.

The consequence is worth stating plainly: Stripe records that when a received debit fails, it was declined and no transaction was created. Nothing moved and nothing posted. If you are looking for a QuickBooks record for a card charge that Stripe shows as failed, there was never anything to sync.

When one does fail, Stripe attaches a reason, and the documented codes are narrower and more diagnostic than most failure enums. Insufficient funds means the financial account balance could not cover it. Account closed and account frozen both mean funds cannot be pulled from the account in its current state, which is an account-level problem rather than a transaction-level one. There is a generic other. And there is one that surprises people: international transaction, which Stripe documents as international transactions being unable to pull funds from the financial account at all.

That last one is a rule rather than a failure. A declined card abroad is not a balance problem and retrying it will not help.

An expense that can be pulled back, but not forever

A received debit that succeeded is not necessarily final, and the window in which it can be undone is recorded on the object rather than left to the calendar.

Stripe attaches reversal details carrying a deadline, which it defines as the time before which a received debit can be reversed. Reversing one produces a separate debit reversal object, and the original received debit then links to it. So a reversal is an additional movement rather than an erasure, which is the same pattern Stripe uses for returned inbound transfers.

When a received debit cannot be reversed, Stripe says why with a restricted reason. It may be already reversed. It may be deadline passed, which Stripe explains directly: ACH received debits are only reversible for some time after they are created. It may be network restricted, where network constraints prevent Stripe from allowing a reversal. It may be source flow restricted, meaning the flow that caused the debit is not itself reversible. Or it may fall to a generic other.

For a close, the deadline is the part that matters. An expense sitting in a period you are about to lock may still be reversible on the Stripe side for a short window after that period closes, and the reversal will land as a movement of its own on a later date. Checking the reversal deadline on anything large near a cutoff is cheaper than reopening a period.

One documented treatment, and a boundary worth respecting

Acodei’s documentation describes a received debit as money taken out of your Stripe financial account, usually because of a card payment made using a Stripe-issued card, and records it as a Purchase or Expense in QuickBooks. It is paid from your Stripe financial account holding account, and its category comes from the expense account you selected on the Account Mapping page.

That mapping lives in its own section, separate from the one for external bank accounts. The external bank account section covers accounts your business owns that money moves to and from, which is what inbound and outbound transfers use. The expense section covers spending made directly from the financial account balance, which is where outbound payments and card spend land. Two sections, because they answer two different questions.

Here is the boundary. Acodei’s documentation covers the card-spend case and does not describe the other origins Stripe’s object can carry. A received debit created by a top-up, by a payout, or by the return of an inbound transfer is not money you spent, and booking one as an operating expense would overstate expenses and miss a balance sheet movement. We are not going to tell you those cases are handled a particular way when the documentation does not say so. If a received debit appears on your financial account and its linked flow points at a top-up, a payout or an inbound transfer, check how it posted rather than assuming it followed the card-spend treatment.

The card case itself is well defined, and it is the one that will account for nearly all of these on a normal account.

What Acodei records for a received debit

For the documented card-spend case, Acodei creates a Purchase or Expense in QuickBooks. It is paid from your Stripe financial account holding account, and the category is the expense account you chose on the Account Mapping page.

An expense is the right record type here, and the reason is the one rule that governs this whole family. Money moving between accounts you own is a Transfer and never touches your profit and loss. Money leaving for somebody else is spending. Card spend is spending, so it books as spending, which is what separates a received debit from the inbound and outbound transfers that move the same balance around.

Currency decides which holding account it is paid from. A financial account can hold more than one currency, and Acodei’s documented setup gives each currency its own QuickBooks holding account, so a USD card charge and a GBP one are paid from different accounts.

One setting changes the shape of the result completely. Acodei documents an expense batch interval on the connection, and when it is set to daily, outbound payments and received debits stop producing an individual Purchase or Expense each. They collapse into a single journal entry per account per day. The per-event description above is the default instantly mode. If you are looking for a card charge and finding a journal entry, that setting is the reason, and there is no individual record to find because none was created.

For companies outside the US, Acodei applies a zero-rated or exempt tax rate to the purchase records it creates in QuickBooks.

Two prerequisites sit underneath all of this. Stripe gates financial account features and has to enable them for your account, so not every Stripe user will ever see a received debit. And Acodei checks automatically whether a financial account exists when a Stripe account is connected, revealing the Financial Account section on the Account Mapping page only when one is found.

Card spend only reconciles if the balance Stripe shows and the register QuickBooks shows are describing the same movements, which is what Acodei’s reconciliation between the two systems is built to hold true.

Want to see this on your own Stripe data?

Start a free trial

Frequently asked questions

What is a Stripe received debit?

It is a record of money being pulled out of a Stripe financial account by a process started outside it. Stripe documents three origins: spending on a card through Stripe Issuing, an ACH debit pulling funds to an external account, and a top-up moving money from the financial account into the Stripe payments balance.

Why is it called a received debit if the money left my account?

Because the thing received is the instruction, not the money. Stripe received a debit request against your financial account and recorded it. The direction of the funds is out, which is why a received debit is the opposite of a received credit despite the similar name.

How does a received debit appear in QuickBooks?

For the card-spend case that Acodei documents, as a Purchase or Expense paid from your Stripe financial account holding account, categorized to the expense account you selected on the Account Mapping page. Which holding account it is paid from depends on the currency, since each currency in a financial account gets its own.

What happens if a received debit fails?

Nothing posts. Stripe states that a failed received debit was declined and no transaction was created, so there is no movement to record and nothing for a sync to pick up. The reason appears as a failure code, covering insufficient funds, a closed account, a frozen account, an international transaction, or a generic other.

Can a received debit be reversed after it has posted?

Only before a deadline Stripe records on the object. A reversal creates a separate debit reversal rather than erasing the original, and the received debit then links to it. Once the deadline passes Stripe marks the reason as deadline passed and explains that ACH received debits are reversible only for a limited time after creation.

Is a Stripe top-up a received debit?

It can create one. Stripe lists pulling money out of a financial account into the Stripe payments balance by top-up as one of the three things that produce a received debit, and the object carries a top-up pointer in its linked flows when that is the cause. That case is money moving between two balances you own rather than spending, so do not read every received debit as an expense.

Does every received debit become an expense in QuickBooks?

Acodei’s documentation describes the card-spend case and records that as a Purchase or Expense. It does not describe received debits created by a top-up, a payout or the return of an inbound transfer, and those are not spending. If you see one whose linked flow points at any of those, confirm how it posted to your own books rather than assuming it followed the card-spend treatment.

What customers say about running Stripe through Acodei

Stripe Verified Partner BadgeQuickBooks Intuit Badge
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.
RyanOwner at Indie Music Academy
Works well and is really helpful for massive transactions. The support is really fast and helpful. 100% recommended.
AndresCo-founder and CEO at Kanguro Collections and Reinsurance

Related reading

More glossary terms

See the full glossary

Ready to try Acodei?

Connect Stripe to QuickBooks Online in minutes and let the fees, refunds, and payouts land where your accountant expects them.