afrexai-invoice-engineSkill afrexai-invoice-engine

端到端发票处理引擎,从报价到支付再到报告

支付系统 0 次安装 0 次浏览 更新于 2/24/2026

Invoice Engine — Complete Invoicing & Accounts Receivable

一个零依赖的代理技能,用于端到端的发票处理 — 从报价到支付再到报告。

快速开始

当用户说“创建一个发票”或“向[客户]开票”时:

  1. 检查客户是否存在于内存中(见下面的客户注册表)
  2. 如果是新客户 → 运行客户入职
  3. 使用发票生成器生成发票
  4. 提交审核 → 完成
  5. 在发票分类账中跟踪

1. 客户注册表

在您的工作空间中维护一个YAML客户数据库:

# clients.yaml
clients:
  - id: "CLI-001"
    name: "Acme Corp"
    contact: "Jane Smith"
    email: "jane@acme.com"
    address:
      line1: "123 Business Ave"
      line2: "Suite 400"
      city: "New York"
      state: "NY"
      zip: "10001"
      country: "US"
    tax_id: "US-EIN-12-3456789"
    payment_terms: "net-30"       # net-15, net-30, net-45, net-60, due-on-receipt, custom
    preferred_currency: "USD"
    default_tax_rate: 0           # 0 for B2B cross-border, local rate for domestic
    notes: "PO required for invoices > $5,000"
    created: "2026-01-15"
    lifetime_revenue: 12500.00
    invoices_sent: 3
    invoices_paid: 2
    avg_days_to_pay: 22

客户入职清单

当添加新客户时,收集:

  • [ ] 法律实体名称(与记录上完全一致)
  • [ ] 开票联系人姓名 + 邮箱
  • [ ] 开票地址(完整的,包括国家)
  • [ ] 税务登记号/增值税号码(如适用)
  • [ ] 首选支付条款
  • [ ] 货币偏好
  • [ ] 任何采购订单或审批要求
  • [ ] 免税?(如果是,获取证书参考)

2. 发票生成器

发票编号格式

[PREFIX]-[YEAR].[MONTH].[SEQUENCE]
示例:INV-2026.02.001

可配置的前缀每个业务线:

  • INV = 标准发票
  • PRO = 形式发票/报价
  • REC = 定期发票
  • CN = 信用票据

发票模板

生成发票时,结构如下:

╔══════════════════════════════════════════════════════════╗
║  [YOUR COMPANY NAME]                                     ║
║  [Address Line 1]                                        ║
║  [City, State ZIP]                                       ║
║  [Country]                                               ║
║  Tax ID: [YOUR TAX ID]                                   ║
╠══════════════════════════════════════════════════════════╣
║                                                          ║
║  INVOICE [NUMBER]                  Date: [ISSUE DATE]    ║
║                                    Due:  [DUE DATE]      ║
║                                                          ║
║  Bill To:                          Payment Terms:        ║
║  [CLIENT NAME]                     [Net-30 / etc.]       ║
║  [Client Address]                                        ║
║  [City, State ZIP]                 PO Number:            ║
║  Tax ID: [CLIENT TAX ID]          [If applicable]        ║
║                                                          ║
╠══════════════════════════════════════════════════════════╣
║  #  │ Description          │ Qty │ Rate    │ Amount     ║
╠═════╪══════════════════════╪══════╪═════════╪════════════╣
║  1  │ [Service/Product]    │  1  │ $X,XXX  │ $X,XXX.XX ║
║  2  │ [Service/Product]    │  3  │ $XXX    │ $X,XXX.XX ║
║  3  │ [Expense passthrough]│  1  │ $XXX    │ $XXX.XX   ║
╠═════╧══════════════════════╧═════╧═════════╧════════════╣
║                              Subtotal:    $XX,XXX.XX     ║
║                              Discount:    -$X,XXX.XX     ║
║                              Tax (X%):    $X,XXX.XX      ║
║                              ─────────────────────────   ║
║                              TOTAL DUE:   $XX,XXX.XX     ║
╠══════════════════════════════════════════════════════════╣
║  Payment Methods:                                        ║
║  • Bank Transfer: [Bank] | Acct: [XXXX] | Routing: [XX] ║
║  • PayPal: [email]                                       ║
║  • Stripe: [payment link]                                ║
║  • Bitcoin: [address] / Lightning: [LNURL]               ║
║                                                          ║
║  Notes: [Custom message / thank you / late fee notice]   ║
╚══════════════════════════════════════════════════════════╝

行项目类型

  • 基于时间:小时 × 时薪(记录小时,自动计算)
  • 固定费用:项目里程碑,预付费用
  • 基于数量:单位 × 单价
  • 费用转嫁:成本价或加价%
  • 折扣行:负金额(提前支付,数量,忠诚度)
  • 定期:从定期计划自动填充

税务处理决策树

客户是否与您在同一国家?
├── YES → 应用当地税率
│   ├── 客户免税?→ 添加免税参考,0%税
│   └── 客户不免 → 应用标准税率
└── NO → 通常0%(反向收费/出口)
    ├── 都在欧盟?→ 反向收费机制(0%,发票上注明)
    ├── 美国州际?→ 检查关联规则
    └── 国际 → 0%带有出口参考

折扣与定价框架

  • 提前支付:2/10 Net 30(如果10天内支付,享受2%的折扣)
  • 数量:分层定价(1-10单位 = $X,11-50 = $Y,51+ = $Z)
  • 忠诚度:6+发票后,提供5%的持续折扣
  • 捆绑:将多个服务打包,比单独购买便宜10-15%
  • 季节性:Q4溢价(+10%),Q1折扣(-5%)如果适用

3. 发票生命周期与状态跟踪

状态流

草稿 → 发送 → 查看 → 部分支付 → 已支付 → 关闭
                  ↓
              逾期 → 升级 → 核销
                  ↓
            有争议 → 解决 → 已支付

发票分类账(YAML)

# invoices.yaml
invoices:
  - number: "INV-2026.02.001"
    client_id: "CLI-001"
    status: "sent"
    issue_date: "2026-02-13"
    due_date: "2026-03-15"
    currency: "USD"
    subtotal: 5000.00
    discount: 0
    tax: 0
    total: 5000.00
    amount_paid: 0
    balance_due: 5000.00
    payment_terms: "net-30"
    line_items:
      - description: "AI Integration Consulting — February"
        qty: 20
        rate: 250.00
        amount: 5000.00
    payments: []
    notes: ""
    sent_date: "2026-02-13"
    reminders_sent: 0
    created: "2026-02-13T10:30:00Z"

支付记录

当收到付款时:

payments:
  - date: "2026-03-10"
    amount: 5000.00
    method: "bank_transfer"    # bank_transfer, stripe, paypal, btc, cash, check
    reference: "TXN-ABC123"
    notes: "Paid in full"

更新:amount_paid, balance_due, status(→ 如果余额 = 0,则为已支付,→ 如果余额 > 0,则为部分支付)


4. 定期发票

计划配置

recurring:
  - id: "REC-001"
    client_id: "CLI-001"
    description: "Monthly Retainer — AI Ops Support"
    frequency: "monthly"          # weekly, biweekly, monthly, quarterly, annually
    day_of_month: 1               # 1-28(为安全起见,避免29-31)
    line_items:
      - description: "AI Operations Retainer"
        qty: 1
        rate: 3500.00
    auto_send: true               # false = 创建为草稿
    start_date: "2026-01-01"
    end_date: null                # null = 无限期
    next_invoice: "2026-03-01"
    invoices_generated: 2
    active: true

定期发票例程(按计划运行)

  1. 检查recurring条目,其中next_invoice <= todayactive = true
  2. 对于每个:根据模板生成发票,分配下一个号码
  3. 如果auto_send = true → 标记为已发送,通知客户
  4. 如果auto_send = false → 保存为草稿,通知用户审核
  5. 更新next_invoice到下一次出现
  6. 在每日记忆中记录

5. 逾期管理与收款

提醒计划

逾期天后 行动 语气
+1 天 友好提醒邮件 “Just a gentle reminder…”
+7 天 发送带有发票的跟进 “Following up on…”
+14 天 坚定提醒,提及滞纳金 “This invoice is now 14 days past due…”
+30 天 最终通知,升级前 “Final notice — please remit payment…”
+45 天 升级到人类(Kalin/Christina) 标记为个人外展
+60 天 考虑核销或收款 商业决策

提醒模板

第1天(友好)

主题:友情提醒 — 发票[NUMBER]于[DATE]到期

Hi [CONTACT],

Hope all is well! Just a quick reminder that invoice [NUMBER] for [AMOUNT] was due on [DATE].

如果您已经发送了付款,请忽略这条消息。

付款详情在附件发票上。如果您需要任何东西,请告诉我。

Best,
[YOUR NAME]

第14天(坚定)

主题:发票[NUMBER] — 14天逾期([AMOUNT])

Hi [CONTACT],

发票[NUMBER]为[AMOUNT]现在已经逾期14天,到期日为[DATE]。

根据我们的协议,逾期[Y]天以上的余额可能会适用[X]%的滞纳金。

您能确认我们何时可以期待付款吗?如果有任何问题,很乐意讨论。

谢谢,
[YOUR NAME]

第30天(最终)

主题:最终通知 — 发票[NUMBER]逾期([AMOUNT])

Hi [CONTACT],

这是最终提醒,发票[NUMBER]为[AMOUNT]仍未支付,现在已经逾期30天。

请在接下来的7个工作日内安排付款,以避免进一步的行动。

如果对这个发票有争议或问题,请立即告诉我,以便我们可以解决。

Regards,
[YOUR NAME]

滞纳金计算

标准:每月逾期余额的1.5%(18% APR)
宽限期:到期日后5个工作日
复合:单利(不复利)
上限:发票总额的25%(或当地法律最高限额)

公式:late_fee = balance_due × (monthly_rate / 30) × days_overdue
示例:$5,000 × (0.015 / 30) × 14 = $35.00

6. 财务报告

收入仪表板(每周/每月生成)

═══ 收入总结 — [MONTH YEAR] ═══

本月开票:      $XX,XXX.XX  ([N]发票)
本月收款:      $XX,XXX.XX  ([N]付款)
未逾期(未到期):$XX,XXX.XX  ([N]发票)
逾期:                  $XX,XXX.XX  ([N]发票,平均[X]天晚)
已核销(YTD):        $XX,XXX.XX

收款率:          XX.X%  (收款/开票,过去90天)
平均支付天数:          XX天(过去90天)
平均发票金额:         $X,XXX.XX

═══ 本年度前客户(按收入,YTD)═══
1. [客户] — $XX,XXX  ([N]发票,平均[X]天支付)
2. [客户] — $XX,XXX  ([N]发票,平均[X]天支付)
3. [客户] — $XX,XXX  ([N]发票,平均[X]天支付)

═══ 账龄报告 ═══
当前(尚未到期):     $XX,XXX  ([N]发票)
1-15天逾期:         $XX,XXX  ([N]发票)
16-30天逾期:        $XX,XXX  ([N]发票)
31-60天逾期:        $XX,XXX  ([N]发票)
60+天逾期:          $XX,XXX  ([N]发票)⚠️

═══ 月度趋势 ═══
一月:$XX,XXX ████████████
二月:$XX,XXX ████████████████
三月:$XX,XXX ██████
...

═══ 需要采取的行动 ═══
• [N]发票需要提醒邮件
• [N]定期发票到期生成
• [客户]对INV-XXXX有争议 — 需要解决

关键指标跟踪

  • 收款率:实际收取的开票金额的百分比(目标:>95%)
  • DSO(销售天数):从开票到支付的平均天数(目标:<30)
  • 逾期比率:逾期余额/总未付(目标:<10%)
  • 收入集中度:来自前客户的比例(如果>40% — 依赖风险)
  • MRR来自定期:定期发票总额/月

7. 信用票据和调整

当需要退款或更正时:

credit_note:
  number: "CN-2026.02.001"
  original_invoice: "INV-2026.01.003"
  client_id: "CLI-001"
  reason: "部分退款 — 超收服务小时"
  line_items:
    - description: "更正:5小时超收"
      qty: -5
      rate: 250.00
      amount: -1250.00
  total: -1250.00
  issued: "2026-02-13"

对信用票据进行冲抵:

  1. 原始发票(减少余额)
  2. 未来发票(账户上的信用)
  3. 直接退款(记录退款方式 + 参考)

8. 多货币支持

currencies:
  primary: "USD"
  accepted: ["USD", "GBP", "EUR", "BTC"]
  exchange_rates:  # 每周更新或使用实时汇率
    GBP_USD: 1.27
    EUR_USD: 1.08
    BTC_USD: 97500
  conversion_note: "按发票日期的汇率转换。只接受发票货币的付款。"

规则:

  • 始终以客户的首选货币开具发票
  • 以收到的货币记录付款
  • 转换为报告的主要货币(使用付款日期的汇率)
  • 如果跨货币,则在发票上注明汇率
  • BTC/Lightning:包括sats和法币等价物

9. 报价至发票流程

报价(形式发票)模板

与发票模板相同,但是:

  • 前缀:PRO-而不是INV-
  • 标题:“报价"而不是"发票”
  • 添加:“有效期至:[DATE]”(通常30天)
  • 添加:“这不是税务发票”

流程流

报价 → 接受 → 发票 → 已支付
  ↓
到期(自动到期后有效期)
  ↓
修订(新版本更改)

当报价被接受时:

  1. 转换为发票(更改前缀,删除有效期通知)
  2. 分配发票号码
  3. 根据客户档案设置支付条款
  4. 发送发票
  5. 将报价存档为"已转换"

10. 边缘案例与规则

部分付款

  • 单独记录每笔付款,并附上参考
  • 每次付款后更新balance_due
  • 在最后一笔付款后 → 标记为已支付
  • 如果部分 + 逾期 → 只追收剩余余额

有争议的发票

  • 标记状态为有争议
  • 记录争议原因和日期
  • 在争议期间暂停提醒
  • 跟踪解决(调整,信用票据,或确认正确)
  • 解决后恢复计费

作废与信用票据

  • 作废:发票错误地发送了,本不应存在 → 标记为作废,排除在报告之外
  • 信用票据:服务已交付但需要调整 → 发行CN,包括在报告中

税务发票要求(按地区)

  • 美国:没有严格格式,但如果注册了,需包括EIN
  • 英国/欧盟:必须包括增值税号码,增值税金额,"反向收费"通知如适用
  • 澳大利亚:必须说"税务发票",包括ABN,GST金额
  • 加拿大:包括GST/HST号码,省特定规则

四舍五入

  • 始终将行项目金额四舍五入到小数点后两位
  • 在小计上计算税款(而不是逐行),以避免便士差异
  • 显示货币符号在金额之前:$1,234.56

发票编号

  • 永远不重用或跳过号码(税务审计要求)
  • 每个前缀内顺序编号
  • 如果作废,保留号码,只需标记状态

11. 自动化机会

设置cron作业或心跳检查:

  • [ ] 按计划生成定期发票
  • [ ] 根据上述时间表发送逾期提醒
  • [ ] 每周向所有者发送收入仪表板
  • [ ] 每月账龄报告
  • [ ] 自动标记>45天逾期的客户
  • [ ] 季度审查:更新汇率,审查定价

12. 导出格式

当用户需要导出时:

  • CSV:用于电子表格/会计导入
    invoice_number,client,date,due_date,total,status,amount_paid,balance
    
  • JSON:用于API集成或备份
  • Markdown表格:在聊天中快速查看
  • PDF就绪文本:格式化文本块,准备用于PDF生成工具

命令参考

命令 行动
“Invoice [client] for [amount/description]” 创建新发票
“Quote [client] for [service]” 创建形式发票
“Show outstanding invoices” 列出未付发票
“What’s overdue?” 账龄报告,仅逾期
“Revenue this month” 月度收入仪表板
“Send reminder for [invoice]” 生成提醒邮件
“Record payment [invoice] [amount]” 记录收到的付款
“Recurring: [client] [amount] [frequency]” 设置定期发票
“Credit note for [invoice]” 发行信用/调整
“Client report [name]” 完整的客户支付历史
“Export invoices [format]” CSV/JSON/Markdown导出
“Void [invoice]” 作废发票
“Update rates” 刷新汇率