# 什么是发票号码？格式、示例和编号规则

> 发票号码是用于追踪每张发票的唯一 ID，服务于会计和税务处理。了解发票号码格式、示例、连续编号规则以及错误修正方法。
- **Author**: Deepak Jangir
- **Published**: 2026-09-30
- **Category**: Billing, Finance
- **URL**: https://dodopayments.com/blogs/zh/invoice-number

---

发票号码是企业为其开具的每张发票分配的唯一标识符，用于在会计处理、收款和税务审计过程中追踪该发票。同一卖方开具的任意两张发票都不应使用相同的发票号码，而且在大多数税务体系中，发票号码必须按顺序排列。

发票号码将你的分类账、银行存款、客户的应付账款系统和税务申报关联起来。编号不规范时，对账会中断，审计也会变得更加困难。

本指南将介绍发票号码是什么、最常见的发票号码格式及示例、连续编号规则、出错时该怎么做，以及 SaaS 企业通过自动续订每月开具数千张发票时如何进行编号。

## 什么是发票号码，为什么它很重要

你可以把发票号码看作账单记录的主键。其他字段可能在不同单据中重复，但发票号码不能重复。

这种唯一性在以下五个方面发挥着实际作用。

- **审计追踪。** 税务机关和审计人员会检查发票编号序列是否完整。清晰连续的编号序列表明每笔销售都已记录，没有发票被悄悄删除。
- **税务合规。** 许多 VAT 和 GST 制度要求唯一且连续的号码作为发票的必填字段。没有发票号码的单据可能不被视为有效税务发票，从而导致客户无法抵扣进项税。
- **对账。** 当款项进入银行账户时，汇款附言中的发票号码可以帮助你将现金与未收应收款匹配。我们的 [SaaS 付款对账指南](https://dodopayments.com/blogs/payment-reconciliation-saas) 深入介绍了这一匹配流程。
- **争议处理。** 当客户对一笔收费提出疑问时，"发票 2026-0412"可以用一句话解决问题。"三月份某个时候的发票"则无法做到这一点。
- **应收账款。** 账龄报告、催收邮件和付款提醒都会引用发票号码。结构完善的 [应收账款流程](https://dodopayments.com/blogs/accounts-receivable-saas-guide) 依赖于每个未结项目都有清晰的标识符。

买家会利用发票号码在付款前检查是否存在重复发票，因此重复的号码可能导致合法发票被拒付，或被支付两次。

## 发票号码格式：常见编号方案

没有单一的强制性发票号码格式。大多数司法管辖区关注的是号码是否唯一且连续，而不是号码的具体形式。因此，你可以在号码中编码年份、客户或企业实体等有用信息。

以下是最常见的六种方案，以及每种方案的发票号码示例。

| 方案                     | 发票号码示例               | 优点                               | 缺点                                             |
| ------------------------ | -------------------------- | ---------------------------------- | ------------------------------------------------ |
| 简单连续编号             | 0001、0002、0003           | 最容易实施，缺号一目了然           | 会暴露发票总量，号码本身没有上下文信息           |
| 年份前缀                 | 2026-0001、2026-0002       | 按年份排序方便，在欧盟很常见       | 需要规定计数器是否每年重置                       |
| 客户编码                 | ACME-0001、ACME-0002       | 一眼即可看出发票属于谁             | 仍需要全局序列，否则不同客户之间可能出现号码冲突 |
| 项目编码                 | PRJ104-001、PRJ104-002     | 适合按项目计费的代理机构和服务企业 | 更难证明存在一条完整的编号序列                   |
| 日期编码                 | 20260930-01、20260930-02   | 包含日期，易于阅读                 | 编号较长，日期后的序号仍需要计数器               |
| 按实体或品牌划分的多序列 | US-2026-0001、EU-2026-0001 | 可区分法律实体、品牌或单据类型     | 需要跟踪和保持连续的序列更多                     |

选择方案时，还需注意以下几点。

**为号码补齐位数。** 使用固定长度，例如 0001 或 000001，这样发票在电子表格和文件系统中才能正确排序。没有补齐位数时，发票 10 会排在发票 2 之前。

**年份前缀和重置。** 如果使用类似 2026-0001 的年份前缀格式，请提前决定计数器是否在每年 1 月重置为 0001。这两种方式都很常见。即使计数器重置，年份前缀也能确保完整号码保持唯一，因此这种格式在欧洲企业中很受欢迎。

**让序列成为事实来源。** 客户代码和项目代码是有用的标签，但应与连续计数器并列使用，而不是取代计数器。ACME-2026-0147 之所以有效，是因为 0147 仍然属于一条统一的连续序列。

## 连续发票编号规则

无论选择哪种格式，几乎所有地区都适用以下几条规则。

### 每个号码都必须唯一

同一序列中的两张发票绝不能使用相同的号码。这是一条没有例外的规则。如果你运行多个序列（例如每个法律实体一个序列），前缀可以确保不同序列之间的号码保持唯一。

### 号码应当连续

大多数税务制度要求发票号码遵循连续序列。在欧盟，VAT 指令（第 226 条）要求使用基于一个或多个序列的连续号码，以唯一标识发票。"一个或多个序列"这一表述很重要：这意味着欧盟企业可以按分支机构或单据类型等维度运行不同序列，只要每个序列本身连续，并且每个号码都保持唯一。

英国也遵循类似原则。VAT 发票需要有唯一的发票号码，并且应当接续前一个号码。各个国家还会在此基础上叠加自己的具体要求，因此如果你在多个市场开具发票，请查阅每个国家的具体规定，或使用能够代为处理这些要求的服务商。

### 发票号码可以跳过吗？

简而言之，应当避免跳号。审计人员正是会重点关注序列中的缺口，因为缺失的号码可能意味着某张发票已被开具，随后又被删除以隐瞒收入。在连续编号规则严格的司法管辖区，无法解释的缺号可能会在税务审计期间引发询问。

出于无意的原因，有时确实会出现缺号，例如开具过程中系统崩溃，或草稿占用了一个号码。如果发生这种情况，请做好记录：记录跳过了哪个号码、何时发生以及原因是什么。有记录的缺号属于行政备注；无法解释的缺号则是危险信号。

### 绝不要重复使用号码

发票号码一旦签发，就永久属于该发票，即使发票后来被取消。重复使用已作废的号码会破坏审计追踪，也可能让客户的应付账款团队感到困惑，因为他们可能已经记录了原始发票。

### 贷项通知单应使用独立序列

当你减少或冲销一张发票时，应开具贷项通知单（也称贷项备忘录），而不是修改原始发票。贷项通知单应使用自己的编号序列，例如 CN-2026-0001，并引用其所更正的发票号码。我们的 [贷项备忘录指南](https://dodopayments.com/blogs/credit-memo) 介绍了何时应开具贷项备忘录，以及它与退款有何不同。

## 发票号码应放在哪里，以及发票还应包含哪些内容

请将发票号码放在单据顶部附近，紧邻开具日期，因为客户付款时会引用这个号码。

发票号码只是必填字段之一。合规发票通常还包括：

- 发票号码（唯一且连续）
- 开具日期，以及与之不同的供应日期
- 卖方的法定名称、地址和税务登记号
- 买方名称和地址；在要求提供的 B2B 销售中，还应包括买方税号
- 商品或服务的描述和数量
- 单价、未税金额、税率和税额
- 应付总额和币种
- 付款条款和到期日
- 任何必要的法律声明，例如反向征税声明

跨境 B2B 销售中的税号需要特别关注。我们的 [VAT 号码是什么](https://dodopayments.com/blogs/what-is-a-vat-number) 说明介绍了税号格式和验证方式，[反向征收 VAT 指南](https://dodopayments.com/blogs/reverse-charge-vat) 则解释了何时由买方而非卖方承担税务申报义务。

并非所有带有号码的单据都是发票。形式发票是在销售最终确定之前发送的预览文件，应明确标注为形式发票，通常也不应占用正式编号序列中的号码。请参阅 [形式发票与发票的区别](https://dodopayments.com/blogs/proforma-invoice-vs-invoice) 了解完整对比。同样，收据是在付款完成后确认收款的凭证，具体区别请见 [发票与收据的区别](https://dodopayments.com/blogs/invoice-vs-receipt)。

## 发票号码与采购订单号及其他参考编号的区别

发票通常包含多个参考编号，混淆这些编号是造成付款延迟的常见原因。以下是发票号码与其他编号的区别。

| 参考编号         | 创建者           | 标识的对象                           | 出现时间                     |
| ---------------- | ---------------- | ------------------------------------ | ---------------------------- |
| 发票号码         | 卖方             | 一项具体的付款请求                   | 销售或计费时，出现在发票上   |
| 采购订单（PO）号 | 买方             | 买方内部的采购审批                   | 销售前发送，随后引用在发票上 |
| 收据号码         | 卖方             | 已收到付款的确认                     | 付款后                       |
| 订单 ID          | 卖方的商店或系统 | 一笔客户订单，可能产生一张或多张发票 | 结账时                       |
| 付款或交易 ID    | 支付处理商       | 一笔单独的资金流动                   | 处理收费时                   |

发票号码与采购订单号的关键区别在于：PO 来自买方，代表买方获准支出的权限；而发票号码来自你，代表你要求获得付款。许多企业客户不会支付未引用其 PO 号的发票，因此只要买方提供了 PO 号，就应将其作为单独字段加入。绝不要用对方的 PO 号替代你的发票号码，因为一张 PO 可能涵盖多张发票。

## 如何处理发票错误而不破坏编号序列

错误难以避免：金额错误、缺少税号、地址错误等。发票一旦签发，就不要再编辑或删除。保留原发票，并开具更正单据。

```mermaid
flowchart LR
    A["Invoice 2026-0147 issued"] --> B["Error found"]
    B --> C["Issue credit note CN-2026-0012 referencing 2026-0147"]
    C --> D["Issue corrected invoice 2026-0148"]
    D --> E["Books and tax records stay complete"]
```

标准流程如下：

1. **保留原始发票。** 在系统中将其标记为已取消或已作废，但不要删除。该号码仍视为已使用。
2. **开具贷项通知单**，引用原始发票号码，并冲销全部金额（或错误部分的金额）。
3. **开具新发票**，使用序列中的下一个号码，并填写正确的信息。
4. **告知客户**应支付哪张发票，同时引用两个号码，以便客户的应付账款团队完成匹配。

示例：你开具了发票 2026-0147，金额为 1,200 美元，但正确金额应为 1,000 美元。你可以针对 2026-0147 开具金额为 1,200 美元的贷项通知单 CN-2026-0012，然后开具金额为 1,000 美元的新发票 2026-0148。或者，针对 2026-0147 开具金额为 200 美元的部分贷项通知单，也能达到相同的净结果，并少生成一份单据。无论采用哪种方式，都能保持编号序列完整，并清晰记录事情经过。

唯一的例外是从未发送或记录的草稿，这也是许多系统只在最终确认时才分配正式号码的原因。

## 如何在 SaaS 计费中自动为发票编号

手动为每月开具十张发票的自由职业者编号或许可行，但对于每次订阅续订都会生成新发票的 SaaS 公司来说，这种方式很快就会失效。一款拥有 5,000 名月度订阅者的产品，每月大约会生成 5,000 张续订发票，还不包括升级、一次性购买和附加项目。

在这种规模下，如何为发票编号不再是电子表格问题，而是系统问题：

- **号码必须以原子方式分配。** 如果两次续订同时处理，系统绝不能将同一个号码分配给两者。电子表格和简单的数据库计数器在这里都会失效。
- **每笔成功付款都需要自己的发票。** 每月续订、按比例计费的升级和用量收费都应生成独立单据，并拥有自己的号码。
- **退款需要关联单据。** 每笔退款都应生成自己的贷项单据，并指向原始发票。
- **号码必须与付款 ID 建立映射。** 财务团队需要能够从银行存款找到付款，再找到发票，而不必手动查询。

这就是大多数 SaaS 团队会尽早转向 [自动开具发票](https://dodopayments.com/blogs/automated-invoices-saas) 的原因：让计费系统分配号码并保持序列完整。如果你面向国际市场销售，越来越多国家实施的 [电子发票强制要求](https://dodopayments.com/blogs/e-invoicing-compliance-global-saas) 还会在编号规则之外增加结构化数据要求。

## Dodo Payments 如何自动生成发票

Dodo Payments 作为 [Merchant of Record](https://dodopayments.com/blogs/what-is-a-merchant-of-record)（MoR，名义商户）运营，这意味着 Dodo 是每笔交易的法定卖方，并负责处理开具发票所涉及的税务义务。根据[发票生成文档](https://docs.dodopayments.com/features/invoice-generation)，每笔成功交易都会自动生成发票，包括一次性购买和每次订阅续订。你无需自行分配号码或创建发票模板。

每张发票都包含税额明细、客户信息和产品信息；你还可以通过 Business Profile 添加公司徽标和品牌名称，为发票进行品牌化。对于 B2B 买家，结账时支持以企业身份购买，并填写 Business Tax ID。Dodo 会验证税号；如果税号有效，发票会显示客户的税号，并在适用法律要求时标记反向征税。[B2B 付款指南](https://docs.dodopayments.com/features/b2b-payments) 介绍了详细信息。

你可以在控制面板中依次进入 Transactions，再进入 Payments，下载任意发票 PDF；退款则可在 Transactions，再进入 Refunds 下使用独立的"Download Refund Invoice"选项。客户可以从 Customer Portal 查看账单历史并下载发票。[退款文档](https://docs.dodopayments.com/features/transactions/refunds) 介绍了退款单据的生成方式。

如果你的财务系统需要保存每张发票的副本，可以使用 [Get Invoice API](https://docs.dodopayments.com/api-reference/payments/get-invoice) 通过付款 ID 获取 PDF。常见做法是在 `payment.succeeded` [webhook](https://docs.dodopayments.com/developer-resources/webhooks) 中触发这一操作，并以付款 ID 作为键归档文件：

```typescript
import DodoPayments from "dodopayments";

const client = new DodoPayments({
  bearerToken: process.env.DODO_PAYMENTS_API_KEY,
  environment: "test_mode",
});

// Called from your payment.succeeded webhook handler
async function archiveInvoice(paymentId: string) {
  const invoice = await client.invoices.payments.retrieve(paymentId);
  const pdf = await invoice.blob(); // application/pdf

  // Store under the payment ID so finance can go from payment to invoice directly
  await financeStorage.put(`invoices/${paymentId}.pdf`, pdf);
}
```

由于发票以付款为关联对象，对账就从搜索变成了查询。

## 常见问题

### 发票号码和发票 ID 是一回事吗？

在日常使用中，是的。两者都指向用于标识特定发票的唯一参考编号。有些软件会将内部数据库 ID 与面向客户的发票号码分开显示；在这种情况下，必须遵循连续编号规则的是发票号码。

### 发票号码中可以使用字母吗？

可以。大多数司法管辖区允许使用字母、数字和连字符等分隔符，因此 INV-2026-0001 或 EU-0042 这样的格式很常见。重要的是每个发票号码都必须唯一，并且每个序列中的数字部分必须连续。

### 发票号码应该每年重新开始吗？

在大多数国家，这是由你自行决定的。使用 2026-0001 这样的年份前缀，并在每年将编号重置为 0001，通常效果很好，因为前缀可以确保每个完整号码都保持唯一。使用永不重置的连续计数器同样有效，而且审计时略微简单一些。

### 不同企业需要使用不同的发票号码序列吗？

如果你运营多个法律实体，每个实体都应有自己的发票序列，因为每个实体都是独立卖方，拥有自己的账簿和税务登记信息。在同一实体内，按品牌或单据类型设置不同序列在许多司法管辖区也是允许的，包括欧盟 VAT 规则下的情况，只要每个序列都保持连续。

### 我的第一张发票应该使用什么号码？

只要之后的号码始终向前递增，任何起始点都可以。许多企业会从 1001 开始，这样新客户不会看到"发票 #1"；也可以使用 2026-0001 这样的年份前缀格式。

## 结语

发票号码虽然只是一个小字段，却承担着重要职责。它让每张发票都能被唯一识别，保持完整的审计追踪，帮助客户支付正确的单据，并将银行中的现金与分类账中的收入关联起来。选择清晰的发票号码格式，确保号码唯一且连续，绝不重复使用或删除号码，并通过贷项通知单而不是直接编辑来更正错误。

对于 SaaS 企业而言，实际的解决方案是停止手动为发票编号。使用 [Dodo Payments](https://dodopayments.com)，每笔成功付款和续订都会自动生成发票，并在 Merchant of Record 模式下处理税务。开票不收取额外费用，完整费用明细请参阅[定价页面](https://dodopayments.com/pricing)。
---
- [More Billing articles](https://dodopayments.com/blogs/category/billing)
- [All articles](https://dodopayments.com/blogs)