Use the QuickBooks CLI from KosmoKrator to call QuickBooks tools headlessly, return JSON, inspect schemas, and automate workflows from coding agents, scripts, and CI.
QuickBooks can be configured headlessly with `kosmokrator integrations:configure quickbooks`.
# Install KosmoKrator first if it is not available on PATH.curl -fsSL https://raw.githubusercontent.com/OpenCompanyApp/kosmokrator/main/install.sh | bash# Configure and verify this integration.kosmokrator integrations:configure quickbooks --set access_token="$QUICKBOOKS_ACCESS_TOKEN" --enable --read allow --write ask --jsonkosmokrator integrations:doctor quickbooks --jsonkosmokrator integrations:status --json
Credentials
Authentication type: Manual OAuth tokenoauth2_manual_token. Configure credentials once, then use the same stored profile from
scripts, coding CLIs, Lua code mode, and the MCP gateway.
Key
Env var
Type
Required
Label
access_token
QUICKBOOKS_ACCESS_TOKEN
Secret secret
yes
Access Token
base_url
QUICKBOOKS_BASE_URL
URL url
no
Base URL
Call QuickBooks Headlessly
Use the generic call form when another coding CLI or script needs a stable universal interface.
Every function below can be called headlessly. The generic form is stable across all integrations;
the provider shortcut is shorter but specific to QuickBooks.
quickbooks.quickbooks_list_invoices
Read read
List QuickBooks invoices. Returns a list of invoices with key fields. Use the limit parameter to control page size.
Create a new QuickBooks invoice for a customer. Provide customer_id, line_items (array of items with DetailType, Amount, and SalesItemLineDetail), and an optional due_date.
List QuickBooks accounts (chart of accounts). Returns a list of accounts with name, type, classification, and balance. Use the limit parameter to control page size.
Create a new QuickBooks invoice for a customer. Provide customer_id, line_items (array of items with DetailType, Amount, and SalesItemLineDetail), and an optional due_date.
List QuickBooks accounts (chart of accounts). Returns a list of accounts with name, type, classification, and balance. Use the limit parameter to control page size.
Headless calls still follow the integration read/write permission policy. Configure read/write defaults
with integrations:configure. Add --force only for trusted automation that should bypass that policy.