发票说明
更新于 2026年8月7日
「发票」把一次销售记成一张正式单据:卖了哪些商品、收了多少税、客户付了多少钱、要不要扣库存。它把产品、客户、库存、资金账号和税串在一起,也是 POS 零售小票上传到后台后落地的地方。
一、发票的几种类型
- 标准发票:正常的销售发票,金额为正,开票时按明细扣库存。
- 红字发票:用于退货 / 冲销,会引用原来的那张发票,金额为负,库存退回、并向客户退款。它有自己独立的一套编号。
- 简化小票(暂未开放):面向消费者的 POS 小票 / 简化发票。系统已预留这个类型,等接入收银机财税化时再开放。
关于客户:面向消费者的小票通常是匿名散客,不需要挂客户;客户要开完整发票时再填买方税号 / 抬头(可以是已建档客户,也可以临时手填)。完整发票开票时必须有买方身份,简化小票可匿名。买方信息在开票时冻结,日后客户改名 / 改号不影响已开出的发票。
二、发票的五个状态
- 草稿:只有这个状态可以修改和删除。
- 已开票:分配正式发票号、冻结明细、不能再改;如果会扣库存,就在此时扣。
- 部分付款:客户付了一部分款,但还没付清。
- 已付清:累计已付 ≥ 应收总额。
- 已取消:草稿 / 已开票 / 部分付款都可以取消;取消会退回已扣的库存、并作废已记的付款。
已付清的发票不能直接取消。如果要冲销,请开一张红字发票。
三、明细里的税怎么来的
每行的税不是开票时临时算的,而是把商品价格里早就算好的「不含税价 / 税额 / 含税价」抄一份存下来,再乘以数量。这样以后无论什么时候回看,这张发票的金额都和当初成交时一模一样;之后商品改价或改税率,都不会影响已经开出的发票。
一件商品可以同时含增值税和附加税(例如西班牙的 RE)。两种税都按同一个不含税价分别计算后相加,不会把增值税叠进附加税里。
四、收款
客户每付一笔款,系统会在你选的资金账号上记一条收入流水,账号余额随之增加,并把这笔款链接到发票上。发票的「已付」金额随之累加,状态也据此变成「部分付款」或「已付清」。
- 多笔付款:可以分多次收款,累加计算。
- 超额付款(找零 / 预收):允许,状态会变「已付清」。
- 作废一笔款:通过资金「红冲」处理(生成一条反向流水),发票上的这笔付款标记为已作废,「已付」金额相应回退。
五、POS 小票上传
门店 POS 收银(可能在离线状态)完成后,会把成交异步、批量上传到后台,后台据此生成发票、记收款、扣库存。
- 不会重复:每张小票带一个唯一标识,重复上传同一张时,系统直接返回上次的结果,不会重复扣库存或重复记账。
- 库存在上传时才扣:因为后台只有「上传」这一条通道,且是异步的,所以库存是在收到上传时才扣减。如果那时库存已经被别的渠道卖到 0,会出现负库存——因为这笔销售已经真实发生、不能拒绝。负库存就是「卖超了」的信号,提醒后台去盘点纠正。
- 金额照搬不重算:每行的价格和税额用设备上保存的快照,后台原样保存,不再重算。
六、发票编号
发票号有法律和税务意义,必须在同一套序列里连续、不跳号、唯一。
- 系统用可配置的编号序列,可以按门店分别编号(例如
FA-S01-2026-000123)。 - 红字发票使用独立的一套编号。
- 编号在「开票」那一刻分配;草稿阶段先用一个临时号(如
PINV*****)。 - 是否按年重置、编号格式等都可以按门店配置。
不同国家对电子发票有各自的强制要求(西班牙 VeriFactu、意大利 SdI、波兰 KSeF 等)。系统已预留好相应的字段,后续按国家接入,无需改动已开出的发票。