API 参考
文档资源
Numora 对外 API 中文档接入、状态读取与复核动作的请求和响应模型。
范围
本页定义 Numora 对外 API 开发者预览版中的 document 资源。
API 默认采用异步模式。客户端提交文档后,应保存返回的 id,再通过轮询或 webhook 观察状态变化。
资源模型
每次提交文件都会生成一个 document 资源。
核心字段包括:
idschemastatusexternal_idmetadatacreated_atupdated_atreview_stateduplicate_of
其中 review_state 应为 null 或一个记录“哪些字段、哪些行项目已被确认”的结构化对象。更完整的语义请继续阅读复核与确认。
创建文档
POST /v1/documents
请求示例:
{
"schema": "invoice_v2",
"file_url": "https://example.com/invoice-001.pdf",
"external_id": "ap-100024",
"metadata": {
"source": "email-import",
"vendor_code": "ACME"
}
}响应示例:
{
"id": "doc_01jpwq4q9m7q4q2k8dax1x1q5n",
"status": "processing",
"schema": "invoice_v2",
"status_url": "/v1/documents/doc_01jpwq4q9m7q4q2k8dax1x1q5n",
"result_url": "/v1/documents/doc_01jpwq4q9m7q4q2k8dax1x1q5n/result"
}异步创建返回 202 Accepted。
获取文档状态
GET /v1/documents/{id}
文档生命周期状态包括:
processingreview_requiredreviewedpush_pendingpush_succeededpush_failedfailed
关于当前内部 OCR 状态与未来对外 document.status 的精确映射,请继续阅读文档生命周期。
获取文档结果
GET /v1/documents/{id}/result
响应示例:
{
"id": "doc_01jpwq4q9m7q4q2k8dax1x1q5n",
"schema": "invoice_v2",
"status": "review_required",
"review_state": {
"version": 1,
"confirmed_general_field_names": ["invoice_number"],
"confirmed_line_item_ids": []
},
"confidence": 0.93,
"fields": {
"vendor_name": {
"value": "ACME Supplies",
"confidence": 0.98
},
"invoice_number": {
"value": "INV-2026-001",
"confidence": 0.97
}
},
"line_items": [],
"duplicate_of": null
}复核动作
复核被定义为显式动作,而不是隐式副作用。
POST /v1/documents/{id}/actions/approvePOST /v1/documents/{id}/actions/rejectPOST /v1/documents/{id}/actions/retry-push
关于动作语义、review_state 结构以及确认冲突处理,请继续阅读复核与确认。
说明
POST /v1/documents是合法的接入口,但在首阶段 CRM 交付主路径中,它不是必经第一步。external_id可以选填,但强烈建议提供,便于客户端做幂等对账。- 在当前预览版里,重试同一份业务文档创建时,应复用同一个
external_id。 - 结果 schema 必须显式版本化,例如
invoice_v2。 - 大文件或高成本操作应保持异步。
- 对外响应体不应泄露 provider 特有的内部字段,除非这些字段被明确纳入公开契约。