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

Order Confirmations

Download schema

List order confirmations

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

Returns a paginated list of order confirmations.

Filters

ParameterDescription
statusDisplay status: draft, sent, converted. Derived statuses are resolved server-side.
customerIdFilter to one customer.
page / limitPagination (defaults: page 1, limit 25, max limit 100).
sortBy / sortOrderSort field (e.g. date, documentNumber, amount, status) and direction. Defaults to newest first.

List order confirmations › query Parameters

page
​number · min: 1

Page number (1-indexed)

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

Items per page

Example: 25
Default: 25
status
​string

Filter by display status (draft/sent/converted). Derived statuses are resolved server-side.

customerId
​string

Filter by customer id

sortBy
​string

Sort field

Example: date
sortOrder
​string · enum

Sort order

Enum values:
ASC
DESC

List order confirmations › Responses

Paginated list of order confirmations

PublicListOrderConfirmationsResponse
​PublicOrderConfirmationListItem[] · required

List of order confirmations (line items omitted; GET one for lines)

total
​number · required

Total number of documents matching the query

Example: 42
page
​number · required

Current page number (1-indexed)

Example: 1
limit
​number · required

Maximum number of items per page

Example: 25
totalPages
​number · required

Total number of pages available

Example: 2
GET/v1/order-confirmations
curl https://api.ledgerbee.com/api/v1/order-confirmations \ --header 'x-api-key: <api-key>'
Example Responses
{ "data": [ { "id": "id", "status": {}, "displayStatus": {}, "documentNumber": "documentNumber", "date": "2026-06-11", "amount": "amount", "subtotal": "subtotal", "vat": "vat", "currency": "DKK", "reference": "reference", "ourReference": "ourReference", "notes": "notes", "customerId": "customerId", "sourceDocumentId": "sourceDocumentId", "convertedToInvoiceId": "convertedToInvoiceId", "sentAt": "sentAt", "createdAt": "createdAt", "updatedAt": "updatedAt" } ], "total": 42, "page": 1, "limit": 25, "totalPages": 2 }
json
application/json

Create a draft order confirmation

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

Creates a draft order confirmation.

  • The document number is not allocated here — it is assigned on send.
  • Totals (subtotal/vat/amount) are computed from the line items.

Create a draft order confirmation › Request Body

PublicCreateOrderConfirmation
customerId
​string · required

Customer this order confirmation is for

date
​string · required

Document date (ISO, YYYY-MM-DD)

Example: 2026-06-11
​PublicCreateOrderConfirmationLine[] · required
customerDepartmentId
​string

Customer department id

customerContactId
​string

Customer contact id ("Deres ref.")

currency
​string

Currency code

Example: DKK
reference
​string

PO number ("PO-nr.")

ourReference
​string

Our reference ("Vores ref.")

notes
​string

Notes shown on the document

Create a draft order confirmation › Responses

Order confirmation created

PublicOrderConfirmation
id
​string · required

Document identifier

status
​object · required

Stored lifecycle status (draft/sent)

displayStatus
​object · required

Status to display. Equals status except the derived "converted" state.

date
​string · required

Document date (ISO, YYYY-MM-DD)

Example: 2026-06-11
amount
​string · required

Total amount including VAT

subtotal
​string · required

Subtotal excluding VAT

vat
​string · required

Total VAT

currency
​string · required

Currency code

Example: DKK
createdAt
​string · required

Created timestamp (ISO)

updatedAt
​string · required

Updated timestamp (ISO)

​PublicOrderConfirmationLine[] · required
documentNumber
​string

Allocated document number (null until sent)

reference
​string

PO number ("PO-nr.")

ourReference
​string

Our reference ("Vores ref.")

notes
​string

Notes

customerId
​string

Customer id

sourceDocumentId
​string

Source document id (the quote this order confirmation was converted from)

convertedToInvoiceId
​string

Id of the invoice this order confirmation was converted into

sentAt
​string

Timestamp the document was sent (ISO)

POST/v1/order-confirmations
curl https://api.ledgerbee.com/api/v1/order-confirmations \ --request POST \ --header 'Content-Type: application/json' \ --header 'x-api-key: <api-key>' \ --data '{ "customerId": "customerId", "customerDepartmentId": "customerDepartmentId", "customerContactId": "customerContactId", "date": "2026-06-11", "currency": "DKK", "reference": "reference", "ourReference": "ourReference", "notes": "notes", "lines": [ { "priceId": "priceId", "description": "description", "lineType": "subscription", "quantity": 2, "unitPrice": "1000.00" } ] }'
Example Request Body
{ "customerId": "customerId", "customerDepartmentId": "customerDepartmentId", "customerContactId": "customerContactId", "date": "2026-06-11", "currency": "DKK", "reference": "reference", "ourReference": "ourReference", "notes": "notes", "lines": [ { "priceId": "priceId", "description": "description", "lineType": "subscription", "quantity": 2, "unitPrice": "1000.00" } ] }
json
Example Responses
{ "id": "id", "status": {}, "displayStatus": {}, "documentNumber": "documentNumber", "date": "2026-06-11", "amount": "amount", "subtotal": "subtotal", "vat": "vat", "currency": "DKK", "reference": "reference", "ourReference": "ourReference", "notes": "notes", "customerId": "customerId", "sourceDocumentId": "sourceDocumentId", "convertedToInvoiceId": "convertedToInvoiceId", "sentAt": "sentAt", "createdAt": "createdAt", "updatedAt": "updatedAt", "lines": [ { "id": "id", "description": "description", "lineType": "lineType", "quantity": 2, "unitPrice": "1000.00", "totalPrice": "2000.00", "vatRate": "25", "vatAmount": "vatAmount" } ] }
json
application/json

Get an order confirmation by id

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

Returns a single order confirmation, including its line items.

Get an order confirmation by id › path Parameters

id
​string · required

The order confirmation id

Get an order confirmation by id › Responses

The order confirmation

PublicOrderConfirmation
id
​string · required

Document identifier

status
​object · required

Stored lifecycle status (draft/sent)

displayStatus
​object · required

Status to display. Equals status except the derived "converted" state.

date
​string · required

Document date (ISO, YYYY-MM-DD)

Example: 2026-06-11
amount
​string · required

Total amount including VAT

subtotal
​string · required

Subtotal excluding VAT

vat
​string · required

Total VAT

currency
​string · required

Currency code

Example: DKK
createdAt
​string · required

Created timestamp (ISO)

updatedAt
​string · required

Updated timestamp (ISO)

​PublicOrderConfirmationLine[] · required
documentNumber
​string

Allocated document number (null until sent)

reference
​string

PO number ("PO-nr.")

ourReference
​string

Our reference ("Vores ref.")

notes
​string

Notes

customerId
​string

Customer id

sourceDocumentId
​string

Source document id (the quote this order confirmation was converted from)

convertedToInvoiceId
​string

Id of the invoice this order confirmation was converted into

sentAt
​string

Timestamp the document was sent (ISO)

GET/v1/order-confirmations/{id}
curl https://api.ledgerbee.com/api/v1/order-confirmations/:id \ --header 'x-api-key: <api-key>'
Example Responses
{ "id": "id", "status": {}, "displayStatus": {}, "documentNumber": "documentNumber", "date": "2026-06-11", "amount": "amount", "subtotal": "subtotal", "vat": "vat", "currency": "DKK", "reference": "reference", "ourReference": "ourReference", "notes": "notes", "customerId": "customerId", "sourceDocumentId": "sourceDocumentId", "convertedToInvoiceId": "convertedToInvoiceId", "sentAt": "sentAt", "createdAt": "createdAt", "updatedAt": "updatedAt", "lines": [ { "id": "id", "description": "description", "lineType": "lineType", "quantity": 2, "unitPrice": "1000.00", "totalPrice": "2000.00", "vatRate": "25", "vatAmount": "vatAmount" } ] }
json
application/json

Update a draft order confirmation

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

Replaces the editable fields and line items of a draft document.

Line items are replaced wholesale — send the full intended set. A converted document is read-only (SALES_DOCUMENT_LOCKED_CONVERTED).

Update a draft order confirmation › path Parameters

id
​string · required

The order confirmation id

Update a draft order confirmation › Request Body

PublicUpdateOrderConfirmation
customerId
​string · required

Customer this order confirmation is for

date
​string · required

Document date (ISO, YYYY-MM-DD)

Example: 2026-06-11
​PublicCreateOrderConfirmationLine[] · required
customerDepartmentId
​string

Customer department id

customerContactId
​string

Customer contact id ("Deres ref.")

currency
​string

Currency code

Example: DKK
reference
​string

PO number ("PO-nr.")

ourReference
​string

Our reference ("Vores ref.")

notes
​string

Notes shown on the document

status
​string

New stored status (validated against the document type: draft/sent for order confirmations).

Update a draft order confirmation › Responses

Order confirmation updated

PublicOrderConfirmation
id
​string · required

Document identifier

status
​object · required

Stored lifecycle status (draft/sent)

displayStatus
​object · required

Status to display. Equals status except the derived "converted" state.

date
​string · required

Document date (ISO, YYYY-MM-DD)

Example: 2026-06-11
amount
​string · required

Total amount including VAT

subtotal
​string · required

Subtotal excluding VAT

vat
​string · required

Total VAT

currency
​string · required

Currency code

Example: DKK
createdAt
​string · required

Created timestamp (ISO)

updatedAt
​string · required

Updated timestamp (ISO)

​PublicOrderConfirmationLine[] · required
documentNumber
​string

Allocated document number (null until sent)

reference
​string

PO number ("PO-nr.")

ourReference
​string

Our reference ("Vores ref.")

notes
​string

Notes

customerId
​string

Customer id

sourceDocumentId
​string

Source document id (the quote this order confirmation was converted from)

convertedToInvoiceId
​string

Id of the invoice this order confirmation was converted into

sentAt
​string

Timestamp the document was sent (ISO)

PATCH/v1/order-confirmations/{id}
curl https://api.ledgerbee.com/api/v1/order-confirmations/:id \ --request PATCH \ --header 'Content-Type: application/json' \ --header 'x-api-key: <api-key>' \ --data '{ "customerId": "customerId", "customerDepartmentId": "customerDepartmentId", "customerContactId": "customerContactId", "date": "2026-06-11", "currency": "DKK", "reference": "reference", "ourReference": "ourReference", "notes": "notes", "status": "status", "lines": [ { "priceId": "priceId", "description": "description", "lineType": "subscription", "quantity": 2, "unitPrice": "1000.00" } ] }'
Example Request Body
{ "customerId": "customerId", "customerDepartmentId": "customerDepartmentId", "customerContactId": "customerContactId", "date": "2026-06-11", "currency": "DKK", "reference": "reference", "ourReference": "ourReference", "notes": "notes", "status": "status", "lines": [ { "priceId": "priceId", "description": "description", "lineType": "subscription", "quantity": 2, "unitPrice": "1000.00" } ] }
json
Example Responses
{ "id": "id", "status": {}, "displayStatus": {}, "documentNumber": "documentNumber", "date": "2026-06-11", "amount": "amount", "subtotal": "subtotal", "vat": "vat", "currency": "DKK", "reference": "reference", "ourReference": "ourReference", "notes": "notes", "customerId": "customerId", "sourceDocumentId": "sourceDocumentId", "convertedToInvoiceId": "convertedToInvoiceId", "sentAt": "sentAt", "createdAt": "createdAt", "updatedAt": "updatedAt", "lines": [ { "id": "id", "description": "description", "lineType": "lineType", "quantity": 2, "unitPrice": "1000.00", "totalPrice": "2000.00", "vatRate": "25", "vatAmount": "vatAmount" } ] }
json
application/json

Convert an order confirmation into an invoice

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

Converts the order confirmation into an invoice (target: "invoice").

By default the source document's fields and line items are copied verbatim. To review and adjust the target before finalizing, supply an optional document payload — its fields override the copied values.

A document converts only once. Re-converting fails with SALES_DOCUMENT_ALREADY_CONVERTED_TO_INVOICE.

The response identifies the produced invoice via targetType ("invoice") and targetId.

Convert an order confirmation into an invoice › path Parameters

id
​string · required

The order confirmation id to convert

Convert an order confirmation into an invoice › Request Body

PublicConvertOrderConfirmation
target
​string · enum · required

Target to convert into. An order confirmation only ever converts into an "invoice".

Enum values:
invoice
​object

Edited target document (review-before-finalize). Omit to copy the source verbatim.

Convert an order confirmation into an invoice › Responses

Conversion result

PublicConvertOrderConfirmationResult
targetType
​string · required

Type of document produced by the conversion (always "invoice")

Example: invoice
targetId
​string · required

Identifier of the produced document

POST/v1/order-confirmations/{id}/convert
curl https://api.ledgerbee.com/api/v1/order-confirmations/:id/convert \ --request POST \ --header 'Content-Type: application/json' \ --header 'x-api-key: <api-key>' \ --data '{ "target": "invoice", "document": { "customerId": "customerId", "customerDepartmentId": "customerDepartmentId", "customerContactId": "customerContactId", "date": "2026-06-11", "currency": "currency", "reference": "reference", "ourReference": "ourReference", "notes": "notes", "lines": [ { "priceId": "priceId", "description": "description", "lineType": "subscription", "quantity": 2, "unitPrice": "1000.00" } ] } }'
Example Request Body
{ "target": "invoice", "document": { "customerId": "customerId", "customerDepartmentId": "customerDepartmentId", "customerContactId": "customerContactId", "date": "2026-06-11", "currency": "currency", "reference": "reference", "ourReference": "ourReference", "notes": "notes", "lines": [ { "priceId": "priceId", "description": "description", "lineType": "subscription", "quantity": 2, "unitPrice": "1000.00" } ] } }
json
Example Responses
{ "targetType": "invoice", "targetId": "targetId" }
json
application/json

Download an order confirmation as PDF

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

Renders and streams the document as a PDF (application/pdf).

Pass ?draft=true to render an unfinalized "draft" watermark preview before the document is sent.

Download an order confirmation as PDF › path Parameters

id
​string · required

The order confirmation id

Download an order confirmation as PDF › query Parameters

draft
​boolean

Render a draft-watermarked preview when "true".

Download an order confirmation as PDF › Responses

PDF binary stream

No data returned
GET/v1/order-confirmations/{id}/pdf
curl https://api.ledgerbee.com/api/v1/order-confirmations/:id/pdf \ --header 'x-api-key: <api-key>'
Example Responses
No example specified for this content type

Send an order confirmation

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

Sends the document. This allocates the document number (if not already set), renders the PDF, optionally emails it, and marks the document sent.

Delivery

  • deliveryType: "Manual" (default) — allocates the number and marks sent without emailing. Use this when you will deliver the PDF yourself (download it via GET /:id/pdf).
  • deliveryType: "Email" — emails the rendered PDF. The recipient resolves from recipientEmail (override), else the customer contact, else the customer email. If none can be resolved the request fails with SALES_DOCUMENT_MISSING_RECIPIENT.

Sproom / e-invoice does not apply to order confirmations — there is no legal e-invoice type for an order confirmation.

A document that has already been converted is read-only and cannot be sent (SALES_DOCUMENT_LOCKED_CONVERTED).

Send an order confirmation › path Parameters

id
​string · required

The order confirmation id

Send an order confirmation › Request Body

PublicSendOrderConfirmation
deliveryType
​string · enum

Delivery method. Defaults to Manual. Sproom/e-invoice does not apply to order confirmations.

Enum values:
Email
Manual
recipientEmail
​string

Override recipient email for Email delivery

Send an order confirmation › Responses

Order confirmation sent

PublicOrderConfirmation
id
​string · required

Document identifier

status
​object · required

Stored lifecycle status (draft/sent)

displayStatus
​object · required

Status to display. Equals status except the derived "converted" state.

date
​string · required

Document date (ISO, YYYY-MM-DD)

Example: 2026-06-11
amount
​string · required

Total amount including VAT

subtotal
​string · required

Subtotal excluding VAT

vat
​string · required

Total VAT

currency
​string · required

Currency code

Example: DKK
createdAt
​string · required

Created timestamp (ISO)

updatedAt
​string · required

Updated timestamp (ISO)

​PublicOrderConfirmationLine[] · required
documentNumber
​string

Allocated document number (null until sent)

reference
​string

PO number ("PO-nr.")

ourReference
​string

Our reference ("Vores ref.")

notes
​string

Notes

customerId
​string

Customer id

sourceDocumentId
​string

Source document id (the quote this order confirmation was converted from)

convertedToInvoiceId
​string

Id of the invoice this order confirmation was converted into

sentAt
​string

Timestamp the document was sent (ISO)

POST/v1/order-confirmations/{id}/send
curl https://api.ledgerbee.com/api/v1/order-confirmations/:id/send \ --request POST \ --header 'Content-Type: application/json' \ --header 'x-api-key: <api-key>' \ --data '{ "deliveryType": "Email", "recipientEmail": "recipientEmail" }'
Example Request Body
{ "deliveryType": "Email", "recipientEmail": "recipientEmail" }
json
Example Responses
{ "id": "id", "status": {}, "displayStatus": {}, "documentNumber": "documentNumber", "date": "2026-06-11", "amount": "amount", "subtotal": "subtotal", "vat": "vat", "currency": "DKK", "reference": "reference", "ourReference": "ourReference", "notes": "notes", "customerId": "customerId", "sourceDocumentId": "sourceDocumentId", "convertedToInvoiceId": "convertedToInvoiceId", "sentAt": "sentAt", "createdAt": "createdAt", "updatedAt": "updatedAt", "lines": [ { "id": "id", "description": "description", "lineType": "lineType", "quantity": 2, "unitPrice": "1000.00", "totalPrice": "2000.00", "vatRate": "25", "vatAmount": "vatAmount" } ] }
json
application/json

InvoicesPortal Plans