内容
# 收据提取
将收据和发票转化为结构化、验证过的JSON — 供应商、行项目、税、总额 — 澳大利亚商品和服务税(GST)及澳大利亚商业编号(ABN)校验内置。从第一天起就支持校验。
## 它做什么
- 接受收据/发票图像或PDF(base64),返回干净的、版本化的`收据` JSON对象。
- 验证供应商的ABN(11位模89校验)和交叉校验GST在行项目和总额,正确排除娱乐费用编码的不可抵扣GST。
- 作为MCP服务器(`extract_receipt`工具)或普通的HTTPS API — 可从Claude、Cursor或任何HTTP客户端使用。
### 示例(MCP工具调用)
```json
{
"tool": "extract_receipt",
"input": { "document_base64": "<base64 image or PDF>", "mime_type": "image/jpeg" }
}
```
```json
{
"vendor": { "name": "Acme Pty Ltd", "abn": "51824753556", "abn_valid": true },
"date": "2026-07-14",
"line_items": [{ "description": "Widget", "qty": 2, "unit_price": 12.5, "gst": 2.5, "tax_code": "taxable" }],
"totals": { "subtotal": 25.0, "gst": 2.5, "total": 27.5 },
"schema_version": "1.0"
}
```
## 定价
- **免费** — 20份文档/月,不需要信用卡。
- **按需付费** — $0.02/文档,没有最低消费。
- **专业版** — $19/月,适用于1,500份文档(约$0.013/文档,有效),优先支持。
## 获取密钥
MCP服务器位于`https://acjlabs-receipt-extraction.acjlabs.workers.dev/mcp`。免费层密钥自助服务 — `POST /v1/signup`,带有`{ "email": "you@example.com" }`,在响应中直接返回您的密钥,有效期为20份文档/月,不需要信用卡。**请立即存储 — 它只显示一次,如果丢失,无法恢复**(重新注册获取新的密钥)。付费密钥通过一次性声明链接进行预订,支持Pro/按需付费计费。
## 将其连接到MCP客户端
使用Claude Code:
```bash
claude mcp add --transport http receipt-extraction \
https://acjlabs-receipt-extraction.acjlabs.workers.dev/mcp \
--header "Authorization: Bearer YOUR_API_KEY"
```
任何其他支持远程HTTP服务器和自定义标头的MCP客户端(Cursor、Cline、VS Code等)都可以使用:只需指向上述URL,并带有`Authorization: Bearer YOUR_API_KEY`标头。网关或扫描仪只能转发原始密钥值(无`Bearer`前缀)也适用 — 两种形式都经过身份验证。工具发现(`initialize`/`tools/list`)不需要密钥;只有调用`extract_receipt`才需要。
## 准确率如何?
在4份手工制作的测试文档中验证了4/4,涵盖净价、仅含GST、校验和无效ABN以及无法读取文档的情况。一旦有实时流量,将跟踪更多文档格式的实际生产准确率。
## npm客户端
更喜欢使用类型化的函数而不是手工制作MCP JSON-RPC调用?`@acjlabs/receipt-extraction-client`(`client/`,尚未发布 — npm发布是受控的创始人操作)封装了`extract_receipt`工具调用:
```ts
import { createReceiptExtractionClient } from "@acjlabs/receipt-extraction-client";
const client = createReceiptExtractionClient({
baseUrl: "https://acjlabs-receipt-extraction.acjlabs.workers.dev",
apiKey: "...",
});
const receipt = await client.extractReceipt(base64EncodedImageOrPdf, "image/png");
```
## 为什么不使用通用OCR?
通用OCR API(Mindee、Veryfi)提取原始字段,但不知道澳大利亚ABN具有11位校验和,或GST分配因娱乐费用而有所不同 — 您需要自己构建和维护这些功能。参见[完整比较](docs/comparison.md),或阅读[为什么澳大利亚GST规则会破坏大多数收据提取工具](docs/au-gst-receipt-extraction.md)(ABN校验和,三个实际GST案例,以及如何测试任何工具对抗它们)。
## 源代码可用性和支持
该仓库托管托管服务的文档。服务实现不开源。欢迎在此仓库的问题中报告错误和功能请求;您也可以通过<contact@acjlabs.com>联系我们。