面向自由职业者的开票应用
自由职业者收不到钱,往往是因为忘了发发票、把哪些工时算错了是否可计费,或者根本没注意到客户早已过了付款截止日。行业数据很直白:85% 的自由职业者至少有时会遇到发票被拖欠付款,而普通自由职业者在任何时刻都被欠着数千美元。一个真正的开票系统——它知道谁欠了多少、并替你去催——就是「把活干完」和「真正把钱收回来」之间的差别。
痛点
- 可计费工时散落在备忘录、电子表格和你的记忆里,于是发票发出去时工时要么漏算、要么重复计算。
- 你发出一张发票,然后就没有下文了。没有任何系统告诉你它已经逾期 14 天,直到你碰巧去查银行余额才发现。
- 每个发票编号都靠手动输入,结果就是重复、跳号,以及会计问你为什么 14 号发票后面跟着的是 21 号。
- 到了报税时,你得从散落在邮件各处的 PDF 里重建一整年的收入,却没有一个记录着究竟谁付了款的累计总额。
你能搭什么
为每个客户建立一条记录,包含开票地址、默认时薪或项目费率、付款条款(15/30 天账期)、币种和税号,于是新建发票时会自动预填,而不是从一张空白页开始。
一边工作一边把可计费工时或固定价交付物记在对应客户名下,为每条记录标记是否可计费,并把未开票的那些直接拉进下一张发票,无需重新输入。
自动编号的发票,带有真实状态(草稿、已发送、已付款、逾期),并在发票逾期当天自动给客户发邮件提醒,让你不必再给自己当讨债人。
数据模型
系统里的一天
- 周一早上你打开应用,把周五通话的三小时记到 Acme Co. 名下;它会作为一条未开票、可计费的工时记录落地。
- 你把新客户 Riverside Studio 录入一次:他们的邮箱、30 天账期和 95 美元时薪,从此再也不用重新输入其中任何一项。
- 月底你打开 Acme 的未开票记录,勾选要开票的那些,点击「创建发票」;明细行会从你的工时日志中预填。
- 应用会分配下一个连续的发票编号,按客户账期把到期日设为 30 天后,并计算小计、税额和合计。
- 你审核后点击「发送」,发票会以 PDF 形式发送到客户邮箱,同时状态从草稿翻转为已发送。
- 某个客户只付了一部分;你在一张 1,500 美元的发票上登记一笔 500 美元的付款,状态便显示为部分付款、仍有 1,000 美元未结。
- 十五天后一张未付发票越过了到期日;应用会把它标记为逾期,并自动发出一封礼貌的提醒邮件。
- 季度末你打开仪表盘:已开票总额、已收款总额,以及究竟谁还欠着你、逾期了多少天的精确清单。
AI 容易出错的地方
- 发票编号必须连续,绝不能重复使用或跳号。一个草率的实现如果生成随机 ID、或按客户各自重新编号,会让会计头疼,在某些司法辖区还会在税务稽查时出问题。应在发票最终确定时才占用编号,而不是每张草稿都占一个。
- 不要让编辑一张已付款发票悄悄改动它的金额。一旦发送或付款,发票就是一份财务记录;锁定金额,需要更正时用一张贷记单或一张新发票,而不是覆盖历史。
- 已经拉进某张发票的工时记录必须标记为已开票,这样它们就不会被再次计费。经典的重复开票 bug 就是下个月又把同一批工时选进去,因为没有任何东西标记它们已被用掉。
- 付款条款和币种属于客户,而不是一个全局设置。一个同时有美国和欧盟客户的自由职业者需要按发票处理币种和税;把币种写死成一种、或只用一个增值税率,在第二个客户出现的那一刻就会崩。
- 逾期提醒需要真正的到期日计算(开具日期加账期)和一个宽限边界。差一天的日期逻辑会把催款邮件提前一天发出去,反而烧掉了你本想从其身上收款的客户关系。
- 客户、发票,以及一个手工搭建、带正确连续编号和已付款/已发送/逾期状态的明细行编辑器——这才是真正帮你收到钱的台账。
- 根据每个客户的账期自动计算到期日,外加一封在发票转入逾期时自动发出的提醒邮件。
- 一个把已开票与已收款汇总、并按最早在前列出未结发票的仪表盘,让你随时知道该去催谁。
- 实时秒表计时器;先从手动录入工时开始,等开票闭环跑通后,在 v2 里再加一个走动的计时器。
- 多用户账号、角色,以及单独的会计登录;v1 就是一个自由职业者、一个登录。
- 循环发票、支出跟踪和完整的复式记账;先把钱收到,边角功能以后再自动化。
常见问题
一张自由职业发票要具备什么才算有效?
至少要有:你的法定姓名和税号(在美国是 SSN 或 EIN)、客户的名称和地址、一个唯一的发票编号、开具日期和到期日期、对工作的逐项描述,以及合计金额。你的 ybuild 应用会自动强制编号和日期,并把你的税务信息存在客户记录上,让每张发票都带上它们。一年内付给你 600 美元或以上的客户会用 1099-NEC 表向 IRS 申报,所以你的记录应当与他们的对得上。
这个应用真的能替我催逾期客户吗?
能,这正是构建它的意义。当你设置好某个客户的账期(比如 30 天),ybuild 会算出每张发票的到期日,一旦这个日期过了,发票就翻转为逾期并自动给客户发提醒邮件。你不必再耗掉自由职业者普遍反映每月要搭进去的那一整天来追钱,而系统会一直催,直到这笔付款被登记到该发票上。
我给不同国家、不同币种的客户开票。这行得通吗?
币种和付款条款存在每个客户身上,于是一个美国客户可以按 15 天账期用美元开票,而一个欧盟客户按 30 天账期用欧元开票,每张发票都带自己的税行。你描述你实际拥有的客户,ybuild 就据此构建字段,而不是在整个应用里强推一种写死的币种。
我的数据存在哪里?如果我的笔记本坏了还安全吗?
你的客户、工时记录和发票都存在 ybuild 上一个托管的数据库里,自动备份,应用则运行在你自己的域名上。没有任何东西只存在你机器上的一张电子表格里,所以你可以从任何设备打开这个运行中的系统,报税季来临时你一整年的收入历史都完好无损。
构建这个需要我会写代码吗?
不需要。你用大白话描述你想要的开票系统、你开票的客户、你如何收费以及你的付款条款,ybuild 就会设计数据库、构建应用,并把它上线部署到你自己的域名上。等你之后需要一个新字段或第二封提醒邮件时,用话说出来即可,运行中的应用会原地更新。
参考来源
- IRS:独立承包人的表格及相关税务 — IRS 关于用 W-9 表和 1099-NEC 表申报向承包人付款的官方指引。
- 加州 SB-988《自由职业者保护法》(2025) — 要求为金额 250 美元及以上的自由职业工作签订书面合同并在 30 天内付款。
- Remote:2025 年承包人管理报告(关于逾期付款) — 发现 85% 的自由职业者至少有时会遇到发票被拖欠付款。
描述它,一次性上线到你自己的域名——托管、全栈、无需服务器。免费开始。