Smartbill Invoicing
Issue SmartBill invoices through the SmartBill.ro API with local automation.
- Rating
- 4.9 (47 reviews)
- Downloads
- 14,866 downloads
- Version
- 1.0.0
Overview
Issue SmartBill invoices through the SmartBill.ro API with local automation.
Complete Documentation
View Source →
SmartBill Invoicing
Use scripts/smartbill_cli.py for deterministic SmartBill API calls instead of ad-hoc HTTP snippets.
Workflow
- Collect invoice input from the user.
- Validate payload locally before sending:
python scripts/smartbill_cli.py validate-payload --input references/invoice-example.json --show-payload- Dry-run to inspect the normalized payload without calling the API:
python scripts/smartbill_cli.py create-invoice --input--dry-run - Issue final invoice after explicit user confirmation:
python scripts/smartbill_cli.py create-invoice --input--allow-final - Retrieve PDF once series and number are known:
python scripts/smartbill_cli.py download-invoice-pdf --series-name--number --output - Use the exact
numberstring returned by SmartBill (zero-padded, e.g."0123"). Do not strip leading zeros or convert to an integer. --outputaccepts absolute or relative paths and must end in.pdf.
Required Environment
Set these before calling SmartBill:
SMARTBILL_USERNAME- SmartBill login emailSMARTBILL_TOKEN- SmartBill API tokenSMARTBILL_COMPANY_VAT_CODE- default CIF (optional but recommended)
SMARTBILL_API_BASE(default:https://ws.smartbill.ro/SBORO/api)SMARTBILL_TIMEOUT_SECONDS(default:30)SMARTBILL_RETRIES(default:2)SMARTBILL_DEBUG(default: unset) — set to1,true, oryesto enable request/response debug logging to stderr
Command Guide
validate-payload- Parse and normalize payload shape (bare invoice object or
{ "invoice": {...} }wrapper both accepted). - Validate minimum required structure before API calls.
create-invoice- Create invoice via
POST /invoice. - Requires
--allow-finalto issue a final invoice. - Supports
--dry-run(prints normalized payload, no API call) and--force-draft. - Pass
--debug(or setSMARTBILL_DEBUG=1) to print full request/response payloads to stderr. get-series- Query available SmartBill series via
GET /series. download-invoice-pdf- Fetch PDF via
GET /invoice/pdfusing CIF + series + number. --outputaccepts an absolute or relative.pdfpath. Relative paths are resolved against the current working directory. The resolved path must fall within an OpenClaw-allowed media root or the current working directory.
Payload Format
The invoice payload is a flat JSON object sent directly to the SmartBill API. See references/invoice-example.json for the canonical minimal example and references/smartbill-api.md for field documentation.
Both formats are accepted as input to the CLI:
- Bare invoice object:
{ "companyVatCode": "...", "client": {...}, ... } - Wrapped:
{ "invoice": { "companyVatCode": "...", "client": {...}, ... } }
Operational Rules
- Always use
--dry-runfirst to confirm the normalized payload before hitting the API. - Treat final invoice issuance (
isDraft: false) as a high-impact action requiring explicit user confirmation. - Set
client.saveToDb: falseandproducts[].saveToDb: falseto avoid persisting test data. - Preserve SmartBill response data (series, number, message) in run logs. Store
numberverbatim as returned — it is zero-padded (e.g."0123") and must never be stripped of leading zeros or cast to an integer. - Respect SmartBill rate limits: max 30 calls per 10 seconds.
References
- Read
references/smartbill-api.mdfor payload field reference, endpoint mapping, and auth/rate-limit notes. - Use
references/invoice-example.jsonas the canonical starting payload template.
Installation
openclaw install smartbill-invoicing
Tags
Quick Info
Ready to Install?
Get started with this skill in seconds
Related Skills
4claw
4claw — a moderated imageboard for AI agents.
Aap Passport
Agent Attestation Protocol - The Reverse Turing Test.
Acestep Lyrics Transcription
Transcribe audio to timestamped lyrics using OpenAI Whisper or ElevenLabs Scribe API.
Adaptive Suite
A continuously adaptive skill suite that empowers Clawdbot.