Skip to main content

CLI client for the Yuki bookkeeping SOAP API

Project description

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

cargo install yuki-cli

Or via pip:

pip install yuki-cli

From source:

make install

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

yuki vat returns                          # List all VAT return periods
yuki vat returns --year 2025              # Filter by year
yuki vat codes                            # List active VAT codes

yuki invoices list --invoice-type purchase # Outstanding purchase invoices
yuki invoices show <transaction-id>       # Transaction details
yuki invoices document <transaction-id>   # Document linked to a transaction

yuki contacts search "Hetzner"            # Search contacts
yuki contacts list                        # List all suppliers and customers

yuki accounts balance --account 11001 --period 2025-Q1
yuki accounts transactions --account 11001 --period 2025-Q1
yuki accounts scheme                      # Chart of accounts (GL scheme)
yuki accounts revenue --period 2025-Q1    # Net revenue for a period
yuki accounts start-balance --year 2025   # Opening balances per GL account

yuki projects list                        # List all projects
yuki projects balance <code> --period 2025  # Project balance

yuki documents list --folder inkoop       # List documents in a folder
yuki documents search "factuur"           # Full-text search
yuki documents exists --amount 7.28 --date 2025-03  # Check if invoice exists

yuki admin list                           # List administrations
yuki admin switch <name>                  # Change default administration

Gap analysis

yuki check btw 2025-Q4                    # VAT period check: outstanding items
yuki check unmatched --period 2026-Q1     # Bank debits without matching invoices
yuki check outstanding <reference>        # Check if a reference is still outstanding

Uploading

yuki upload file invoice.pdf                           # Upload to uitzoeken (auto-sorted)
yuki upload file invoice.pdf --folder inkoop            # Upload to specific folder
yuki upload file invoice.pdf --amount 114.27 \
  --category 45100 --payment-method 4 \
  --remarks "Hosting"                                   # Upload with metadata

yuki upload categories                                  # List cost category IDs
yuki upload payment-methods                             # List payment method IDs

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 year
  • 2025-Q1 — quarter
  • 2025-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:

api_key = "your-api-key"
default_admin = "company_name"

# Skip these counterparties in `check unmatched` (case-insensitive substring match)
unmatched_ignore = [
  "Belastingdienst",
  "ING bankkosten",
]

[administrations.company_name]
domain_id = "domain-uuid"
admin_id = "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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yuki_cli-0.1.1.tar.gz (52.6 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

yuki_cli-0.1.1-py3-none-manylinux_2_28_x86_64.whl (2.6 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ x86-64

yuki_cli-0.1.1-py3-none-manylinux_2_28_aarch64.whl (2.4 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ ARM64

yuki_cli-0.1.1-py3-none-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

yuki_cli-0.1.1-py3-none-macosx_10_12_x86_64.whl (2.5 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file yuki_cli-0.1.1.tar.gz.

File metadata

  • Download URL: yuki_cli-0.1.1.tar.gz
  • Upload date:
  • Size: 52.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for yuki_cli-0.1.1.tar.gz
Algorithm Hash digest
SHA256 6db5908a71bf0c87f05738dd246245afa7e5a63def7b63670c774b582b304286
MD5 5bfb4d7558a35b0c7359a5c497386c70
BLAKE2b-256 778c9f1b4454a84bc6003ef5002ae710d898fb5dc90407c93b23495ae48eec23

See more details on using hashes here.

File details

Details for the file yuki_cli-0.1.1-py3-none-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for yuki_cli-0.1.1-py3-none-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c80e51e6e4c9e7a9bb90918533ae8226a8ccc0e056ed98f8ca31102c5461c976
MD5 7cae98586335714d821a08401ce9e69d
BLAKE2b-256 979424ff6b8a89d30ce0feb09b4df18ebdacbbf9dbc52052e7a04743184c1c37

See more details on using hashes here.

File details

Details for the file yuki_cli-0.1.1-py3-none-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for yuki_cli-0.1.1-py3-none-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 466f9f43dd37076060bb34ec4456f188a0e5ea33651c2c1ddf98b1157dfd99ff
MD5 d85e4c0a18a6ecac75dc9d86510654a3
BLAKE2b-256 a0b6801af9a9e08ec2e0467fc41bdb84893590e961b1be8224fdd75f95095a0f

See more details on using hashes here.

File details

Details for the file yuki_cli-0.1.1-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for yuki_cli-0.1.1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cddcc3856e4a894ae2e45de7f2341438535001731249e6888498a4055b4f3435
MD5 786732f5f595624847d8d3abb4f89d96
BLAKE2b-256 0ab98c4e2e8102ac7d3842ad83a92cea04cec5692d442f88ecfc7b522a107617

See more details on using hashes here.

File details

Details for the file yuki_cli-0.1.1-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for yuki_cli-0.1.1-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1d14706dc0b8968d19f04270af202c57d55d90e026ee47339dbf1bbf33457224
MD5 a1e206b345fa9a6d541bd9f21c2d73d5
BLAKE2b-256 47d152e1ec6db9160fe1848f47c8d26fdfd59b0c1168efc251724bfca81e924c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page