create_journal_entry
Create a journal entry. Validates double-entry (sum of debits must equal sum of credits). Pass status="Posted" to auto-post and update account balances; otherwise creates as Draft.
What create_journal_entry does
Creates a new journal entry in the organization. Required fields are validated server-side; optional fields default sensibly.
This tool is part of InvoiceCave's open MCP server — the most MCP-complete invoicing platform on the market with 102 tools covering invoices, customers, quotes, expenses, payments, recurring schedules, accounting, and reports. Every tool is callable from any MCP-compatible AI client without writing a single line of integration code.
How an AI uses create_journal_entry
Use when the AI needs to record something new — typically as the final step of a "set this up for me" workflow. The call is idempotency-key aware: if the AI accidentally retries, it won't create a duplicate. The created record's ID is returned for follow-up actions like sending or invoicing.
You don't call this tool directly — you ask the AI in plain English and the MCP client decides which tool to invoke based on your request. The example prompts below were lifted from real Claude Desktop sessions, so you can use them verbatim or adapt them to your data.
Parameters
create_journal_entry accepts 6 parameters — 1 required, 5 optional. The AI fills these in from your natural-language prompt; you never write them by hand.
| Parameter | Type | Required | Description |
|---|---|---|---|
| date | string | required | Entry date YYYY-MM-DD |
| reference | string | optional | Reference (e.g. invoice number) |
| notes | string | optional | — |
| currency | string | optional | — |
| status | enum | optional | Default: DraftDraftPosted |
| lines | array | optional | Account ID from chart of accounts |
Request example
Under the hood, your AI client sends a JSON-RPC 2.0 tools/call request to InvoiceCave's MCP endpoint at https://www.invoicecave.com/api/mcp/mcp. Here's what a create_journal_entry call looks like:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_journal_entry",
"arguments": {
"date": "2026-06-01",
"reference": "example",
"notes": "Thanks for your business",
"currency": "USD",
"status": "Draft"
}
}
}You won't write this yourself — it's shown so developers can see exactly what the MCP client generates. The arguments object maps 1:1 to the parameters above. Authentication is handled by the Authorization: Bearer header with your API key.
Example AI prompts
Type any of these into Claude Desktop, Claude Code, or Cursor — InvoiceCave's MCP server will route them to create_journal_entry automatically.
“Post a journal entry: $1,000 debit Cash, $1,000 credit Sales Revenue, dated today.”
Use it in 30 seconds
Related tools
More from the Chart of Accounts & Journals category.
list_accountsList chart of accounts. Optionally filter by type (Asset, Liability, Equity, Revenue, Expense).
list_journal_entriesList journal entries. Optionally filter by status (Draft, Posted, Void).
create_accountCreate a new account in the chart of accounts. Codes must be unique within the org.
update_accountUpdate an existing chart-of-accounts entry. Code uniqueness is enforced.
delete_accountDelete an account. Fails if it has any journal lines — deactivate via update_account isActive=false instead.
seed_chart_of_accountsSeed the org with a standard 39-account chart of accounts (Assets/Liabilities/Equity/Revenue/Expense). Fails if any accounts already exist.
post_journal_entryPost a Draft journal entry. Updates affected account balances. Cannot be undone — to reverse, use void_journal_entry.
void_journal_entryVoid a journal entry. If it was Posted, account balances are reversed. Voided entries cannot be edited.
FAQ — create_journal_entry
What is create_journal_entry?▾
create_journal_entry is one of 102 tools in InvoiceCave's MCP server. Creates a new journal entry in the organization. Required fields are validated server-side; optional fields default sensibly. It's invoked automatically when an AI client like Claude or Cursor decides the user's request maps to this action.
Which AI clients can call create_journal_entry?▾
Any MCP-compatible client. We've tested it with Claude Desktop, Claude Code, Cursor, Windsurf, and Codex. The MCP protocol is open, so any AI tool that speaks MCP can call this endpoint with a valid InvoiceCave API key.
Is calling create_journal_entry secure?▾
Yes. Every call is authenticated by the API key you mint in the dashboard, scoped to a single organization, rate-limited per key, and recorded in the audit log with source='mcp'. Sensitive fields (SMTP passwords, encryption keys) are never returned to the AI client.
What parameters does create_journal_entry take?▾
create_journal_entry accepts 6 parameters — 1 required (date) and 5 optional. The AI populates these from your plain-English prompt — see the parameter table and request example above.
Does create_journal_entry count against any quota?▾
MCP tool calls are unmetered on the free plan up to a generous monthly limit. Once you connect Stripe and start charging your customers, every call still counts against the same per-key rate limit but doesn't add to your bill.
Ready to wire this up?
Free plan — no credit card. 102 tools at your AI's disposal.