LedgerBee Developer
  • Getting started
  • Conventions
  • Products
  • Configuration
  • API Reference
Information
Accounts
    List accountsget
API Key
    Get current API keyget
Company
    Get company detailsget
Credit Notes
    List credit notesgetCreate a credit notepostGet a credit notegetGet the delivery status of a credit notegetDownload the credit note PDFgetSend a credit note to the customerpost
Customers
    List customersgetCreate a customerpostGet a customergetUpdate a customerpatchList a customer's contactsgetList a customer's departmentsgetList customer groupsget
Dimensions
    List all dimensionsgetCreate a new dimension categorypostGet a dimensiongetUpdate a dimension categoryputDelete a dimension categorydeleteCreate a new dimension valuepostUpdate a dimension valueputDelete a dimension valuedelete
Document Templates
    List document templatesget
Draft Journal Entries
    Create multiple draft journal entries in batchpostList draft journal entriesgetCreate a draft journal entrypostGet a draft journal entrygetDelete a draft journal entrydeleteBook a draft journal entrypost
Draft Journal Entries (v2)
    Create draft journal entries in batch (v2)postList draft journal entries (v2)getCreate a draft journal entry (v2)postGet a draft journal entry (v2)getDelete a draft journal entry (v2)deleteUpdate a draft journal entry (v2)patchBook a draft journal entry (v2)post
Entitlements
    List entitlementsgetCreate an entitlementpostGet an entitlementgetDelete an entitlementdeleteUpdate an entitlementpatch
Invoices
    List invoicesgetCreate a draft invoicepostGet an invoicegetGet the delivery status of an invoicegetDownload the invoice PDFgetSend an invoice to the customerpost
Journal Categories
    List journal categoriesget
Journal Entries
    Create multiple journal entries in batchpostList journal entriesgetCreate a journal entrypostGet a 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
Journal Entries (v2)
    Create a journal entry (v2)postCreate journal entries in batch (v2)post
MCP
    LedgerBee Developer MCP Serverpost
Meters
    List meter subscriptions by IDgetReport usagepostList meter subscriptions by nameget
Order Confirmations
    List order confirmationsgetCreate a draft order confirmationpostGet an order confirmationgetUpdate a draft order confirmationpatchConvert an order confirmation into an invoicepostDownload an order confirmation as PDFgetSend an order confirmationpost
Payment Methods
    List saved payment methods for a customergetCancel 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
Portal Plans
    List the full plan cataloguegetGet a plangetResolve the gated pricing catalogue for an identified buyer (partner display)post
Portal SSO
    Get a tenant's SSO signing keys (JWKS)getMint a customer-portal SSO handoff referencepostProvision a customer + grant portal access (partner JIT provisioning)postRevoke (force-refresh) a user's customer-portal sessionspost
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 projectsgetCreate or update a project by external referenceputCreate a projectpostGet a projectgetUpdate a projectputGet project profitgetAdd a subprojectpostUpdate a subprojectputDelete a subprojectdelete
Quotes
    List quotesgetCreate a draft quotepostGet a quotegetUpdate a draft quotepatchConvert a quotepostDownload a quote as PDFgetSend a quotepost
Subscriptions
    List customer subscriptionsgetAssign a subscription to a customerpostGet a customer subscription by its stable idgetUpdate a customer subscriptionpatchRetry a failed card paymentpostList a subscription's pending scheduled changesgetCancel a single pending scheduled changedeleteCancel a customer subscriptionpostList subscription plansgetCreate a subscription planpostArchive a subscription planpost
Suppliers
    List suppliersgetCreate a supplierpostList supplier contactsgetList supplier departmentsgetList supplier groupsget
VAT Codes
    List VAT codesget
Vendors
    List vendorsgetCreate a vendorpostList vendor contactsgetList vendor departmentsgetList vendor groupsget
Webhook Endpoints
    List webhook endpointsgetCreate a webhook endpointpostRetrieve a webhook endpointgetUpdate a webhook endpointputDelete a webhook endpointdeleteRoll the signing secretpostSend a test eventpost
Schemas
LedgerBee Public API
LedgerBee Public API

Invoices

Download schema

List invoices

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

Returns a paginated list of invoices for your company, optionally filtered by status and customer.

Required Scope

  • invoices-read

List invoices › query Parameters

page
​number · min: 1

Page number (1-indexed)

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

Number of items per page

Example: 25
Default: 25
search
​string

Free-text search (invoice number, description)

status
​string · enum

Filter invoices by status

Enum values:
draft
scheduled
sending
sent
paid
partially_paid
cancelled
uncollectible
customerId
​string

Filter invoices for a specific customer

Example: 0197A943-2325-7829-B835-B6C71A293065

List invoices › Responses

Paginated list of invoices

PublicListInvoicesResponse
​PublicInvoiceListItem[] · required

Invoices on this page (line items omitted; GET one invoice for lines)

total
​number · required

Total invoices matching the query

Example: 42
page
​number · required

Current page (1-indexed)

Example: 1
limit
​number · required

Items per page

Example: 25
totalPages
​number · required

Total pages

Example: 2
GET/v1/invoices
curl https://api.ledgerbee.com/api/v1/invoices \ --header 'x-api-key: <api-key>'
Example Responses
{ "data": [ { "id": "0197A943-2325-7829-B835-B6C71A293065", "number": "number", "status": "sent", "date": "2024-01-15", "dueDate": "dueDate", "customerId": "customerId", "currency": "DKK", "subtotal": "2166.65", "vat": "541.66", "amount": "2708.31", "reference": "reference", "ourReference": "ourReference", "notes": "notes", "createdAt": "2024-01-15T10:30:00.000Z", "updatedAt": "2024-01-15T10:30:00.000Z" } ], "total": 42, "page": 1, "limit": 25, "totalPages": 2 }
json
application/json

Create a draft invoice

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

Creates a draft invoice. The invoice number is allocated at booking time (when sent), so a draft has no number yet.

Required Scope

  • invoices-write

Create a draft invoice › Headers

x-api-idempotency-key
​string · maxLength: 255

Optional idempotency key for safely retrying mutating requests.

Create a draft invoice › Request Body

PublicCreateInvoice
customerId
​string · required

Customer ID this invoice is for. Required — every invoice must reference a customer (this mirrors the gated app, which also requires a customer).

Example: 0197A943-2325-7829-B835-B6C71A293065
date
​string · required

Invoice date (ISO date, YYYY-MM-DD)

Example: 2024-01-15
​PublicCreateInvoiceLine[] · required

Invoice lines

customerDepartmentId
​string

Customer department ID (for EAN-based e-invoicing and address override)

Example: 0197A943-2325-7829-B835-B6C71A293065
customerContactId
​string

Customer contact ID (invoice recipient)

Example: 0197A943-2325-7829-B835-B6C71A293065
dueDate
​string

Due date for payment (ISO date). Derived from payment terms when omitted.

Example: 2024-02-15
currency
​string · minLength: 3 · maxLength: 3

Currency code (ISO 4217). Defaults to the company default currency.

Example: DKK
paymentTerms
​number

Payment terms in days

Example: 30
reference
​string

Reference / PO number ("PO-nr.")

Example: PO-12345
ourReference
​string

Our reference ("Vores ref.")

Example: Jane Doe
description
​string

Optional description of the invoice

Example: Monthly service invoice
notes
​string

Additional notes or comments

Example: Thank you for your business!

Create a draft invoice › Responses

Invoice created successfully

PublicInvoice
id
​string · required

Invoice ID

Example: 0197A943-2325-7829-B835-B6C71A293065
status
​string · enum · required

Invoice status

Enum values:
draft
scheduled
sending
sent
paid
partially_paid
cancelled
uncollectible
Example: sent
date
​string · required

Invoice date (ISO date)

Example: 2024-01-15
currency
​string · required

Currency code (ISO 4217)

Example: DKK
subtotal
​string · required

Subtotal before VAT (decimal string)

Example: 2166.65
vat
​string · required

VAT amount (decimal string)

Example: 541.66
amount
​string · required

Total amount including VAT (decimal string)

Example: 2708.31
​PublicInvoiceLine[] · required

Invoice lines

createdAt
​string · required

Creation timestamp (ISO)

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

Last update timestamp (ISO)

Example: 2024-01-15T10:30:00.000Z
number
​string | null

Invoice number. Null while the invoice is still a draft (allocated at booking).

dueDate
​string | null

Due date (ISO date)

customerId
​string | null

Customer ID

reference
​string | null

Reference / PO number

ourReference
​string | null

Our reference ("Vores ref.")

notes
​string | null

Additional notes

POST/v1/invoices
curl https://api.ledgerbee.com/api/v1/invoices \ --request POST \ --header 'Content-Type: application/json' \ --header 'x-api-key: <api-key>' \ --data '{ "customerId": "0197A943-2325-7829-B835-B6C71A293065", "customerDepartmentId": "0197A943-2325-7829-B835-B6C71A293065", "customerContactId": "0197A943-2325-7829-B835-B6C71A293065", "date": "2024-01-15", "dueDate": "2024-02-15", "currency": "DKK", "paymentTerms": 30, "reference": "PO-12345", "ourReference": "Jane Doe", "description": "Monthly service invoice", "notes": "Thank you for your business!", "lines": [ { "priceId": "0197A943-2325-7829-B835-B6C71A293065", "lineType": "subscription", "description": "Premium widget - Blue color", "quantity": 2, "unitPrice": "1083.32", "recognitionPeriodDays": 365 } ] }'
Example Request Body
{ "customerId": "0197A943-2325-7829-B835-B6C71A293065", "customerDepartmentId": "0197A943-2325-7829-B835-B6C71A293065", "customerContactId": "0197A943-2325-7829-B835-B6C71A293065", "date": "2024-01-15", "dueDate": "2024-02-15", "currency": "DKK", "paymentTerms": 30, "reference": "PO-12345", "ourReference": "Jane Doe", "description": "Monthly service invoice", "notes": "Thank you for your business!", "lines": [ { "priceId": "0197A943-2325-7829-B835-B6C71A293065", "lineType": "subscription", "description": "Premium widget - Blue color", "quantity": 2, "unitPrice": "1083.32", "recognitionPeriodDays": 365 } ] }
json
application/json
Example Responses
{ "id": "0197A943-2325-7829-B835-B6C71A293065", "number": "number", "status": "sent", "date": "2024-01-15", "dueDate": "dueDate", "customerId": "customerId", "currency": "DKK", "subtotal": "2166.65", "vat": "541.66", "amount": "2708.31", "reference": "reference", "ourReference": "ourReference", "notes": "notes", "lines": [ { "id": "0197A943-2325-7829-B835-B6C71A293065", "priceId": "priceId", "description": "description", "lineType": "subscription", "quantity": 2, "unitPrice": "1083.32", "totalPrice": "2166.65", "vatAmount": "vatAmount", "vatRate": "vatRate" } ], "createdAt": "2024-01-15T10:30:00.000Z", "updatedAt": "2024-01-15T10:30:00.000Z" }
json
application/json

Get an invoice

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

Retrieves a single invoice by its unique identifier. Returns 404 when the invoice does not exist in your company. For the rendered document, use the PDF endpoint.

Required Scope

  • invoices-read

Get an invoice › path Parameters

id
​string · required

Invoice ID

Get an invoice › Responses

The invoice

PublicInvoice
id
​string · required

Invoice ID

Example: 0197A943-2325-7829-B835-B6C71A293065
status
​string · enum · required

Invoice status

Enum values:
draft
scheduled
sending
sent
paid
partially_paid
cancelled
uncollectible
Example: sent
date
​string · required

Invoice date (ISO date)

Example: 2024-01-15
currency
​string · required

Currency code (ISO 4217)

Example: DKK
subtotal
​string · required

Subtotal before VAT (decimal string)

Example: 2166.65
vat
​string · required

VAT amount (decimal string)

Example: 541.66
amount
​string · required

Total amount including VAT (decimal string)

Example: 2708.31
​PublicInvoiceLine[] · required

Invoice lines

createdAt
​string · required

Creation timestamp (ISO)

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

Last update timestamp (ISO)

Example: 2024-01-15T10:30:00.000Z
number
​string | null

Invoice number. Null while the invoice is still a draft (allocated at booking).

dueDate
​string | null

Due date (ISO date)

customerId
​string | null

Customer ID

reference
​string | null

Reference / PO number

ourReference
​string | null

Our reference ("Vores ref.")

notes
​string | null

Additional notes

GET/v1/invoices/{id}
curl https://api.ledgerbee.com/api/v1/invoices/:id \ --header 'x-api-key: <api-key>'
Example Responses
{ "id": "0197A943-2325-7829-B835-B6C71A293065", "number": "number", "status": "sent", "date": "2024-01-15", "dueDate": "dueDate", "customerId": "customerId", "currency": "DKK", "subtotal": "2166.65", "vat": "541.66", "amount": "2708.31", "reference": "reference", "ourReference": "ourReference", "notes": "notes", "lines": [ { "id": "0197A943-2325-7829-B835-B6C71A293065", "priceId": "priceId", "description": "description", "lineType": "subscription", "quantity": 2, "unitPrice": "1083.32", "totalPrice": "2166.65", "vatAmount": "vatAmount", "vatRate": "vatRate" } ], "createdAt": "2024-01-15T10:30:00.000Z", "updatedAt": "2024-01-15T10:30:00.000Z" }
json
application/json

Get the delivery status of an invoice

GET
https://api.ledgerbee.com/api
/v1/invoices/{id}/delivery-status
x-api-key (header)
or
OAuth 2.0

Returns an aggregate send summary plus a per-attempt delivery log for the invoice.

Required Scope

  • invoices-read

Get the delivery status of an invoice › path Parameters

id
​string · required

Invoice ID

Get the delivery status of an invoice › Responses

Delivery status

PublicDeliveryStatusResponse
​object · required

Aggregate send summary

​PublicDeliveryLogEntry[] · required

Per-attempt delivery log entries

GET/v1/invoices/{id}/delivery-status
curl https://api.ledgerbee.com/api/v1/invoices/:id/delivery-status \ --header 'x-api-key: <api-key>'
Example Responses
{ "summary": { "sendCount": 2, "lastDeliveryType": "Email", "lastRecipientEmail": "lastRecipientEmail", "lastRecipientEan": "lastRecipientEan", "lastSentAt": "lastSentAt" }, "entries": [ { "id": "id", "status": "success", "deliveryType": "Email", "recipientEmail": "recipientEmail", "recipientEan": "recipientEan", "sentAt": "2024-01-15T10:30:00.000Z", "errorCode": "errorCode" } ] }
json
application/json

Download the invoice PDF

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

Streams the rendered invoice PDF. Pass draft=true to render a draft watermark version (generated on the fly).

Required Scope

  • invoices-read

Download the invoice PDF › path Parameters

id
​string · required

Invoice ID

Download the invoice PDF › query Parameters

draft
​boolean

Render a draft watermark version

Download the invoice PDF › Responses

Bad Request

statusCode
​number
timestamp
​string
path
​string
message
​string
GET/v1/invoices/{id}/pdf
curl https://api.ledgerbee.com/api/v1/invoices/:id/pdf \ --header 'x-api-key: <api-key>'
Example Responses
{ "statusCode": 400, "timestamp": "2025-10-09T15:07:32.736Z", "path": "/company", "message": "Bad Request" }
text
application/pdf

Send an invoice to the customer

POST
https://api.ledgerbee.com/api
/v1/invoices/{id}/send
x-api-key (header)
or
OAuth 2.0

Sends the invoice over the chosen delivery channel (Email, Sproom e-invoicing, or Manual). Sending books the invoice and allocates its number.

Required Scope

  • invoices-write

Send an invoice to the customer › path Parameters

id
​string · required

Invoice ID

Send an invoice to the customer › Headers

x-api-idempotency-key
​string · maxLength: 255

Optional idempotency key for safely retrying mutating requests.

Send an invoice to the customer › Request Body

PublicSendInvoice
deliveryType
​string · enum · required

Delivery channel

Enum values:
Email
Sproom
Manual
Leverandorservice
Example: Email
overrideEmail
​string

Override recipient email for this send only

overrideEanNumber
​string

Override EAN number for this send only

updateCustomerRecord
​boolean

Persist the override email / EAN onto the customer record

Default: false
documentTemplateId
​string

Override document template for PDF generation

Send an invoice to the customer › Responses

Invoice send accepted

PublicSendInvoiceResponse
success
​boolean · required

Whether the send was accepted

Example: true
deliveryType
​string · enum · required

The delivery channel the document was sent through

Enum values:
Email
Sproom
Manual
Leverandorservice
Example: Email
sproomDocumentId
​string | null

Sproom document ID when sent via e-invoicing

POST/v1/invoices/{id}/send
curl https://api.ledgerbee.com/api/v1/invoices/:id/send \ --request POST \ --header 'Content-Type: application/json' \ --header 'x-api-key: <api-key>' \ --data '{ "deliveryType": "Email", "overrideEmail": "string", "overrideEanNumber": "string", "updateCustomerRecord": false, "documentTemplateId": "string" }'
Example Request Body
{ "deliveryType": "Email", "overrideEmail": "string", "overrideEanNumber": "string", "updateCustomerRecord": false, "documentTemplateId": "string" }
json
application/json
Example Responses
{ "success": true, "deliveryType": "Email", "sproomDocumentId": "sproomDocumentId" }
json
application/json

EntitlementsJournal Categories