---
title: "Create a draft journal entry. Balance (DR=CR) is enforced; unbalanced entries are rejected. Does NOT post to ledger — call gl_postJournalEntry to post."
method: POST
path: "/api/v1/gl-createJournalEntry"
---

# Create a draft journal entry. Balance (DR=CR) is enforced; unbalanced entries are rejected. Does NOT post to ledger — call gl_postJournalEntry to post.

`POST /api/v1/gl-createJournalEntry`

## Request

- Base URL: `https://app.ledgerbeaver.com` (the document declares no server; this is the origin it was published from)
- URL: `https://app.ledgerbeaver.com/api/v1/gl-createJournalEntry`
- Auth: API key in header `X-API-Key`

## Request body

- object
  - `companyId` string, required
  - `entryDate` string, required
  - `description` string, required
  - `lines` string, required
  - `accountId` string, required
  - `debit` number, required
  - `credit` number, required
  - `sourceModule` string, required
  - `sourceId` string, required

## Response `200`

Successful response

- object
  - `content` object[]
    - `type` string
    - `text` string

## Other responses

- `401`: Unauthorized
- `429`: Rate limit exceeded

---

[API](https://skmtc.dev/ledgerbeaver/apis/ledgerbeaver-ai-api.md) · [All operations](https://skmtc.dev/ledgerbeaver/apis/ledgerbeaver-ai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ledgerbeaver/apis/ledgerbeaver-ai-api/revisions/cfd673927c46?raw)
