LedgerBee Developer
  • Getting started
  • Conventions
  • Products
  • API Reference
Information
Accounts
    List accountsget
API Key
    Get current API keyget
Company
    Get company detailsget
Customers
    List customersgetCreate a customerpostGet a single customergetUpdate a customerpatchList a customer's contactsgetList a customer's departmentsgetList customer groupsget
Dimensions
    List all dimensionsgetCreate a new dimension categorypostGet a single dimension by IDgetUpdate a dimension categoryputDelete a dimension categorydeleteCreate a new dimension valuepostUpdate a dimension valueputDelete a dimension valuedelete
Document Templates
    List document templatesget
Journal Categories
    List journal categoriesget
Journal Entries
    Create multiple journal entries in batch (DEPRECATED — migrate to v2)postList journal entriesgetCreate a single journal entry (DEPRECATED — use POST /api/v2/journal-entries)postGet a single journal entrygetUpdate a journal entry — correct the reference and/or set your external system idpatchGet attachments for a journal entrygetReverse posted journal entries in batchpostReverse a posted journal entrypost
MCP
    LedgerBee Developer MCP Serverpost
Meters
    List meter subscriptions by IDgetReport usagepostList meter subscriptions by nameget
Product Groups
    List product groupsgetCreate a product grouppostGet a product groupgetDelete a product groupdeleteUpdate a product grouppatch
Product Prices
    Create a product pricepostGet a product pricegetDelete a product pricedeleteUpdate a product pricepatchActivate a product pricepostArchive a product pricepostDisable a product pricepostSet a price as the product defaultpost
Products
    List productsgetCreate a productpostGet a productgetDelete a productdeleteUpdate a productpatch
Projects
    List all projectsgetIdempotent project upsertputCreate a projectpostGet a projectgetUpdate a projectputGet project profitgetAdd a subprojectpostUpdate a subprojectputDelete a subprojectdelete
Subscriptions
    List customer subscriptionsgetAssign a subscription to a customerpostGet a customer subscription by its stable idgetUpdate a customer subscriptionpatchList a subscription’s pending scheduled changesgetCancel a single pending scheduled changedeleteCancel a customer subscriptionpostList subscription plansgetArchive a subscription planpost
VAT Codes
    List VAT codesget
Webhook Endpoints
    List webhook endpointsgetCreate a webhook endpointpostRetrieve a webhook endpointgetUpdate a webhook endpointputDelete a webhook endpointdeleteRoll the signing secretpostSend a test eventpost
Portal SSO
    Published RP signing keys (JWKS) for a tenant's private_key_jwt SSOgetMint a customer-portal SSO handoff referencepostProvision a customer + grant portal access (partner JIT provisioning)postRevoke (force-refresh) a user's customer-portal sessionspost
Credit Notes
    List credit notesgetCreate a credit notepostGet a credit note by IDgetGet the delivery status of a credit notegetDownload the credit note PDFgetSend a credit note to the customerpost
Payment Methods
    List saved payment methods for a customergetApply a payment method to all active subscriptions for a customerpostCancel a saved card on the payment providerdeleteUnassign a payment method from a customerdeleteGenerate a link for the customer to save a card for future paymentspostSet a saved payment method as the customer defaultput
Draft Journal Entries
    Create multiple draft journal entries in batchpostList draft journal entriesgetCreate a draft journal entrypostGet a single draft journal entrygetDelete a draft journal entrydeleteBook a draft journal entrypost
Invoices
    List invoicesgetCreate a draft invoicepostGet an invoice by IDgetGet the delivery status of an invoicegetDownload the invoice PDFgetSend an invoice to the customerpost
Order Confirmations
    List order confirmationsgetCreate a draft order confirmationpostGet an order confirmation by idgetUpdate a draft order confirmationpatchConvert an order confirmation into an invoicepostDownload an order confirmation as PDFgetSend an order confirmationpost
Portal Plans
    List the full plan cataloguegetGet one plan by idgetResolve the gated pricing catalogue for an identified buyer (partner display)post
Quotes
    List quotesgetCreate a draft quotepostGet a quote by idgetUpdate a draft quotepatchConvert a quotepostDownload a quote as PDFgetSend a quotepost
Vendors
    List vendorsgetCreate a vendorpostList vendor contactsgetList vendor departmentsgetList vendor groupsget
Draft Journal Entries (v2)
    Create draft journal entries in batch (v2)postList draft journal entries (v2)getCreate a draft journal entry (v2)postGet a single draft journal entry (v2)getDelete a draft journal entry (v2)deleteUpdate a draft journal entry (v2)patchBook a draft journal entry (v2)post
Journal Entries (v2)
    Create a journal entry (v2)postCreate journal entries in batch (v2)post
Schemas
LedgerBee Public API
LedgerBee Public API

Draft Journal Entries

Download schema

deprecated

Create multiple draft journal entries in batch

POST
https://api.ledgerbee.com/api
/v1/draft-journal-batches
x-api-key (header)
or
OAuth 2.0

Creates multiple draft journal entries in a single transaction. All entries are committed together — if any entry fails, the entire batch is rolled back.

DEPRECATED — sunset on 2026-11-08 (RFC 8594; every response carries Deprecation/Sunset/Link headers). Migrate to POST /api/v2/draft-journal-batches.

Create multiple draft journal entries in batch › Request Body

CreateDraftJournalEntryBatchRequest
​CreateDraftJournalEntryRequest[] · minItems: 1 · maxItems: 100 · required

Array of draft journal entries to create (1-100 entries per batch)

Create multiple draft journal entries in batch › Responses

Batch of draft journal entries created successfully

CreateDraftJournalEntryBatchResponse
totalCreated
​number · required

Number of draft entries successfully created

Example: 5
​DraftJournalEntryResponse[] · required

Details of all created draft journal entries

POST/v1/draft-journal-batches
curl https://api.ledgerbee.com/api/v1/draft-journal-batches \ --request POST \ --header 'Content-Type: application/json' \ --header 'x-api-key: <api-key>' \ --data '{ "entries": [ { "accountId": "550e8400-e29b-41d4-a716-446655440000", "contraAccountId": "550e8400-e29b-41d4-a716-446655440001", "date": "2026-01-15", "amount": 1000, "entryType": "journal", "type": "debit", "description": "Office supplies purchase", "reference": "REF-2026-001", "currency": "DKK", "customerId": "550e8400-e29b-41d4-a716-446655440002", "vendorId": "550e8400-e29b-41d4-a716-446655440003", "tagIds": [ "550e8400-e29b-41d4-a716-446655440003" ], "vatCodeId": "550e8400-e29b-41d4-a716-446655440000", "attachments": [ { "filename": "invoice.pdf", "content": "JVBERi0xLjQKJeLjz9MKMyAwIG9iago8PC...", "mimeType": "application/pdf" } ], "splitEntries": [ { "accountId": "550e8400-e29b-41d4-a716-446655440000", "type": "debit", "amount": 500, "vatCodeId": "550e8400-e29b-41d4-a716-446655440000", "description": "Consulting hours — March", "tagIds": [ "550e8400-e29b-41d4-a716-446655440003" ] } ], "externalSystemId": "erp-7f3a2c91" } ] }'
Example Request Body
{ "entries": [ { "accountId": "550e8400-e29b-41d4-a716-446655440000", "contraAccountId": "550e8400-e29b-41d4-a716-446655440001", "date": "2026-01-15", "amount": 1000, "entryType": "journal", "type": "debit", "description": "Office supplies purchase", "reference": "REF-2026-001", "currency": "DKK", "customerId": "550e8400-e29b-41d4-a716-446655440002", "vendorId": "550e8400-e29b-41d4-a716-446655440003", "tagIds": [ "550e8400-e29b-41d4-a716-446655440003" ], "vatCodeId": "550e8400-e29b-41d4-a716-446655440000", "attachments": [ { "filename": "invoice.pdf", "content": "JVBERi0xLjQKJeLjz9MKMyAwIG9iago8PC...", "mimeType": "application/pdf" } ], "splitEntries": [ { "accountId": "550e8400-e29b-41d4-a716-446655440000", "type": "debit", "amount": 500, "vatCodeId": "550e8400-e29b-41d4-a716-446655440000", "description": "Consulting hours — March", "tagIds": [ "550e8400-e29b-41d4-a716-446655440003" ] } ], "externalSystemId": "erp-7f3a2c91" } ] }
json
Example Responses
{ "totalCreated": 5, "entries": [ { "id": "550e8400-e29b-41d4-a716-446655440000", "date": "2026-01-15", "documentDate": "2026-01-15", "amount": 1000, "currency": "DKK", "description": "Office supplies purchase", "reference": "REF-2026-001", "externalSystemId": "erp-7f3a2c91", "journalType": "JOURNAL_ENTRY", "type": "debit", "accountId": "550e8400-e29b-41d4-a716-446655440000", "contraAccountId": "550e8400-e29b-41d4-a716-446655440001", "customerId": "550e8400-e29b-41d4-a716-446655440002", "vendorId": "550e8400-e29b-41d4-a716-446655440003", "vatCodeId": "550e8400-e29b-41d4-a716-446655440000", "tagIds": [ "string" ], "documentRefs": [ "string" ], "splitEntries": [ { "accountId": "550e8400-e29b-41d4-a716-446655440000", "type": "debit", "amount": 500, "vatCodeId": "550e8400-e29b-41d4-a716-446655440000", "description": "Consulting hours — March", "tagIds": [ "string" ] } ], "status": "DRAFT", "createdAt": "2026-01-15T10:30:00.000Z", "updatedAt": "2026-01-15T10:30:00.000Z" } ] }
json
application/json

deprecated

List draft journal entries

GET
https://api.ledgerbee.com/api
/v1/draft-journal-entries
x-api-key (header)
or
OAuth 2.0

Retrieves a paginated list of draft journal entries created via the public API, with optional filtering.

DEPRECATED — sunset on 2026-11-08 (RFC 8594; every response carries Deprecation/Sunset/Link headers). Migrate to the v2 draft endpoints under /api/v2/draft-journal-entries.

List draft journal entries › query Parameters

page
​number · min: 1

Page number (1-indexed)

Default: 1
limit
​number · min: 1 · max: 100

Maximum items per page

Default: 25
fromDate
​string

Only include drafts on or after this date (YYYY-MM-DD)

Example: 2026-01-01
toDate
​string

Only include drafts on or before this date (YYYY-MM-DD)

Example: 2026-01-31
accountId
​string · uuid

Filter by account ID (matches any draft line on this account)

customerId
​string · uuid

Filter by customer ID

vendorId
​string · uuid

Filter by vendor ID

journalType
​string · enum

Filter by journal type

Enum values:
JOURNAL_ENTRY
SUPPLIER_INVOICE
SUPPLIER_PAYMENT
CUSTOMER_INVOICE
CUSTOMER_PAYMENT
CUSTOMER_REMINDER
CURRENCY_REVALUATION
VAT_SETTLEMENT
minAmount
​number

Only include drafts with an amount greater than or equal to this value (inclusive).

Example: 100
maxAmount
​number

Only include drafts with an amount less than or equal to this value (inclusive).

Example: 10000
externalSystemId
​string · maxLength: 255

Exact-match filter on your own system's id. Not unique — several drafts may share one id, so expect zero or more results.

Example: erp-7f3a2c91
search
​string

Free-text search in description and reference fields

List draft journal entries › Responses

Draft journal entries retrieved successfully

ListDraftJournalEntriesResponse
​DraftJournalEntryResponse[] · required

List of draft journal entries

total
​number · required

Total number of matching drafts

Example: 42
page
​number · required

Current page number

Example: 1
limit
​number · required

Items per page

Example: 25
totalPages
​number · required

Total number of pages

Example: 2
GET/v1/draft-journal-entries
curl https://api.ledgerbee.com/api/v1/draft-journal-entries \ --header 'x-api-key: <api-key>'
Example Responses
{ "data": [ { "id": "550e8400-e29b-41d4-a716-446655440000", "date": "2026-01-15", "documentDate": "2026-01-15", "amount": 1000, "currency": "DKK", "description": "Office supplies purchase", "reference": "REF-2026-001", "externalSystemId": "erp-7f3a2c91", "journalType": "JOURNAL_ENTRY", "type": "debit", "accountId": "550e8400-e29b-41d4-a716-446655440000", "contraAccountId": "550e8400-e29b-41d4-a716-446655440001", "customerId": "550e8400-e29b-41d4-a716-446655440002", "vendorId": "550e8400-e29b-41d4-a716-446655440003", "vatCodeId": "550e8400-e29b-41d4-a716-446655440000", "tagIds": [ "string" ], "documentRefs": [ "string" ], "splitEntries": [ { "accountId": "550e8400-e29b-41d4-a716-446655440000", "type": "debit", "amount": 500, "vatCodeId": "550e8400-e29b-41d4-a716-446655440000", "description": "Consulting hours — March", "tagIds": [ "string" ] } ], "status": "DRAFT", "createdAt": "2026-01-15T10:30:00.000Z", "updatedAt": "2026-01-15T10:30:00.000Z" } ], "total": 42, "page": 1, "limit": 25, "totalPages": 2 }
json
application/json

deprecated

Create a draft journal entry

POST
https://api.ledgerbee.com/api
/v1/draft-journal-entries
x-api-key (header)
or
OAuth 2.0

Creates a draft journal entry that can be reviewed before being booked as a real posted journal entry. Accepts the same fields as the regular journal entry endpoint. The posting period is not validated at creation time.

DEPRECATED — sunset on 2026-11-08 (RFC 8594; every response carries Deprecation/Sunset/Link headers). Migrate to the v2 draft endpoints under /api/v2/draft-journal-entries.

Create a draft journal entry › Request Body

CreateDraftJournalEntryRequest
accountId
​string · required

Primary account ID (UUID). Cannot be a heading or total account. For typed entries (supplier_invoice, customer_invoice, etc.), must have appropriate account classification.

Example: 550e8400-e29b-41d4-a716-446655440000
date
​string · required

Date of the journal entry in YYYY-MM-DD format

Example: 2026-01-15
amount
​number · required

Amount of the transaction (must be positive)

Example: 1000
contraAccountId
​string

Contra account ID (UUID). Optional for drafts — partial drafts (primary line only) are allowed and must be completed in the platform UI before booking. Cannot be a heading or total account.

Example: 550e8400-e29b-41d4-a716-446655440001
entryType
​string · enum

Entry type determines the journal type and enforces account classification rules. Account classification requirements: supplier_invoice: account=EXPENSE|ASSET, contraAccount=LIABILITY; supplier_payment: account=LIABILITY, contraAccount=ASSET; customer_invoice: account=ASSET, contraAccount=REVENUE; customer_payment: account=ASSET, contraAccount=ASSET; journal: no restrictions. Legacy values "invoice" and "payment" map to supplier types.

Enum values:
journal
invoice
payment
supplier_invoice
supplier_payment
customer_invoice
customer_payment
Example: supplier_invoice
Default: journal
type
​string · enum

Transaction type (debit or credit)

Enum values:
debit
credit
Example: debit
Default: debit
description
​string

Description of the journal entry

Example: Office supplies purchase
reference
​string

Reference number or identifier

Example: REF-2026-001
currency
​string

Currency code (defaults to DKK)

Example: DKK
Default: DKK
customerId
​string

Customer ID (UUID) for customer-related entries

Example: 550e8400-e29b-41d4-a716-446655440002
vendorId
​string

Vendor ID (UUID). Required for supplier_invoice / supplier_payment entry types, and for any posting that touches an accounts-payable control account.

Example: 550e8400-e29b-41d4-a716-446655440003
tagIds
​string[]

Tag/Dimension IDs to attach to the journal entry

Example: ["550e8400-e29b-41d4-a716-446655440003"]
vatCodeId
​string

VAT/Tax code ID (UUID). Applied to the primary account unless split entries are used.

Example: 550e8400-e29b-41d4-a716-446655440000
​AttachmentRequest[] · maxItems: 10

File attachments (base64-encoded). Maximum 10 attachments per entry. Total request size limit is 15MB.

​DraftSplitEntryLine[] · minItems: 2 · maxItems: 50

Split entry lines for multi-account drafts. Each line may omit accountId to act as a placeholder; the draft is persisted with NULL on those lines and the user completes them in the platform UI. Booking still requires every line to carry a real account and the entry to balance.

externalSystemId
​string · maxLength: 255

Your own system's id for this draft. Carried onto the booked journal entry. Not unique — several drafts/entries may share one id. Filter the list endpoint by externalSystemId.

Example: erp-7f3a2c91

Create a draft journal entry › Responses

Draft journal entry created successfully

DraftJournalEntryResponse
id
​string · required

Draft journal entry ID

Example: 550e8400-e29b-41d4-a716-446655440000
date
​string · required

Date in YYYY-MM-DD format

Example: 2026-01-15
amount
​number · required

Denormalized amount in base/functional currency (e.g. DKK). Computed as MAX(debitTotal, creditTotal) from lines, converted via exchangeRate.

Example: 1000
currency
​string · required

Currency code

Example: DKK
journalType
​string · required

Journal type

Example: JOURNAL_ENTRY
status
​string · required

Always "DRAFT" for draft journal entries

Example: DRAFT
createdAt
​string · required

Creation timestamp

Example: 2026-01-15T10:30:00.000Z
updatedAt
​string · required

Last update timestamp

Example: 2026-01-15T10:30:00.000Z
documentDate
​string

Document date (date on the invoice/voucher). Null when not set.

Example: 2026-01-15
description
​string

Description

Example: Office supplies purchase
reference
​string

Reference number

Example: REF-2026-001
externalSystemId
​string | null

Your own system's id for this draft, when set. Not unique. null when unset or cleared.

Example: erp-7f3a2c91
type
​string

Transaction type (debit or credit)

Example: debit
accountId
​string

Primary account ID

Example: 550e8400-e29b-41d4-a716-446655440000
contraAccountId
​string

Contra account ID

Example: 550e8400-e29b-41d4-a716-446655440001
customerId
​string

Customer ID

Example: 550e8400-e29b-41d4-a716-446655440002
vendorId
​string

Vendor ID

Example: 550e8400-e29b-41d4-a716-446655440003
vatCodeId
​string

VAT/Tax code ID

Example: 550e8400-e29b-41d4-a716-446655440000
tagIds
​string[]

Tag/Dimension IDs

documentRefs
​string[]

Document IDs attached to the draft

​DraftSplitEntryLineResponse[]

Split entry lines

POST/v1/draft-journal-entries
curl https://api.ledgerbee.com/api/v1/draft-journal-entries \ --request POST \ --header 'Content-Type: application/json' \ --header 'x-api-key: <api-key>' \ --data '{ "accountId": "550e8400-e29b-41d4-a716-446655440000", "contraAccountId": "550e8400-e29b-41d4-a716-446655440001", "date": "2026-01-15", "amount": 1000, "entryType": "journal", "type": "debit", "description": "Office supplies purchase", "reference": "REF-2026-001", "currency": "DKK", "customerId": "550e8400-e29b-41d4-a716-446655440002", "vendorId": "550e8400-e29b-41d4-a716-446655440003", "tagIds": [ "550e8400-e29b-41d4-a716-446655440003" ], "vatCodeId": "550e8400-e29b-41d4-a716-446655440000", "attachments": [ { "filename": "invoice.pdf", "content": "JVBERi0xLjQKJeLjz9MKMyAwIG9iago8PC...", "mimeType": "application/pdf" } ], "splitEntries": [ { "accountId": "550e8400-e29b-41d4-a716-446655440000", "type": "debit", "amount": 500, "vatCodeId": "550e8400-e29b-41d4-a716-446655440000", "description": "Consulting hours — March", "tagIds": [ "550e8400-e29b-41d4-a716-446655440003" ] } ], "externalSystemId": "erp-7f3a2c91" }'
Example Request Body
{ "accountId": "550e8400-e29b-41d4-a716-446655440000", "contraAccountId": "550e8400-e29b-41d4-a716-446655440001", "date": "2026-01-15", "amount": 1000, "entryType": "journal", "type": "debit", "description": "Office supplies purchase", "reference": "REF-2026-001", "currency": "DKK", "customerId": "550e8400-e29b-41d4-a716-446655440002", "vendorId": "550e8400-e29b-41d4-a716-446655440003", "tagIds": [ "550e8400-e29b-41d4-a716-446655440003" ], "vatCodeId": "550e8400-e29b-41d4-a716-446655440000", "attachments": [ { "filename": "invoice.pdf", "content": "JVBERi0xLjQKJeLjz9MKMyAwIG9iago8PC...", "mimeType": "application/pdf" } ], "splitEntries": [ { "accountId": "550e8400-e29b-41d4-a716-446655440000", "type": "debit", "amount": 500, "vatCodeId": "550e8400-e29b-41d4-a716-446655440000", "description": "Consulting hours — March", "tagIds": [ "550e8400-e29b-41d4-a716-446655440003" ] } ], "externalSystemId": "erp-7f3a2c91" }
json
Example Responses
{ "id": "550e8400-e29b-41d4-a716-446655440000", "date": "2026-01-15", "documentDate": "2026-01-15", "amount": 1000, "currency": "DKK", "description": "Office supplies purchase", "reference": "REF-2026-001", "externalSystemId": "erp-7f3a2c91", "journalType": "JOURNAL_ENTRY", "type": "debit", "accountId": "550e8400-e29b-41d4-a716-446655440000", "contraAccountId": "550e8400-e29b-41d4-a716-446655440001", "customerId": "550e8400-e29b-41d4-a716-446655440002", "vendorId": "550e8400-e29b-41d4-a716-446655440003", "vatCodeId": "550e8400-e29b-41d4-a716-446655440000", "tagIds": [ "string" ], "documentRefs": [ "string" ], "splitEntries": [ { "accountId": "550e8400-e29b-41d4-a716-446655440000", "type": "debit", "amount": 500, "vatCodeId": "550e8400-e29b-41d4-a716-446655440000", "description": "Consulting hours — March", "tagIds": [ "string" ] } ], "status": "DRAFT", "createdAt": "2026-01-15T10:30:00.000Z", "updatedAt": "2026-01-15T10:30:00.000Z" }
json
application/json

deprecated

Get a single draft journal entry

GET
https://api.ledgerbee.com/api
/v1/draft-journal-entries/{id}
x-api-key (header)
or
OAuth 2.0

Retrieves a draft journal entry by ID.

DEPRECATED — sunset on 2026-11-08 (RFC 8594; every response carries Deprecation/Sunset/Link headers). Migrate to the v2 draft endpoints under /api/v2/draft-journal-entries.

Get a single draft journal entry › path Parameters

id
​string · required

Draft journal entry ID (UUID)

Get a single draft journal entry › Responses

Draft journal entry retrieved successfully

DraftJournalEntryResponse
id
​string · required

Draft journal entry ID

Example: 550e8400-e29b-41d4-a716-446655440000
date
​string · required

Date in YYYY-MM-DD format

Example: 2026-01-15
amount
​number · required

Denormalized amount in base/functional currency (e.g. DKK). Computed as MAX(debitTotal, creditTotal) from lines, converted via exchangeRate.

Example: 1000
currency
​string · required

Currency code

Example: DKK
journalType
​string · required

Journal type

Example: JOURNAL_ENTRY
status
​string · required

Always "DRAFT" for draft journal entries

Example: DRAFT
createdAt
​string · required

Creation timestamp

Example: 2026-01-15T10:30:00.000Z
updatedAt
​string · required

Last update timestamp

Example: 2026-01-15T10:30:00.000Z
documentDate
​string

Document date (date on the invoice/voucher). Null when not set.

Example: 2026-01-15
description
​string

Description

Example: Office supplies purchase
reference
​string

Reference number

Example: REF-2026-001
externalSystemId
​string | null

Your own system's id for this draft, when set. Not unique. null when unset or cleared.

Example: erp-7f3a2c91
type
​string

Transaction type (debit or credit)

Example: debit
accountId
​string

Primary account ID

Example: 550e8400-e29b-41d4-a716-446655440000
contraAccountId
​string

Contra account ID

Example: 550e8400-e29b-41d4-a716-446655440001
customerId
​string

Customer ID

Example: 550e8400-e29b-41d4-a716-446655440002
vendorId
​string

Vendor ID

Example: 550e8400-e29b-41d4-a716-446655440003
vatCodeId
​string

VAT/Tax code ID

Example: 550e8400-e29b-41d4-a716-446655440000
tagIds
​string[]

Tag/Dimension IDs

documentRefs
​string[]

Document IDs attached to the draft

​DraftSplitEntryLineResponse[]

Split entry lines

GET/v1/draft-journal-entries/{id}
curl https://api.ledgerbee.com/api/v1/draft-journal-entries/:id \ --header 'x-api-key: <api-key>'
Example Responses
{ "id": "550e8400-e29b-41d4-a716-446655440000", "date": "2026-01-15", "documentDate": "2026-01-15", "amount": 1000, "currency": "DKK", "description": "Office supplies purchase", "reference": "REF-2026-001", "externalSystemId": "erp-7f3a2c91", "journalType": "JOURNAL_ENTRY", "type": "debit", "accountId": "550e8400-e29b-41d4-a716-446655440000", "contraAccountId": "550e8400-e29b-41d4-a716-446655440001", "customerId": "550e8400-e29b-41d4-a716-446655440002", "vendorId": "550e8400-e29b-41d4-a716-446655440003", "vatCodeId": "550e8400-e29b-41d4-a716-446655440000", "tagIds": [ "string" ], "documentRefs": [ "string" ], "splitEntries": [ { "accountId": "550e8400-e29b-41d4-a716-446655440000", "type": "debit", "amount": 500, "vatCodeId": "550e8400-e29b-41d4-a716-446655440000", "description": "Consulting hours — March", "tagIds": [ "string" ] } ], "status": "DRAFT", "createdAt": "2026-01-15T10:30:00.000Z", "updatedAt": "2026-01-15T10:30:00.000Z" }
json
application/json

deprecated

Delete a draft journal entry

DELETE
https://api.ledgerbee.com/api
/v1/draft-journal-entries/{id}
x-api-key (header)
or
OAuth 2.0

Deletes a draft journal entry. Any attached documents are released back to the inbox (status reset to NEW).

DEPRECATED — sunset on 2026-11-08 (RFC 8594; every response carries Deprecation/Sunset/Link headers). Migrate to the v2 draft endpoints under /api/v2/draft-journal-entries.

Delete a draft journal entry › path Parameters

id
​string · required

Draft journal entry ID (UUID)

Delete a draft journal entry › Responses

Draft deleted successfully

No data returned
DELETE/v1/draft-journal-entries/{id}
curl https://api.ledgerbee.com/api/v1/draft-journal-entries/:id \ --request DELETE \ --header 'x-api-key: <api-key>'
Example Responses
No example specified for this content type

deprecated

Book a draft journal entry

POST
https://api.ledgerbee.com/api
/v1/draft-journal-entries/{id}/book
x-api-key (header)
or
OAuth 2.0

Converts a draft journal entry into a real posted journal entry. Validates the posting period and balance, then permanently deletes the draft.

DEPRECATED — sunset on 2026-11-08 (RFC 8594; every response carries Deprecation/Sunset/Link headers). Migrate to the v2 draft endpoints under /api/v2/draft-journal-entries.

Book a draft journal entry › path Parameters

id
​string · required

Draft journal entry ID (UUID)

Book a draft journal entry › Responses

Draft booked successfully — returns the created journal entry

JournalEntryResponse
id
​string · required

Unique identifier of the created journal entry

Example: 550e8400-e29b-41d4-a716-446655440000
entryNumber
​string · required

Entry number assigned to the journal entry

Example: JE-00001
date
​string · required

Date of the journal entry

Example: 2026-01-15
amount
​number · required

Amount of the transaction

Example: 1000
currency
​string · required

Currency code

Example: DKK
journalType
​string · required

Journal type

Example: JOURNAL_ENTRY
type
​string · required

Transaction type

Example: debit
status
​string · required

Status of the journal entry

Example: POSTED
accountId
​string · required

Primary account ID

Example: 550e8400-e29b-41d4-a716-446655440000
createdAt
​string · required

Timestamp when the entry was created

Example: 2026-01-15T10:30:00.000Z
documentDate
​string

Document date (date on the invoice/voucher). Null for legacy entries.

Example: 2026-01-15
description
​string

Description of the journal entry

Example: Office supplies purchase
reference
​string

Reference number

Example: REF-2026-001
externalSystemId
​string

Your own system's id for this entry, when set. Not unique — several entries may share one id.

Example: erp-7f3a2c91
contraAccountId
​string

Contra account ID

Example: 550e8400-e29b-41d4-a716-446655440001
customerId
​string

Customer ID if applicable

Example: 550e8400-e29b-41d4-a716-446655440002
vendorId
​string

Vendor ID if applicable

Example: 550e8400-e29b-41d4-a716-446655440003
vatCodeId
​string

VAT/Tax code ID if applicable

Example: 550e8400-e29b-41d4-a716-446655440000
tagIds
​string[]

Tag IDs attached to the entry

documentRefs
​string[]

Document IDs attached to the entry

POST/v1/draft-journal-entries/{id}/book
curl https://api.ledgerbee.com/api/v1/draft-journal-entries/:id/book \ --request POST \ --header 'x-api-key: <api-key>'
Example Responses
{ "id": "550e8400-e29b-41d4-a716-446655440000", "entryNumber": "JE-00001", "date": "2026-01-15", "documentDate": "2026-01-15", "amount": 1000, "currency": "DKK", "description": "Office supplies purchase", "reference": "REF-2026-001", "externalSystemId": "erp-7f3a2c91", "journalType": "JOURNAL_ENTRY", "type": "debit", "status": "POSTED", "accountId": "550e8400-e29b-41d4-a716-446655440000", "contraAccountId": "550e8400-e29b-41d4-a716-446655440001", "customerId": "550e8400-e29b-41d4-a716-446655440002", "vendorId": "550e8400-e29b-41d4-a716-446655440003", "vatCodeId": "550e8400-e29b-41d4-a716-446655440000", "tagIds": [ "string" ], "documentRefs": [ "string" ], "createdAt": "2026-01-15T10:30:00.000Z" }
json
application/json

Payment MethodsInvoices