国家/地区预设、税收字段和含税定价
国家/地区下拉列表实际发生了什么变化、企业和税务登记字段的用途、该工具如何应用您设置的费率,以及为什么含税定价的计算方式不同。
国家/地区下拉列表改变了什么,没有改变什么
选择国家/地区会设置四项内容:文档起始货币、消费税名称(“GST”、“增值税”、“IVA”、“妈妈”、“消费税”)、建议起始税率以及两个可选标识符字段的名称。这就是全部内容。
它不会改变算术。每个国家都使用相同的运算顺序和相同的精确整数数学,因为这部分是算术而不是法律。它不会决定您是否必须征税,它不会提交任何文件,并且不会根据任何寄存器验证标识符。
货币和国家是有意分开的选择。在国内保持注册的情况下,以国外客户的货币向客户开具发票是常见的自由职业做法,因此更改国家/地区会设置合理的默认货币,然后将货币下拉列表留给您单独覆盖。
该工具永远不会为您选择税率
费率框以所选国家/地区的建议值开始,在您勾选该框并确认该值适合您的文档之前,该值不会执行任何操作。在此之前没有应用任何内容。更改费率并重置确认,因为您确认的号码不是您现在拥有的号码。更改国家/地区,确认也会重置:您为一个司法管辖区确认的费率与另一个司法管辖区无关。
这样的设计是经过深思熟虑的。税率会发生变化,并且它们会在政府设定的日期而不是软件版本中发生变化。对费率进行硬编码的工具在费率发生变化后很长时间内仍会生成可靠的错误发票。此工具中的每个建议税率都是您所在国家/地区税务机关验证的起点,该税率在税率字段下的帮助文本中指定。
列表中的两个条目根本没有预先填充任何内容。美国没有统一的全国税率——销售税由州和地方制定,许多专业服务无需纳税。香港不征收一般消费税,因此大多数自由发票都没有税线。将这些留空比发明一个数字更诚实。
您是否应该征税与税率是一个单独的问题,这取决于您自己的注册状态。该工具无法知道,也不会猜测任何国家的情况。
两个标识符字段
每个国家/地区的标识符命名方式都不同,因此该工具会重命名字段,而不是向您显示其他人的字段。第一个是注册实体标识符:新加坡的 UEN、澳大利亚的 ABN、美国的 EIN、法国的 SIRET、荷兰的 KVK 号码、巴西的 CNPJ、英国的公司号码。
第二个是税务登记标识符,它是不同的东西:仅当实体注册了该税收时才存在增值税或商品及服务税登记号。将其放在文件上即表示您已注册。
在每个国家/地区,这两个字段都是可选的并且默认为空白,正是因为许多自由职业者合法地两者都没有。如果您不确定哪一种适用于您,那么这是您的税务机关或会计师的问题,而不是发票生成器的问题。
这里的税是如何计算的
税款适用于贴现小计,而不是原始小计。完整的顺序是:每行总计,然后每行折扣,然后小计,然后发票级别折扣,然后对剩余部分征税,然后是最终总计。
这种排序不是一种风格选择。折扣前征税会夸大税额,而且客户自己的计算结果与您的计算结果不符——这正是导致发票被查询而不是被支付的那种差异。
如果某些行不需要缴税(例如,您按成本充值的支出),则取消选中该行上的“需缴税”。然后,发票级别的折扣按照其价值的比例在您的行中分配,因此应税基数公平地反映了折扣。这种分割是用整个小单位完成的,并且总是精确地加回折扣;没有一分钱被发明或丢失。
每份文件适用一种费率。如果一个国家/地区在文书工作中将单一税分为几行(例如,印度的 CGST 和 SGST,或者美国的州和城市销售税),则此工具会显示一条合并行,这可能与您的当局期望的布局不符。
不含税和含税不是同一个金额
不含税意味着您的价格为税前价格,并且税费是加在上面的。如果应税基数为 100.00,税率为 9%,则税费为 9.00,总额为 109.00。
含税意味着您的价格已经包含税费,并且必须提取而不是添加税费。含税 109.00 内的税金为 9%,为 9.00 — 总额仍为 109.00。
令人困惑的算术是提取。含税金额内的税额为毛x税率/(100+税率),而不是毛x税率/100。对含税 109.00 使用第二个公式得出 9.81,这会多报 81 美分的税款,并使页面上的数字停止相加。该工具使用第一个公式,并且有一个单元测试准确地断言了该差异。
两者中哪一个是正常的取决于您所在的位置以及您的账单对象。在欧洲和亚太地区的大部分地区,面向消费者的价格通常都是包含在内的;企业对企业的发票通常是排他性的。该工具遵循勾选框,而不是对您的市场的猜测。
为什么总计以整数小单位计算
计算机大约存储大部分小数。经典的演示是,在普通浮点算术中 0.1 + 0.2 不等于 0.3,并且将 1.005 乘以 100 得到 100.49999999999999 而不是 100.5 — 因此,将价格四舍五入到美分的“明显”方式会默默地将其向下舍入。
该工具中的每个金额都以整数小单位保存——美元和欧元货币为美分,没有子单位的货币为整日元、韩元或越南盾——并且每个中间乘法和除法都是以精确的整数算术完成的。使用从零舍入一半的商业惯例,在定义的点进行一次舍入。
实际效果:一张一百行发票加起来与客户使用计算器检查时得到的数字相同,并且切换国家或货币永远不会影响您已经输入的数字。
发送前要检查什么
当某些事情需要您注意时,该工具会在文档上方显示警告 - 未经确认的税率、必须限制在行总额内的折扣或无法读取为数字的数量。这些都不会阻止您导出,因为这是您的文档;它们就在那里,所以在它消失后,你不会感到惊讶。
- 检查国家/地区下拉列表显示您开具发票的国家/地区,而不是您的客户所在的国家/地区。
- 确认税率是当前税率,来自权威机构而不是记忆。
- 当且仅当您的价格已含税时,请检查是否勾选了“含税”。
- 检查您标记为无需纳税的任何行是否确实超出范围。
- 读取总计块:小计、折扣、计税基数、税金、总计。
- 导出 JSON 和 PDF,以便您稍后可以重新打开和修改文档。
问题
为什么该工具不自动使用我所在国家/地区的当前汇率?
因为它无法知道其附带的费率是否仍然是最新的,并且过时的硬编码费率肯定会产生错误的发票。费率由您设置和确认,更改费率或国家/地区会清除确认,因此这始终是一种故意行为。
我的国家不在下拉列表中。我还能用这个吗?
是的。选择“其他/未列出”:它使用中性标签并且不预先填写任何税率,并且每个字段(税标签、税率、两个标识符、付款参考)都是自由文本,您可以将其设置为您所在国家/地区使用的任何文本。
我没有注册增值税或商品及服务税。我应该如何处理这些字段?
将税务登记号留空,并关闭“对此文件收取税款”。这是每个国家/地区新文档的默认状态。您是否需要注册是您的税务机关或会计师的问题。
它可以生成支付二维码——PayNow、PromptPay、UPI、Pix吗?
不,每个国家都是故意的。这些有效负载是银行指定的格式,稍有缺陷的有效负载可能会将付款发送到错误的地方。付款参考字段是纯文本——您输入的数字、ID 或 IBAN——因此客户可以自行发起转账。
该工具与我的会计软件是否不同?
它从零(通常的商业惯例)四舍五入,并且在行级别上四舍五入,并再次在税收上四舍五入。有些系统仅在最后使用银行四舍五入或四舍五入,这在某些文档上可能会相差一分钱。如果您这样做,请先检查样本文档,然后再确信两者完全一致。
局限性
- 此页面上的任何内容均不是税务建议,并且此工具中任何地方显示的任何税率均不应被视为当前税率或适用于您。
- 国家预设更改标签、默认货币和建议汇率。它们不编码任何税收规则,也不验证任何标识符。
- 该工具无法确定您的注册状态、供应地点或交易是否为零税率、豁免或超出范围。
- 反向收费、部分豁免、保证金计划、预扣税和保留额度以及跨境增值税/商品及服务税规则均未建模。
- 每份文件仅适用一种税率。不支持混合多种税率的文档,或要求跨不同行进行税收分割的司法管辖区。
- 特定国家/地区的强制性格式(电子发票模式、清关或财政化要求、规定的编号规则)并未实施。输出是纯 PDF。
- 不执行货币换算。文件以您选择的单一货币计价。