[{"data":1,"prerenderedAt":158},["ShallowReactive",2],{"help-article-invoice::en":3,"help-tree-article::en":31},{"model":4,"slug":8,"title":9,"body":10,"i18n":11,"sortOrder":21,"status":22,"category":25,"publishedAt":30,"helpKey":8},{"id":5,"createdAt":6,"updatedAt":7},"1","2026-08-07T10:17:00.584516Z","2026-08-07T10:34:12.486727Z","invoice","About invoices","# About invoices\n\nAn invoice records a sale as a formal document: which products were sold, how much tax was charged, how much the customer paid, and whether stock should move. It ties together products, customers, inventory, fund accounts and tax, and it is where POS retail receipts land once uploaded to the back office.\n\n## 1. Invoice types\n\n- **Standard invoice**: an ordinary sales invoice with positive amounts; stock is decremented line by line when it is issued.\n- **Credit note**: used for returns \u002F reversals. It references the original invoice, has negative amounts, restocks the goods and refunds the customer. It uses its own number series.\n- **Simplified receipt (not yet enabled)**: a consumer-facing POS receipt \u002F simplified invoice. The type is reserved and will be enabled when cash-register fiscalisation is integrated.\n\n> **About the customer**: consumer receipts are usually **anonymous walk-ins** that need no customer; when a customer wants a full invoice, the buyer's tax id \u002F name is entered (a saved customer, or typed inline). A full invoice requires buyer identity at issue; a simplified receipt may be anonymous. Buyer details are **frozen** at issue, so later renames don't affect invoices already issued.\n\n## 2. The five statuses\n\n1. **Draft** — only this status can be edited or deleted.\n2. **Validated** — the official invoice number is allocated, the lines are frozen and can no longer change; if the invoice moves stock, it happens now.\n3. **Partially paid** — the customer has paid part of the amount but not all.\n4. **Paid** — total paid ≥ total due.\n5. **Canceled** — Draft \u002F Validated \u002F Partially paid can all be canceled; canceling returns any stock that was taken and voids any recorded payments.\n\n> A Paid invoice cannot be canceled directly. To reverse it, issue a credit note.\n\n## 3. Where the line tax comes from\n\nA line's tax is **not** worked out on the fly at issue time. Instead the already-computed \"net \u002F tax \u002F gross\" from the product price is **copied and stored**, then multiplied by the quantity. So whenever you look back, the invoice's figures match the original sale exactly; later re-pricing or rate changes never affect an issued invoice.\n\nA product can carry both **VAT** and a **surcharge** (e.g. Spain's RE). Both are charged on the same pre-tax base and added together — VAT is never folded into the surcharge.\n\n## 4. Payments\n\nEach time the customer pays, the system records an inflow on the fund account you choose, raises that account's balance, and links the payment to the invoice. The invoice's \"paid\" amount accrues, and the status moves to \"Partially paid\" or \"Paid\" accordingly.\n\n- **Multiple payments**: you can collect in several instalments; they add up.\n- **Overpayment** (change \u002F prepayment): allowed; the status becomes \"Paid\".\n- **Voiding a payment**: handled by a fund red-reversal (a reversing transaction); the payment on the invoice is marked voided and the \"paid\" amount rolls back.\n\n## 5. POS receipt upload\n\nAfter a POS sale is finalised in-store (possibly offline), sales are uploaded to the back office **asynchronously and in batches**, and the server creates the invoice, records the payments and decrements stock.\n\n- **No duplicates**: each receipt carries a unique key; re-uploading the same one simply returns the previous result, without decrementing stock or recording a payment twice.\n- **Stock moves on upload**: because the upload is the only channel and it is asynchronous, stock is decremented when the upload arrives. If stock has already been sold to 0 by another channel by then, it can go **negative** — the sale physically happened and can't be refused. Negative stock is the \"oversold\" signal for the back office to reconcile.\n- **Amounts kept as-is**: each line uses the price and tax snapshot stored on the device; the server keeps it verbatim and does not recompute.\n\n## 6. Invoice numbering\n\nInvoice numbers carry legal and tax meaning: within a series they must be **sequential, gapless and unique**.\n\n- The system uses a **configurable number series** that can number per store (e.g. `FA-S01-2026-000123`).\n- Credit notes use a **separate** series.\n- The number is allocated at the moment of issue; drafts use a temporary ref (e.g. `PINV*****`) beforehand.\n- Whether to reset yearly, and the number format, are configurable per store.\n\n> Different countries have their own mandatory e-invoicing systems (Spain's VeriFactu, Italy's SdI, Poland's KSeF, etc.). The system already reserves the matching fields so these can be adopted per country later, without changing invoices that have already been issued.\n",[12,18],{"lang":13,"data":14},"ZH",{"body":15,"description":16,"name":17},"# 发票说明\n\n「发票」把一次销售记成一张正式单据：卖了哪些商品、收了多少税、客户付了多少钱、要不要扣库存。它把产品、客户、库存、资金账号和税串在一起，也是 POS 零售小票上传到后台后落地的地方。\n\n## 一、发票的几种类型\n\n- **标准发票**：正常的销售发票，金额为正，开票时按明细扣库存。\n- **红字发票**：用于退货 \u002F 冲销，会引用原来的那张发票，金额为负，库存退回、并向客户退款。它有自己独立的一套编号。\n- **简化小票（暂未开放）**：面向消费者的 POS 小票 \u002F 简化发票。系统已预留这个类型，等接入收银机财税化时再开放。\n\n> **关于客户**：面向消费者的小票通常是**匿名散客**，不需要挂客户；客户要开完整发票时再填买方税号 \u002F 抬头（可以是已建档客户，也可以临时手填）。完整发票开票时必须有买方身份，简化小票可匿名。买方信息在开票时**冻结**，日后客户改名 \u002F 改号不影响已开出的发票。\n\n## 二、发票的五个状态\n\n1. **草稿**：只有这个状态可以修改和删除。\n2. **已开票**：分配正式发票号、冻结明细、不能再改；如果会扣库存，就在此时扣。\n3. **部分付款**：客户付了一部分款，但还没付清。\n4. **已付清**：累计已付 ≥ 应收总额。\n5. **已取消**：草稿 \u002F 已开票 \u002F 部分付款都可以取消；取消会退回已扣的库存、并作废已记的付款。\n\n> 已付清的发票不能直接取消。如果要冲销，请开一张红字发票。\n\n## 三、明细里的税怎么来的\n\n每行的税**不是开票时临时算的**，而是把商品价格里早就算好的「不含税价 \u002F 税额 \u002F 含税价」抄一份存下来，再乘以数量。这样以后无论什么时候回看，这张发票的金额都和当初成交时一模一样；之后商品改价或改税率，都不会影响已经开出的发票。\n\n一件商品可以同时含**增值税**和**附加税**（例如西班牙的 RE）。两种税都按同一个不含税价分别计算后相加，不会把增值税叠进附加税里。\n\n## 四、收款\n\n客户每付一笔款，系统会在你选的资金账号上记一条收入流水，账号余额随之增加，并把这笔款链接到发票上。发票的「已付」金额随之累加，状态也据此变成「部分付款」或「已付清」。\n\n- **多笔付款**：可以分多次收款，累加计算。\n- **超额付款**（找零 \u002F 预收）：允许，状态会变「已付清」。\n- **作废一笔款**：通过资金「红冲」处理（生成一条反向流水），发票上的这笔付款标记为已作废，「已付」金额相应回退。\n\n## 五、POS 小票上传\n\n门店 POS 收银（可能在离线状态）完成后，会把成交**异步、批量**上传到后台，后台据此生成发票、记收款、扣库存。\n\n- **不会重复**：每张小票带一个唯一标识，重复上传同一张时，系统直接返回上次的结果，不会重复扣库存或重复记账。\n- **库存在上传时才扣**：因为后台只有「上传」这一条通道，且是异步的，所以库存是在收到上传时才扣减。如果那时库存已经被别的渠道卖到 0，会出现**负库存**——因为这笔销售已经真实发生、不能拒绝。负库存就是「卖超了」的信号，提醒后台去盘点纠正。\n- **金额照搬不重算**：每行的价格和税额用设备上保存的快照，后台原样保存，不再重算。\n\n## 六、发票编号\n\n发票号有法律和税务意义，必须在同一套序列里**连续、不跳号、唯一**。\n\n- 系统用**可配置的编号序列**，可以按门店分别编号（例如 `FA-S01-2026-000123`）。\n- 红字发票使用**独立**的一套编号。\n- 编号在「开票」那一刻分配；草稿阶段先用一个临时号（如 `PINV*****`）。\n- 是否按年重置、编号格式等都可以按门店配置。\n\n> 不同国家对电子发票有各自的强制要求（西班牙 VeriFactu、意大利 SdI、波兰 KSeF 等）。系统已预留好相应的字段，后续按国家接入，无需改动已开出的发票。\n","","发票说明",{"lang":19,"data":20},"EN",{"body":10,"description":16,"name":9},10,{"value":23,"label":24},"HELP_STATUS_PUBLISHED","Published",{"model":26,"slug":27,"name":28,"status":29},{"id":5,"createdAt":6,"updatedAt":6},"getting-started","Getting started",{"value":23,"label":24},"2026-08-07T10:17:00Z",{"rows":32},[33,55],{"category":34,"articles":37},{"model":35,"slug":27,"name":28,"status":36},{"id":5,"createdAt":6,"updatedAt":6},{"value":23,"label":24},[38,44],{"model":39,"slug":8,"title":9,"sortOrder":21,"status":40,"category":41,"publishedAt":30,"helpKey":8},{"id":5,"createdAt":6,"updatedAt":7},{"value":23,"label":24},{"model":42,"slug":27,"name":28,"status":43},{"id":5,"createdAt":6,"updatedAt":6},{"value":23,"label":24},{"model":45,"slug":48,"title":49,"sortOrder":50,"status":51,"category":52,"publishedAt":30,"helpKey":48},{"id":46,"createdAt":6,"updatedAt":47},"2","2026-08-07T10:34:20.336877Z","tax-category","Tax Rules (Tax Categories)",20,{"value":23,"label":24},{"model":53,"slug":27,"name":28,"status":54},{"id":5,"createdAt":6,"updatedAt":6},{"value":23,"label":24},{"category":56,"articles":64},{"model":57,"slug":60,"name":61,"description":62,"sortOrder":50,"status":63},{"id":46,"createdAt":58,"updatedAt":59},"2026-08-08T01:49:44.695458Z","2026-08-08T07:32:34.167715Z","product","产品管理","产品从建档、编辑、上架到删除的完整流程。",{"value":23,"label":24},[65,78,90,104,117,130,144],{"model":66,"slug":70,"title":71,"summary":72,"sortOrder":21,"status":73,"category":74,"publishedAt":77,"helpKey":70},{"id":67,"createdAt":68,"updatedAt":69},"3","2026-08-08T01:49:44.762143Z","2026-08-08T07:32:34.258258Z","product-getting-started","产品管理：开始之前","产品菜单在哪、需要什么权限、为什么有些菜单看不见，以及「标签」和「分类」的区别。",{"value":23,"label":24},{"model":75,"slug":60,"name":61,"description":62,"sortOrder":50,"status":76},{"id":46,"createdAt":58,"updatedAt":59},{"value":23,"label":24},"2026-08-08T01:49:44Z",{"model":79,"slug":83,"title":84,"summary":85,"sortOrder":50,"status":86,"category":87,"publishedAt":77,"helpKey":83},{"id":80,"createdAt":81,"updatedAt":82},"4","2026-08-08T01:49:44.866040Z","2026-08-08T07:32:34.341169Z","product-create","创建产品","从哪里进新增表单、三个必填字段、图片和规格怎么填、价格怎么一起录。",{"value":23,"label":24},{"model":88,"slug":60,"name":61,"description":62,"sortOrder":50,"status":89},{"id":46,"createdAt":58,"updatedAt":59},{"value":23,"label":24},{"model":91,"slug":95,"title":96,"summary":97,"sortOrder":98,"status":99,"category":100,"publishedAt":103,"helpKey":95},{"id":92,"createdAt":93,"updatedAt":94},"8","2026-08-08T03:43:01.409541Z","2026-08-08T07:32:34.411367Z","product-import","批量导入产品","用 Excel \u002F CSV 一次建好或改好很多条产品：下载模板、填写、上传、核对映射、看结果。",25,{"value":23,"label":24},{"model":101,"slug":60,"name":61,"description":62,"sortOrder":50,"status":102},{"id":46,"createdAt":58,"updatedAt":59},{"value":23,"label":24},"2026-08-08T03:43:01Z",{"model":105,"slug":109,"title":110,"summary":111,"sortOrder":112,"status":113,"category":114,"publishedAt":77,"helpKey":109},{"id":106,"createdAt":107,"updatedAt":108},"5","2026-08-08T01:49:44.929105Z","2026-08-08T07:32:34.499211Z","product-edit","编辑产品","编辑入口在详情页而不是列表页；哪些内容在表单里改，哪些在详情页的标签里单独改。",30,{"value":23,"label":24},{"model":115,"slug":60,"name":61,"description":62,"sortOrder":50,"status":116},{"id":46,"createdAt":58,"updatedAt":59},{"value":23,"label":24},{"model":118,"slug":122,"title":123,"summary":124,"sortOrder":125,"status":126,"category":127,"publishedAt":77,"helpKey":122},{"id":119,"createdAt":120,"updatedAt":121},"6","2026-08-08T01:49:44.989085Z","2026-08-08T07:32:34.572203Z","product-listing","产品上架与下架","四种产品状态之间怎么流转、在哪操作、批量怎么做，以及「对外展示」和「已上架」的区别。",40,{"value":23,"label":24},{"model":128,"slug":60,"name":61,"description":62,"sortOrder":50,"status":129},{"id":46,"createdAt":58,"updatedAt":59},{"value":23,"label":24},{"model":131,"slug":135,"title":136,"summary":137,"sortOrder":138,"status":139,"category":140,"publishedAt":143,"helpKey":135},{"id":132,"createdAt":133,"updatedAt":134},"7","2026-08-08T01:49:45.070866Z","2026-08-08T07:32:34.647248Z","product-delete","删除产品","删除只在列表页勾选后操作、不可撤销；被单据引用的产品删不掉，该用归档。",50,{"value":23,"label":24},{"model":141,"slug":60,"name":61,"description":62,"sortOrder":50,"status":142},{"id":46,"createdAt":58,"updatedAt":59},{"value":23,"label":24},"2026-08-08T01:49:45Z",{"model":145,"slug":149,"title":150,"summary":151,"sortOrder":152,"status":153,"category":154,"publishedAt":157,"helpKey":149},{"id":146,"createdAt":147,"updatedAt":148},"9","2026-08-08T07:30:08.544768Z","2026-08-08T07:32:34.720477Z","product-app","用手机 App 管理产品","在手机 App 上查看、新建、修改产品，以及上架下架、批量操作和删除。",60,{"value":23,"label":24},{"model":155,"slug":60,"name":61,"description":62,"sortOrder":50,"status":156},{"id":46,"createdAt":58,"updatedAt":59},{"value":23,"label":24},"2026-08-08T07:30:08Z",1786175923009]