yuki
CLI client for the Yuki bookkeeping SOAP API.
Query invoices, VAT returns, GL accounts, contacts, and projects. Find missing invoices by cross-referencing bank transactions against booked items. Upload documents with metadata.
Install
Or via pip:
From source:
Setup
yuki init
Prompts for your Yuki API key, discovers available administrations, and writes the config to ~/.config/yuki/config.toml.
Non-interactive setup:
yuki init --api-key <key> --default-admin <name>
Commands
Querying
Gap analysis
Uploading
Global flags
| Flag | Description |
|---|---|
--admin <name> |
Override default administration |
--format table|json |
Output format (auto-detects TTY) |
--quiet |
Suppress informational output |
Periods
The --period flag accepts:
2025— full year2025-Q1— quarter2025-03— single month
Agent use
When stdout is not a TTY (piped or called by an agent), output defaults to JSON. Errors are also structured JSON on stderr. Exit codes: 0 success, 1 general error, 2 auth error, 3 not found, 4 rate limited.
The documents exists command exits with code 3 when no matching document is found, making it easy to use in scripts and agent workflows.
Config
~/.config/yuki/config.toml:
= "your-api-key"
= "company_name"
# Skip these counterparties in `check unmatched` (case-insensitive substring match)
= [
"Belastingdienst",
"ING bankkosten",
]
[]
= "domain-uuid"
= "admin-uuid"
Development
make check # Run clippy + fmt check + tests
make build # Debug build
make release # Release build
make fmt # Format code
make install # Install to ~/.cargo/bin/
License
MIT