SmartBill Invoicing

Polar Sponsor
爱发电 赞助
.NET 9.0

通过 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 片段代码。

工作流程

  1. 从用户处收集发票输入数据。
  2. 发送前在本地验证载荷(payload):
    • python scripts/smartbill_cli.py validate-payload --input references/invoice-example.json --show-payload
  3. 执行试运行(dry-run),仅检查标准化后的载荷,不实际调用 API:
    • python scripts/smartbill_cli.py create-invoice --input --dry-run
  4. 在获得用户明确确认后,签发正式发票:
    • python scripts/smartbill_cli.py create-invoice --input --allow-final
  5. 当已知发票系列(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 Token
  • SMARTBILL_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 作为标准初始载荷模板使用。

相关专题

更多
Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

0

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

0

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

0

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

0

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

0

25

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

2026.10.22

0

15

Golangci-lint安装与入门教程
Golangci-lint安装与入门教程

本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。

2026.10.22

0

15

PHP2Shell高危漏洞修复教程
PHP2Shell高危漏洞修复教程

PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。

2026.10.22

0

12

剧云人物设定与关系管理教程
剧云人物设定与关系管理教程

本专题介绍剧云人物设定与关系管理,讲解角色小传、性格职业、人物目标、背景资料和关系网络的创建及维护方法。

2026.10.22

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习