通过 SmartBill.ro API 本地自动化开具 SmartBill 发票,执行验证载荷、创建发票等任务。
SmartBill 开具发票
功能概述
SmartBill 开具发票是一项面向实际任务的技能,主要用于使用脚本/ smartbill cli.py 来决定SmartBill API的呼叫, 而不是使用 ad-hoc HTTP 片段.;Workflow.;
核心要点
- Collect 发票输入用户..;
- Validate 有效载荷本地 bef。
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
使用与执行
使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
结果检查与注意事项
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
SmartBill 开票系统
请使用 scripts/smartbill_cli.py 执行确定性的 SmartBill API 调用,而非临时编写的 HTTP 片段代码。
工作流程
- 从用户处收集发票输入数据。
- 发送前在本地验证载荷(payload):
python scripts/smartbill_cli.py validate-payload --input references/invoice-example.json --show-payload
- 执行试运行(dry-run),仅检查标准化后的载荷,不实际调用 API:
python scripts/smartbill_cli.py create-invoice --input--dry-run
- 在获得用户明确确认后,签发正式发票:
python scripts/smartbill_cli.py create-invoice --input--allow-final
- 当已知发票系列(series)和编号(number)后,获取 PDF 文件:
python scripts/smartbill_cli.py download-invoice-pdf --series-name--number --output - 必须使用 SmartBill 返回的原始
number字符串(含前导零,例如"0123")。不得去除前导零,也不得将其转换为整数。 --output参数支持绝对路径或相对路径,且路径结尾必须为.pdf。
必需的运行环境
调用 SmartBill 前,请设置以下环境变量:
SMARTBILL_USERNAME— SmartBill 登录邮箱SMARTBILL_TOKEN— SmartBill API TokenSMARTBILL_COMPANY_VAT_CODE— 默认 CIF(可选,但建议设置)
可选覆盖项:
SMARTBILL_API_BASE(默认值:https://ws.smartbill.ro/SBORO/api)SMARTBILL_TIMEOUT_SECONDS(默认值:30)SMARTBILL_RETRIES(默认值:2)SMARTBILL_DEBUG(默认未设置)— 设为1、true或yes可启用请求/响应调试日志,并输出至 stderr
命令说明
validate-payload- 解析并标准化载荷结构(支持裸发票对象,也支持带
{ "invoice": {...} }包裹层的格式)。 - 在调用 API 前校验最小必需字段结构。
- 解析并标准化载荷结构(支持裸发票对象,也支持带
create-invoice- 通过
POST /invoice创建发票。 - 需指定
--allow-final参数方可签发正式发票(非草稿)。 - 支持
--dry-run(仅打印标准化后的载荷,不发起 API 调用)及--force-draft参数。 - 传入
--debug参数(或设置SMARTBILL_DEBUG=1)可在 stderr 中打印完整的请求与响应载荷。
- 通过
get-series- 通过
GET /series查询当前可用的 SmartBill 发票系列。
- 通过
download-invoice-pdf- 通过
GET /invoice/pdf使用 CIF + 系列名 + 编号组合获取 PDF 文件。 --output接受绝对路径或相对路径的.pdf文件路径;相对路径基于当前工作目录解析;最终解析出的路径必须位于 OpenClaw 允许的媒体根目录内,或处于当前工作目录下。
- 通过
载荷格式
发票载荷是一个扁平化的 JSON 对象,直接提交至 SmartBill API。参见 references/invoice-example.json 获取标准最小示例,以及 references/smartbill-api.md 查阅各字段详细说明。
CLI 支持以下两种输入格式:
- 裸发票对象:
{ "companyVatCode": "...", "client": {...}, ... } - 包裹格式:
{ "invoice": { "companyVatCode": "...", "client": {...}, ... } }
CLI 会自动解包,并将内部的发票对象直接发送至 API。
操作规范
- 始终优先使用
--dry-run检查标准化后的载荷,确认无误后再调用 API。 - 将正式发票签发(即
isDraft: false)视为高影响操作,必须经用户显式确认。 - 设置
client.saveToDb: false和products[].saveToDb: false,避免测试数据被持久化。 - 在运行日志中完整保留 SmartBill 的响应数据(包括 series、number、message);其中
number必须按返回值原样存储(如"0123"),严禁去除前导零或转为整数类型。 - 遵守 SmartBill 的速率限制:每 10 秒最多 30 次调用。
参考资料
- 阅读
references/smartbill-api.md以了解载荷字段定义、端点映射,以及认证与速率限制相关说明。 - 以
references/invoice-example.json作为标准初始载荷模板使用。
热门AI工具
相关专题
Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。
0
2026.10.28
Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。
0
2026.10.28
Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。
0
2026.10.28
本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。
0
2026.10.22
本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。
0
2026.10.22
本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。
0
2026.10.22
本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。
0
2026.10.22
本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。
0
2026.10.22
本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。
0
2026.10.22
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.6万人学习
共6课时 | 54.7万人学习
最新文章