Skip to main content

Book Storefront Stripe payouts and PayPal fees

Your store takes cards through Stripe, and Stripe pays you every few days, after its fees. By default each store order posts its own invoice and payment, so your books never show the amount that actually reached the bank. Per payout booking posts each Stripe payout instead: one sales invoice and one Stripe fee bill that add up to the bank deposit to the cent, with each sale dated the day the buyer paid. It works like Shopify and eBay payouts.

PayPal is different. Your PayPal balance is a bank account in your books, and each PayPal order lands in it as its own deposit, so PayPal orders always stay per order. What SKU.io adds is the fee: the fee PayPal keeps on each payment posts as its own entry, so your PayPal account matches PayPal's balance.

SKU.io never asks for your Stripe or PayPal keys. Your store reads its payouts from Stripe and passes them on.

Before you begin​

  • Your store is connected. See Connect a Storefront store.
  • The accounts you'll post to exist under Accounting → Settings → Nominal Codes: your sales account, a merchant fee account for Stripe and PayPal fees, and the bank account Stripe pays into.
  • Your store's Stripe key can read payouts. If the store uses a restricted key, it needs Balance: Read and Payouts: Read.
  • Pick the day to switch over, and be ready to turn off, on that same day, the bank rule in Xero or QuickBooks that codes this store's Stripe deposits.

Set up per-payout booking for Stripe​

  1. Go to Apps & Integrations → All Integrations, open Storefront, and pick your store.

  2. In the store's sections, open Settings, then Accounting under Money. The same page opens from Finish setup on the Payouts page.

  3. Under How this store's money is booked, choose Per payout. Stripe is ticked under Processors booked by payouts. Orders paid any other way, including PayPal, bank transfer, invoice and BTCPay, always stay per order.

    The Accounting settings with Per payout chosen and Stripe ticked

  4. Set Payout accounting start date to your cut-over day. Stripe orders sold from that day on are booked by their payouts. Orders sold before it stay per order, and payouts that arrive before it are listed but never post.

  5. Under Where payouts land, choose the bank account Stripe pays into. Each payout's deposit clears its invoice and fee bill against that account.

  6. Read What changes when you save. It lists what saving does, such as which orders stop posting their own invoice and payment, and checks for orders sold before the start date that are still waiting for a payout.

    What changes when you save, after a change to the start date

  7. Click Save. If Save is greyed out, hover it: it names the step that's still missing.

Turn off your Stripe bank rule on the start date

If a bank rule in Xero or QuickBooks codes this store's Stripe deposits, turn it off from the start date. Otherwise the rule books each deposit as revenue, and the payout's invoice books it again. From the start date on, match each Stripe deposit to its payout's invoice and fee bill instead.

Per-payout entries replace the per-order invoice and payment entries of orders sold on or after the start date, in open periods only. A locked period is never touched, and you can't pick a start date inside one.

When two stores share one Stripe account​

If another Storefront store reports the same Stripe account, Accounting asks Which store books Stripe account for that account. Pick the store whose connection books its payouts. Each payout is booked once, and lines still match orders from either store. Until you pick, that account's payouts are held.

Book PayPal fees​

PayPal orders stay per order: each one posts its invoice, and its payment posts to your PayPal bank account. The fee PayPal keeps posts beside the payment as its own entry, debiting your fee account and crediting your PayPal account. It goes to your accounting provider as a Spend Money from your PayPal bank account in Xero, or a Purchase in QuickBooks, to match the fee line on your PayPal bank feed.

  1. On the same Accounting page, find the PayPal card.

  2. Under PayPal fees post to, choose your fee account, or leave it empty to use your merchant fee account.

    The PayPal card, with the account PayPal fees post to

  3. Click Save. Fee entries that haven't posted yet move to the new account.

Turn off your PayPal fee bank rule first

If a bank rule in Xero or QuickBooks codes the fee lines on your PayPal bank feed, turn it off before you rely on these entries. Each fee line on the feed is matched to the entry SKU.io sends, so a rule would book every PayPal fee twice.

The fee entry follows the order's payment. It needs payments to be posting (see Sync payments with your accounting provider), your PayPal payment type mapped to your PayPal bank account (see Manage payment types), and it's sent to your accounting provider when the store's invoices are. Orders paid through Stripe payouts never get a separate fee entry, because the payout's fee bill already carries their fees.

Check your payouts​

Open Payouts, under Money in your store's sections.

The Payouts list for a store

Until setup is done, a Set up payout booking checklist sits above the list with its four steps: Mode, Processors, Deposit accounts and Start date. Once you save the last one, SKU.io reads your payouts from a week before the start date, and then checks every hour. Click Sync payouts to read new payouts right away; the job tray shows its progress.

Each row is one Stripe payout:

ColumnWhat it shows
PayoutStripe's payout ID. The copy icon copies it
ArrivalThe day Stripe pays it into your bank
StatusPending, In transit, Paid, Failed or Canceled, as Stripe reports it
Gross, Fees, NetWhat buyers paid, what Stripe kept, and the bank deposit
Lines, OrdersHow many lines the payout has, and how many SKU.io sales orders they matched
AccountingWhere it stands in your books (see the next table)
DocumentsThe invoice and bill it posted. Each opens its ledger entry
Accounting statusWhat it means
PendingNot ready yet, usually because Stripe hasn't paid it. Lines are read once it's Paid
ReadyEvery check passes, and it posts shortly
PostedIts sales invoice and fee bill are in your ledger
HeldA check fails. Open the payout to see which one, and how to fix it
ErrorPosting failed. Open the payout to see why
Before start dateIt arrived before your start date. It's listed but never posts

Use the views to narrow the list: All payouts, Needs attention (held or with an error), Ready to post and This month. Filter by Processor, Status, Accounting and Arrival, or search by payout ID or by order number.

Inside a payout​

Click a payout to open it beside the list, or click Open page for its own page.

A posted payout, with the deposit check, its lines and its documents

  • Lines net ⇄ bank deposit does the math: Gross minus Fees gives Lines net, which must equal Bank deposit. Lands in names the account the deposit posts to.
  • The checks card lists every check the payout must pass, such as Lines add up to the deposit, Every line has an account, Booked by one store and Deposit account set. A failing check says why and has a Fix link.
  • Lines lists each charge, refund, dispute or fee, with the sales order it paid. A line that matched no sales order shows Unmatched, and still posts to its mapping. A standalone Stripe fee, such as Radar screening, is its own line with a negative gross, and posts on the fee bill.
  • Documents lists the sales invoice and the fee bill, each linked to its ledger entry.

Re-read lines reads the payout's lines from your store again.

Choose where each line posts​

On Payouts, click Mappings.

Payout mappings for Stripe

  • Mapping Groups: each group becomes one document per payout. Stripe Sales is an Invoice, and Stripe Fees is a Bill. Click Add Group to add another.
  • Type Mappings: every kind of line, such as stripe:charge and stripe:charge:fee, gets a Nominal Code and a Mapping Group. Charges, disputes and their reversals usually post to sales, refunds to sales returns, and every fee to your merchant fee account.
  • Fallback accounts: Revenue with no account and Expense with no account catch any line you haven't mapped, so a new kind of line never holds a payout up.
  • Orders sold before the start date, paid out after: a clearing account. Those orders' own invoices already booked the sale, so their payout lines clear here instead of booking it twice.
  • Changes apply from dates a mapping change. See Change payout mappings from a date.
  • Split payouts at month end posts each month's share of a payout in that month. See Split settlements and payouts at month end.

What a Stripe payout posts​

Say a payout of $496.88 pays two orders: $170.78 on October 27 and $341.55 on October 28, with $15.45 of Stripe fees.

DocumentAccountDebitCredit
Invoice Stripe payout po_EXAMPLE123, contact StripeAccounts Receivable512.33
Sales, first order (October 27)170.78
Sales, second order (October 28)341.55
Bill Stripe fees po_EXAMPLE123, contact StripeMerchant Account Fees15.45
Accounts Payable15.45
Deposit (in SKU.io's ledger only)Your Stripe bank account496.88
Accounts Payable15.45
Accounts Receivable512.33

The invoice (512.33) minus the bill (15.45) is 496.88, the deposit. In Xero or QuickBooks, match the bank line to the invoice and the bill together. Sales tax and shipping on an order post to their own accounts, split from the order's own figures.

Troubleshoot​

What you seeWhat to do
A banner says Stripe needs Balance: Read and Payouts: ReadIn the Stripe Dashboard, go to Developers → API keys, edit your store's restricted key, set Balance and Payouts to Read, and save. Then click Sync payouts
Held with Lines add up to the deposit failingClick Re-read lines. If it's still off, the gap is shown on the check
Held with Booked by one store failingPick which store books the shared Stripe account under Settings → Accounting
Held with Deposit account set failingChoose the account under Where payouts land

Next steps​

Video transcript

Card payments to your store reach your bank in batches, every few days and after fees. Per payout booking turns each of those deposits into one sales invoice and one fee bill. In your store's sections, under Money, open Payouts. Each row here is one Stripe payout. Gross is what buyers paid, Fees is what Stripe kept, and Net is the bank deposit. Accounting shows where each payout stands. Documents links to its invoice and its bill. A payout that arrived before your start date shows Before start date, and never posts. A payout still in transit posts once Stripe marks it paid. You set this up in the store's Settings. Open Accounting, the last item under Money. This page decides how the store's card money reaches your books. Choose Per payout to book Stripe orders by their payouts. Anything paid another way, PayPal included, stays per order. The payout accounting start date is your cut-over day. Stripe orders sold from that day on are booked by their payouts. On that same day, stop the bank rule that codes this store's Stripe deposits. Otherwise the revenue is booked twice. Where payouts land is the bank account Stripe pays into. Change a setting, and the panel on the right shows the effect of saving. Here, a later start date moves the cut-over, and the panel checks for orders caught in between. Cancel puts everything back. Until then, your settings stay as they were. PayPal works differently. Your PayPal balance is a bank account in your books, so PayPal orders are always booked per order. The fee PayPal keeps on each payment posts as its own entry. Choose the account for that fee. Before you rely on it, turn off any bank rule that codes those fee lines. Back on Payouts, search by payout ID or by order number. Here, an order number finds the payout that paid that order. Open the payout, and the top card does the math. Gross minus fees gives the lines net, and that matches the bank deposit. Below it are the checks a payout must pass before it posts. Each line links to the sales order it paid. Documents shows the sales invoice and the Stripe fee bill this payout posted. Together they add up to the deposit, and each one opens its ledger entry. SKU.io reads new payouts from your store every hour. Sync payouts reads them on demand. Mappings decides where each kind of line posts. Stripe Sales becomes the invoice, and Stripe Fees becomes the bill. Under Type Mappings, give each kind of line an account. Charges post to your sales account, and every Stripe fee to your merchant fee account. A line with no account posts to the fallback accounts above.

Last verified: