Vibe-Coded 应用的销售税与增值税:你真正需要做什么
Sales Tax and VAT for Vibe-Coded Apps: What You Actually Have to Do
我们发现了什么
你的应用已经有了最初几位付费客户:一位来自德国,一位来自美国,一位来自印度。我经常使用 AI 智能体构建副业项目,因此花了很多时间为使用 Claude Code、Cursor 和 Codex 制作的应用接入支付。
- 来源:DEV Community(发现于 2026-11-10)
- 证据等级:B · 来源中出现收入或付费客户自述;本站未核对该金额,不代表本站背书。
- 商业模式:待核验
- 主题:营销与增长
- 初筛评分:15.3/100 · 收录 1 次
证据,比故事更重要。
规则清洗与初筛,未经人工商业核验。原文语境、实际客户和付费情况仍需自行验证。
引用与数字披露
来源类型(原作者自述/第三方测算/媒体转引)需采集端标注,本版尚未落字段。
- 作者
- 未标注
- 抓取日期
- 来源类型
- 未标注
- 币种
- 未标注
- 口径
- 未标注
- 披露主体
- 未标注
- 披露日期
- 未标注
中文辅助译文(全文)
你的应用终于有了最初几位付费客户:一位在德国、一位在美国、一位在印度。随后有人要求开具一张带有其 VAT 编号的发票,你才意识到自己从未考虑过税务。你必须收取这笔税吗?由谁向哪个政府支付?
我是 Deepak,一名位于海得拉巴的开发者。我用 AI 智能体构建业余项目,并花大量时间在用 Claude Code、Cursor 和 Codex 制作的应用中接入支付。本文用通俗语言讲解在线销售小型应用所涉及的销售税和 VAT,以及 Polar 和 Stripe 实际上如何处理这些问题。无需编写代码。
这不是税务或法律建议。我不是会计师,税务规则取决于你居住的地方、你的客户所在地点以及你销售的产品。请用本文了解可选方案,然后向会计师或税务顾问核实你自己的具体情况。
我关于 Polar 和 Stripe 的所有说法均来自它们自己的文档,截至 3 Nov 2026;文中已附链接,方便你再次核对。在依赖任何细节之前,请重新阅读这些文档。
简短答案
当你在线向其他国家的用户销售软件时,其中许多地方都会要求对每笔销售征税(VAT、GST 或美国销售税),即使你从未去过那里。总得有人算出正确的金额,在结账时收取,并将其缴给相应的政府。你有两种处理方式:
- 使用记录商户(merchant of record),例如 Polar。它在纸面上成为卖方,并接手税务工作。
- 自己成为卖方,例如使用 Stripe。这样一来,注册、征收和申报都由你负责,而 Stripe Tax 可以协助完成征收工作。
无论采用哪种方式,你所得收入对应的所得税仍需由你在居住地自行处理。
用通俗话理解记录商户
记录商户是在法律上将产品销售给你的客户的企业。通常,这家企业就是你。采用记录商户时,则是提供商:它向你采购,再转售给客户,因此该笔销售产生的税由它处理,而不是你。
Polar 的记录商户页面正是这样描述自己的:它是你的数字产品的转售商。它表示,自己会承担国际销售税相关责任,已在世界各地注册,会监测销售规模,在需要时于新地区注册,并负责申报和缴税。它也坦诚说明其中的取舍:费用高于普通支付处理商,灵活性较低;而且,由于计入税务的是 Polar 的销售业绩而非你的销售业绩,与你直接销售相比,可能有更多客户被加收税款。同一页面也明确指出,你仍须为自己的所在国所得税负责。
当你直接销售时,你就是记录商户;正如 Polar 的页面所说,每笔销售的税务责任都归你。
何时开始产生影响?
人们希望这里能给出一个单一数字,但并不存在。每个国家以及美国的每个州,都对境外卖方何时必须注册并征税有自己的规定。有些地方只有在你在当地的销售额超过门槛后才会关注。Polar 的页面指出,另一些地方,例如英国和欧盟国家,则要求境外卖方在首次销售之前就完成注册。
Stripe 的 Stripe Tax 如何运作页面用自己的说法表达了同样的意思:有些地方要求你在首次交易前完成注册,另一些地方则设有基于销售笔数或销售规模的门槛。它的支持的国家页面列出了其跟踪的门槛,并附有税务机关网站链接。
我不会列出具体门槛,因为它们会变化,也取决于你的具体情况。如果直接销售,这正是应该向会计师提出的问题:“我需要在哪些地方注册,什么时候注册?”
Polar 会做什么(截至 3 Nov 2026)
- 它是卖方。 它计算、收取并缴纳你的销售税,其收据会列明税款。
- 含税或不含税定价。 含税定价页面提供三种设置。默认的基于位置的设置会为美国、加拿大和印度的客户在价格上另行加税,而在其他所有地区(例如欧盟和英国)将税款包含在价格中。你也可以选择始终含税或始终不含税。Polar 表示,此设置只改变价格的显示方式,不改变应付税款金额。
- 企业客户。 订单页面表示,Polar 会为每个已付款订单生成 PDF 发票,客户可以从客户门户在自己的发票上添加公司名称、VAT 编号或账单地址。
- 退款。 退款页面表示,对应的税款会自动退还:全额退款时退还全部税款,部分退款时按比例退还。
Polar 自己的示例是:每月 $10 的套餐,对瑞典消费者而言,计入 25% VAT 后应为 $12.50;但对已完成 VAT 注册的瑞典企业而言应为 $10,因为该企业自行处理 VAT(即“反向征收”(“reverse charge”))。记录商户会在每笔销售中算出正确结果。
Stripe 会做什么(截至 3 Nov 2026)
在 Stripe 的标准设置中,你是卖方。Stripe Tax是一项附加服务,可提供以下帮助:
- 计算和征收。 它会根据产品和客户所在地,在结账时计算销售税、VAT 和 GST。但 Stripe 的测试页面明确说明,只有在你已经添加税务注册的地区,它才会计算税款。启用它并不会让你在任何地方自动完成注册。- 注册。 注册页面表示,你需要自行确定在哪些地方负有税务义务并完成注册,然后将这些注册信息添加到 Stripe。你也可以让 Stripe 代你注册:对于你作为远程卖方开展业务的相关美国州,可由 Stripe 直接办理注册;对于其他国家,则可通过合作伙伴 Taxually 办理。- 申报。 申报和缴款页面表示,凡是你已完成注册的地方,你都必须申报并缴纳所收取的税款。注册和申报是彼此独立的服务。Stripe 为美国以及爱尔兰和加拿大的某些注册提供自动申报服务,也可与申报合作伙伴协作,或提供报告供你自行申报。全球申报功能标为私有预览版。- 监测门槛。 监测页面表示,Stripe 会按所在地跟踪你的销售业绩,并将其与当地门槛比较,标出你可能需要注册的地方,但仍需由你确认。当你的年度收入达到 10,000 USD 后,才会开始发送门槛提醒邮件。- **含税或不含税定价。
税务行为页面建议选择“Automatic”:以 USD 和 CAD 计价的价格另行加税,其他所有货币计价的价格则包含税款。请注意它与 Polar 的区别:Stripe 依据价格的货币,而非客户所在国家来决定。一旦将价格设为含税或不含税,就无法更改。- 企业客户。** 结账流程可以采集 VAT 和其他企业税务编号。Stripe 会检查编号格式,但确保编号有效仍由你负责。
Stripe Tax 有自己的收费,列于 Stripe 的税务定价页面。
Stripe 现在也提供记录商户选项。 Managed Payments会让 Stripe 成为数字产品的卖方,并在 80 多个国家处理销售税、VAT 和 GST;客户会看到“Sold through Link”。资格页面列出了你的企业可以设在哪些国家(截至本文撰写时,印度不在其中),并且它只能与 Stripe 自己的结账页面和支付链接配合使用。
如果你仍在二者之间选择,我的 Polar 与 Stripe 对比还会介绍费用和回款情况。
你的应用必须做好的事项
无论由谁处理税务,你的定价页面和应用仍由你负责。我会检查:
- 说明是否含税。 定价页上的“$20/month”应与结账时显示的金额一致。如果某些客户需额外加税,应在价格附近注明“plus tax where applicable”。除非你的设置对所有人都如此,否则不要承诺“tax included”。
- 结账总额才是实际金额。 客户若在网站上看到一个价格,却在结账时看到更高金额,即使多出的部分是真实税款,也会觉得自己被骗了。用一组虚构的示例数字来看:在 $20 的套餐上额外加 20% 的税,结账时为 $24;如果显示为含税,则仍为 $20,税款从你的分成中扣除。两种做法都没有错;只需清楚自己选择了哪一种。
- 企业客户需要合规发票。 如果企业向你购买,它们会要求发票上列出公司名称和 VAT 编号。确认可以在哪里添加这些信息。
- 访问权限不应取决于税务。 无论总金额是多少,只要支付提供商确认收到付款(它会向你的应用发送一条付款消息,也就是 webhook),你的应用就应解锁。如果客户已付款却无法访问,我关于客户付款后为何被锁定的指南介绍了常见原因。
可以询问智能体的问题:
- “我们的定价页是否说明了是否含税,并且与结账设置一致?”
- “我们是否采集支付提供商计算税款所需的账单地址?”
- “企业客户能否在结账时或结账后添加 VAT 编号,该编号会显示在哪里?”
要测试什么(在测试模式下,绝不要使用真实银行卡)
使用 Polar 的沙盒或 Stripe 的测试模式。在 Stripe 上,必须先添加至少一个测试注册,否则不会计算税款。
- 分别使用美国地址、一个欧盟国家的地址和一个印度的地址结账。每次都检查税额行和总额。
- 将每个总额与定价页进行比较。如果不一致,请修改文案。
- 使用测试 VAT 编号以企业身份购买(在 Stripe 结账时,如果你已开启税务编号采集;或在 Polar 门户的发票上)。检查税款,并确认编号显示在发票上。
- 下载收据或发票。检查其中是否列明税款和正确的卖方。
- 为测试订单退款。检查税款是否随之退回。
- 检查访问权限在每个国家的解锁方式是否相同。
ShipToPaid 在哪里发挥作用
我开发了 ShipToPaid,让 AI 智能体能在类似你的应用中正确处理支付。先明确它在税务方面能做什么:它不会代你处理税务。其 Stripe 指南明确指出,Stripe 不是记录商户,starter 不会启用自动税,仅采集地址也不会开启 Stripe Tax。它的定价文案 skill 会告诉你的智能体,使税务文案与结账的实际设置保持一致,并且绝不假定价格已含税。在 Polar 方面,Polar 是记录商户。你无需使用其中任何一项来遵循本指南。
还想增加年度方案选项?我的年度套餐指南介绍了如何如实展示该价格。还没决定如何收费?那就从如何为你的 vibe-coded 应用收费开始吧。
译文由上游机器翻译生成,可能有误;判断请以英文原文为准。
英文原文(来源本站未改写)
Your app has its first few paying customers: one in Germany, one in the US, one in India. Then somebody asks for an invoice with their VAT number on it, and you realise you never thought about tax. Did you have to charge it? Who pays it to which government?
I'm Deepak, a developer in Hyderabad. I build side projects with AI agents and spend a lot of my time wiring payments into apps made with Claude Code, Cursor and Codex. This guide explains sales tax and VAT for a small app sold online, in plain words, and what Polar and Stripe actually do about it. No code needed.
This is not tax or legal advice. I'm not an accountant, and tax rules depend on where you live, where your customers are and what you sell. Use this to understand the options, then check your own situation with an accountant or tax adviser.
Everything I say about Polar and Stripe comes from their own docs, as of 3 Nov 2026, linked so you can check again. Re-read them before you rely on a detail.
The short answer
When you sell software online to people in other countries, many of those places expect a tax on each sale (VAT, GST or US sales tax), even if you've never been there. Someone has to work out the right amount, charge it at checkout, and pay it to the right government. You have two ways to handle that:
- Use a merchant of record, like Polar. It becomes the seller on paper and takes that tax job on.
- Be the seller yourself, with Stripe for example. Then registering, collecting and filing are yours, and Stripe Tax can help with the collecting part.
Either way, the income tax on what you earn is still yours to sort out where you live.
Merchant of record, in plain words
A merchant of record is the business that legally sells the product to your customer. Normally that's you. With a merchant of record, it's the provider: it buys from you and resells to the customer, so the tax on that sale is its problem, not yours.
Polar's merchant of record page describes itself exactly that way, as a reseller of your digital product. It says it takes on the liability for international sales taxes, is registered in places around the world, watches sales volumes, registers in new places when it needs to, and handles the filing and payment. It's also open about the trade-offs: fees are higher than a plain payment processor, you get less flexibility, and because Polar's sales count rather than yours, tax may be added for more of your customers than if you sold directly. The same page is clear that you're still responsible for your own income tax in your country.
When you sell directly, you are the merchant of record, and as Polar's page puts it, the tax liabilities of each sale are yours.
When does it start to matter?
People want a single number here, and there isn't one. Each country, and each US state, has its own rules about when a seller from abroad must register and charge tax. Some only care once your sales there pass a threshold. Polar's page notes that others, such as the UK and EU countries, expect sellers from abroad to register before their first sale.
Stripe's how Stripe Tax works page says the same thing in its own words: some places want you registered before your first transaction, others have a threshold based on number of sales or sales volume. Its supported countries page lists the thresholds it tracks, with links to the tax authority websites.
I won't quote thresholds, because they change and depend on your situation. If you sell directly, that's the question for an accountant: "Where do I need to register, and when?"
What Polar does (as of 3 Nov 2026)
- It's the seller. It calculates, collects and pays the tax on your sales, and its receipts list the tax.
- Prices with or without tax. The tax inclusive pricing page gives you three settings.The default, location-based, adds tax on top for customers in the US, Canada and India, and includes it in the price everywhere else (the EU and UK, for example).You can also choose always-inclusive or always-exclusive.
Polar says this setting only changes how the price is shown, not how much tax is owed. - Business customers. The orders page says Polar makes a PDF invoice for every paid order, and customers can add a company name, VAT number or billing address to their own invoice from the customer portal. - Refunds. The refunds page says the matching tax is refunded automatically: all of it on a full refund, a share of it on a partial one.
Polar's own example: a $10 a month plan should cost a consumer in Sweden $12.50 with 25% VAT, but $10 for a Swedish business with a VAT registration, which handles that VAT itself (a "reverse charge"). A merchant of record works that out on every sale.
What Stripe does (as of 3 Nov 2026)
On Stripe's normal setup, you are the seller. Stripe Tax is an add-on that helps:
- Calculating and collecting. It works out sales tax, VAT and GST at checkout based on the product and the customer's location.But Stripe's testing page is clear that it only calculates tax where you've added a registration.Turning it on doesn't make you registered anywhere.
- Registering. The registration page says it's your job to work out where you have tax obligations and register there, then add those registrations to Stripe.
You can also ask Stripe to register for you: directly for US states where you're a remote seller, and through a partner, Taxually, for other countries. - Filing. The file and remit page says you must file and pay the tax you collect everywhere you're registered.Registering and filing are separate services.Stripe offers automated filing in the US and for some registrations in Ireland and Canada, works with filing partners, or gives you reports to file yourself.
Global filing is labelled private preview. - Watching thresholds. The monitoring page says Stripe tracks your sales by location against local thresholds and highlights where you might need to register, but it's up to you to confirm it.Its threshold emails start once you have 10,000 USD in yearly revenue. - Prices with or without tax. The tax behavior page recommends "Automatic": tax added on top for prices in USD and CAD, included for every other currency.Note the difference from Polar: Stripe goes by the price's currency, not the customer's country.
And once you set a price to inclusive or exclusive, you can't change it. - Business customers. Checkout can collect VAT and other business tax IDs.Stripe checks the format, and you're responsible for making sure the number is valid.
Stripe Tax has its own fees, listed on Stripe's tax pricing page.
Stripe now has a merchant of record option too. Managed Payments makes Stripe the seller for digital products and handles sales tax, VAT and GST in more than 80 countries; customers see "Sold through Link". The eligibility page lists which countries your business can be based in (India isn't one as I write this), and it only works with Stripe's own checkout page and payment links.
If you're still choosing between the two, my Polar vs Stripe comparison covers fees and payouts too.
What your app has to get right
Whoever handles the tax, your pricing page and app are yours. I'd check:
- Say whether tax is included. "$20/month" on your pricing page should match what checkout shows.If tax gets added on top for some customers, say "plus tax where applicable" near the price.Don't promise "tax included" unless your setup does that for everyone.
- The checkout total is the real number. A customer who sees one price on your site and a bigger one at checkout feels tricked, even if the extra is real tax.With made-up example numbers: a $20 plan with 20% tax added on top is $24 at checkout.Shown tax-included, it stays $20 and the tax comes out of your share.Neither is wrong;
just know which one you chose. - Business customers need proper invoices. If businesses buy from you, they'll want their company name and VAT number on the invoice.Check where they can add it. - Access shouldn't depend on tax. Your app should unlock when the provider confirms the payment (it sends your app a payment message, a webhook), whatever the total was.If a customer paid but can't get in, my guide on why customers get locked out after paying covers the usual causes.
Things to ask your agent:
- "Does our pricing page say whether tax is included, and does it match how our checkout is set up?"
- "Do we collect the billing address our payment provider needs to work out tax?"
- "Can business customers add a VAT number at checkout or afterwards, and where does it show up?"
What to test (in test mode, never with a real card)
Use Polar's sandbox or Stripe's test mode. On Stripe, add at least one test registration first, or no tax will be calculated.
- Check out with an address in the US, one in an EU country and one in India. Check the tax line and total each time.
- Compare each total with your pricing page. Fix the wording where they don't match.
- Buy as a business with a test VAT number (at Stripe checkout if you turned on tax ID collection, or on the invoice in Polar's portal). Check the tax and that the number shows on the invoice.
- Download the receipt or invoice. Check it lists the tax and the right seller.
- Refund a test order. Check the tax goes back with it.
- Check access unlocks the same way for every country.
Where ShipToPaid fits
I made ShipToPaid so AI agents get payments right in apps like yours. To be clear about what it does on tax: it doesn't handle tax for you. Its Stripe guidance says plainly that Stripe isn't a merchant of record, that the starter doesn't turn on automatic tax, and that collecting an address alone doesn't switch on Stripe Tax. Its pricing copy skill tells your agent to match any tax wording to how your checkout is really set up, and never assume tax is included. On Polar, Polar is the merchant of record. You don't need any of it to follow this guide.
Adding a yearly option too? My guide to yearly plans covers showing that price honestly. Haven't picked how to charge yet? Start with how to charge for your vibe-coded app.
出处https://dev.to/supermax33/sales-tax-and-vat-for-vibe-coded-apps-what-you-actually-have-to-do-52o5
这条还缺什么证据?
下面每条都由本条已有字段推出(等级、理由、商业模式、来源次数、是否演示), 本站不生成推测性结论;通用验证方法放在方法论页。
- 商业模式未定确认按席位/按用量/授权还是开源托管版收费;开源项目另查 LICENSE 与是否存在付费版。
- 只有单一来源找一手站点或其他渠道是否重复出现同一产品;社区热帖数量不等于商业进展。
通用验证清单(谁有这个问题/谁愿意付费/一个人能交付哪一小步)见我们的筛选方法。