Your bot just crossed its first $100 in premium sales, Discord approved your team for payouts, and the first Stripe deposit lands in your bank account. It is smaller than the sales number on your developer dashboard — noticeably smaller. Nothing is wrong. But if you record that deposit as your revenue and move on, you have already made the bookkeeping mistake that follows bot developers all the way to tax season: the deposit is the last number in a chain, and the IRS taxes the first one.
Discord's native monetization for apps — Premium App Subscriptions and one-time purchases — handles an impressive amount of financial plumbing on your behalf. It collects sales tax from buyers and remits it. It processes cards, fights fraud, and pays you through Stripe. What it does not do is compute your taxable income. Every dollar of gross sales is still your revenue, every fee Discord keeps is a deduction you have to claim yourself, and the gap between the two is a reconciliation job that belongs to you. Here is how the money actually flows, and how to keep books that survive contact with Schedule C.
How Premium App Money Flows, Step by Step
Premium Apps are a different product from Discord's Server Subscriptions, and the economics differ too. When you monetize a bot, you create SKUs — subscription tiers or one-time purchases — and Discord's checkout sells them inside the app. Its API tracks who paid through entitlements: a user subscription entitles one buyer, a guild subscription entitles every member of the subscribing server. One-time purchases come in durable form (buy once, keep forever, like a lifetime premium unlock) or consumable form (buy, use up, buy again, like a temporary boost).
Each sale passes through the same waterfall before anything reaches you:
- The buyer pays the price plus transaction tax. You set SKU prices in USD, Discord localizes them for buyers abroad, and sales tax, VAT, or GST is added on top. Discord states plainly that all applicable taxes are paid by the purchaser and that Discord remits them to the appropriate authority. That tax was never your money.
- Payment processing comes off the top. Discord charges a payment processing fee on each transaction — its published example uses 6% — plus any per-transaction fees.
- Discord takes its platform fee. New developer teams start on the Growth Tier: a 15% platform fee on the first $1 million in cumulative gross sales. After the team crosses $1 million, the Standard Tier rate of 30% applies. The fee is calculated on user payments after taxes and processing fees are removed, so the headline percentage understates nothing but also applies to less than the sticker price.
- Refunds and chargebacks are deducted. Discord may pull these, with associated fees, straight out of your payout balance.
- The remainder is paid through Stripe. Payouts arrive within 45 days after the end of the calendar month, once your team has cleared a payout eligibility review that starts after the first $100 earned. Later balances under $25 roll forward instead of paying out.
Run the published example through: $100 of sales with 6% processing and 8% sales tax means buyers pay $108 total, and roughly $79–80 reaches the developer under the 15% Growth Tier. The dashboard shows sales; your bank shows the residue. Both numbers matter, and they go in different places in your books.
Note the eligibility geography too: Premium Apps payouts are currently available to developers based in the US, UK, and EU. If you are building from anywhere else, native monetization is not an option yet, and the off-platform route below is your whole business, not a side channel.
What Discord's Tax Handling Covers — and Where It Stops
Discord acting as the collector and remitter of sales tax is genuinely valuable. Without it, selling a $5 premium tier to buyers in forty countries would leave you researching digital-goods taxability in forty jurisdictions. With it, consumption tax is handled before the money is yours.
But consumption tax is the only tax Discord handles. Two much bigger obligations stay entirely with you.
Income tax on every dollar of gross sales. When tax forms arrive, they report payment volume, not profit. Payouts flow through Stripe, and Stripe-issued 1099-K forms report the gross amount buyers paid — before Discord's platform fee, before processing fees, before refunds. That gross figure is the revenue number the IRS already has on file for you. Your job on Schedule C is to report that same gross number as receipts and then deduct each fee as its own business expense. Reporting the net deposit as revenue instead is the single most common platform-seller mistake: the numbers reconcile to the same profit either way, but only the gross-minus-deductions version matches what the IRS was told.
Self-employment tax from the first $400 of profit. Bot income is self-employment income unless you have formed an entity that changes that treatment. Net earnings of $400 or more trigger self-employment tax — 15.3% covering Social Security and Medicare — on top of ordinary income tax. There is no minimum age, no hobby exception that survives real revenue, and no "Discord already took its cut" offset. The platform fee buys you distribution and checkout, not tax coverage.
One more threshold worth knowing: under current law, the federal 1099-K reporting threshold sits at more than $20,000 in payments and more than 200 transactions for the year, after Congress reversed the planned drop to $600. A bot earning $8,000 across a few hundred small subscriptions may generate no form at all — some states set far lower bars, so check yours — but every dollar is taxable whether or not anyone mails you paperwork. Track revenue from the first sale, not from the first form.
The Reconciliation Job, Made Concrete
Open a month where your bot sells 120 user subscriptions at $10 each: $1,200 in gross sales. Here is what the waterfall does to it under the Growth Tier, assuming 6% processing and no refunds:
- Gross sales: $1,200.00 — this is your Schedule C revenue.
- Payment processing (6%): $72.00 — deductible expense.
- Platform fee (15% of $1,128): $169.20 — deductible expense.
- Stripe payout to you: $958.80 — this is a transfer, not revenue.
Two deposits of that shape, and a developer who books bank deposits as income has understated revenue by nearly $500 while also missing $500 of deductions. The profit is accidentally right; the return is wrong in two places, and the IRS notice that follows matches its copy of the gross against yours.
In a plain-text ledger, the month looks like this — one transaction that keeps every layer visible:
2026-01-01 open Assets:Stripe USD
2026-01-01 open Income:Bot:Subscriptions USD
2026-01-01 open Expenses:Platform:DiscordFees USD
2026-01-01 open Expenses:Platform:Processing USD
2026-10-31 * "Discord" "October Premium App payout, 120 user subscriptions"
Income:Bot:Subscriptions -1200.00 USD
Expenses:Platform:Processing 72.00 USD
Expenses:Platform:DiscordFees 169.20 USD
Assets:Stripe 958.80 USDSales tax never appears in your books at all: Discord collects it from the buyer and remits it, so it is neither your income nor your expense. If a settlement line ever shows tax amounts, treat them as memo information, not postings. And when the Stripe balance moves to your checking account, that is a transfer between two of your own asset accounts — not a second helping of income:
2026-01-01 open Assets:Stripe USD
2026-01-01 open Assets:Bank:Checking USD
2026-11-10 * "Stripe" "Premium App payout to checking"
Assets:Stripe -958.80 USD
Assets:Bank:Checking 958.80 USDRefunds and chargebacks deserve their own treatment. A refunded subscription reduces your gross receipts — book it against income, not as an expense — while a chargeback fee is a genuine expense. Lumping the two together overstates both your revenue and your deductions, which usually nets out but reads badly under scrutiny. If your bot also sells through mobile storefronts or any channel where an app store takes its cut, keep that fee as a third line item rather than folding it into Discord's; each fee has a different recipient, and a future question about any one of them is much easier to answer from separate lines.
The Off-Platform Wrinkle: Price Parity and Two Sets of Books
Many serious bot developers also sell outside Discord — license keys on their own site, premium roles through a payment link, annual plans a SKU cannot express. That route has real attractions: lower fees, direct customer data, and, if you use a merchant of record, the same sales-tax-collected-for-you treatment Discord provides. But Discord's developer policy adds a constraint you must build around: since October 2024, any paid capability you sell elsewhere must also be purchasable through Premium Apps at a final pre-tax price no higher than the off-platform price. You can sell on your own site, but you cannot undercut your own Discord listing to steer buyers away from the platform fee — permanent off-platform "discounts" count as violations too.
For your books, that means two revenue channels with different gross numbers, different fee structures, and potentially different tax forms, all landing on one Schedule C. Keep them in separate income accounts from day one:
Income:Bot:Subscriptionsfor Premium App sales, with Discord's fee stack underneath.Income:Bot:LicenseKeys(or similar) for off-platform sales, with that processor's fees underneath.
Come January, each channel's gross should tie to its own settlement history and its own form. Developers who merge both streams into one "bot income" line spend tax season reverse-engineering which dollars came from where — usually from memory, usually wrong.
Deductions Bot Developers Routinely Miss
The fee stack is only the beginning. Nearly everything you spend keeping the bot alive is an ordinary business expense against this income:
- Hosting and infrastructure — VPS bills, managed databases, Redis, CDN and bandwidth overages. If one server hosts the bot and a personal project, allocate by a reasonable measure and document it.
- API and model costs — LLM API bills for an AI-featured bot, image generation, transcription, or any metered upstream service the bot resells as features.
- Domains, TLS, and status tooling — the bot's website domain, uptime monitoring, error tracking, and analytics seats used for the bot.
- Software and assets — IDE subscriptions, design tools, stock art or sound packs shipped in the bot, test accounts and second devices bought for QA.
- Contractor payments — freelance developers, moderators, or artists you pay, with information returns filed wherever thresholds require them.
- Professional services — bookkeeping, tax preparation, and the legal review of the terms of service and privacy policy Discord already requires you to publish before you can monetize at all.
The hosting bill is the one to automate first, since it recurs monthly and is trivially provable:
2026-01-01 open Assets:Bank:Checking USD
2026-01-01 open Expenses:Hosting USD
2026-11-01 * "VPS provider" "November bot hosting"
Expenses:Hosting 48.00 USD
Assets:Bank:Checking -48.00 USDA common gray area: the laptop and home internet you also use personally. You may deduct the business-use percentage, but "percentage" needs a basis — hours logged, bandwidth measured, or a workspace allocation — not a guess restated confidently. Pick a method, write it down, use it all year.
Estimated Taxes: The Bill That Surprises First-Year Developers
Nobody withholds from Stripe payouts. If you expect to owe $1,000 or more beyond any withholding from a day job, the IRS wants that money quarterly — April 15, June 15, September 15, and January 15 — and charges interest when it arrives late. A bot netting a few hundred dollars a month alongside full-time employment can easily trip the $1,000 line once self-employment tax joins income tax, which makes the first profitable year the dangerous one: the estimation habit does not exist yet, and the underpayment interest compounds while you learn.
The practical fix is a percentage rule applied to every payout as it lands. Set aside 25–30% of each Stripe deposit in a separate account the day it arrives; adjust the rate once your preparer (or your own Form 1040-ES worksheet) tells you the real number. Developers who wait until April to discover the bill either raid operating cash or file on extension owing interest — both avoidable with a transfer that takes thirty seconds.
A Monthly Routine That Keeps the Whole Thing Honest
None of this requires an accounting department. It requires about twenty minutes a month, in this order:
- Pull the settlement, not the dashboard. Export the month's Premium App sales and the Stripe payout statement. The dashboard shows sales; the statement shows what each fee took.
- Book gross, fees, and payout as one entry. Revenue equals buyer payments before fees. Each fee gets its own expense line. The payout is an asset transfer.
- Reconcile Stripe to the bank. Every payout on the statement should match a deposit, accounting for the 45-day lag — October sales pay out in December, so never compare a month's sales to the same month's deposits.
- Book off-platform sales separately. Match that channel's processor statement to its own income account and its own fees.
- Watch cumulative gross against the $1 million tier line. The jump from a 15% platform fee to 30% doubles your largest expense overnight. You want to see it coming quarters away, not discover it in a smaller payout.
- File the statements. Save each month's export with the books. In three years, when nobody remembers October, the PDF remembers.
Discord removed the hardest part of selling software inside a chat app: checkout, fraud, global tax collection, and payouts to your bank. What remains is exactly the size of job a careful developer can do in an evening a month — record what buyers paid, record what each intermediary kept, and keep the proof. Do that from the first $100 review onward, and the Schedule C at the end of the year writes itself from numbers you already trust.





