LedgerBee Developer
  • Getting started
  • Conventions
  • Products
  • Advisor firms
  • Configuration
  • API Reference
Information
Accounts
    List accountsgetCreate an accountpostGet an accountgetDelete an accountdeleteUpdate an accountpatch
Advisor Authority Extracts
    Submit authority extract data for an advisor firm's clientspost
Advisor Clients
    List the advisor firm's clientsget
API Key
    Get current API keyget
Authority Extracts
    Submit authority extract datapost
Bank Reconciliations
    Reconcile bank lines against entriespostUndo a bank reconciliationpostCheck what undoing a reconciliation would dopostReconcile a batch of matchespostCheck what reconciling a batch of matches would dopostCheck what reconciling bank lines against entries would dopost
Bank Transactions
    List bank linesgetGet a bank linegetDismiss bank lines from reconciliationpostCheck which bank lines a dismiss would changepostRestore dismissed bank lines to reconciliationpostCheck which bank lines a restore would changepost
Billing Groups
    Form a billing grouppostGet a billing groupgetAdd members to a billing grouppostRemove a member from a billing groupdeleteCheck billing group eligibilitypost
Budgets
    List budgetsgetGet a budgetgetGet the budget vs actuals comparisongetExport a budget's Excel workbookgetOverwrite a budget's figures from an edited workbookpostList a budget's frozen baselinesgetGet a frozen baseline with its snapshot cellsgetList a budget's re-baseline proposalsgetList a budget's scenariosgetResolve a budget's grid under a scenariogetGet the variance report vs a frozen baselinegetGet the runway headlineget
Checkout
    Confirm the checkoutpostQuote a first periodpostIntegration readinessgetMint a checkout sessionpostRehydrate a sessiongetRelease the card hold (edit-after-card)postPoll card statusgetOpen the card windowpostOpen a card window for a live subscriptionpost
Company
    Get company detailsget
Connected app OAuth
    JSON Web Key Set used to verify OAuth access-token signaturesgetRFC 8414 authorization-server metadata for the connected-app OAuth servergetRFC 9728 protected-resource metadata for an MCP resourcegetRFC 9728 protected-resource metadata for an MCP resourcegetOpenID Connect discovery document for the connected-app OAuth serverget
Credit Note Links
    Link a credit note to the invoice it creditspostCheck a credit note’s links and the invoices it can be linked topostDetach a credit note from the invoices it is applied topost
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 customerpostCredit a whole invoicepost
Customers
    List customersgetCreate a customerpostGet a customergetDelete a customerdeleteUpdate 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 categorydeleteList distribution keys (paginated)getCreate a distribution keypostGet a distribution keygetList dimension values (paginated)getCreate a new dimension valuepostUpdate a dimension valueputDelete a dimension valuedelete
Discounts
    List discountsgetCreate a discountpostGet a discountgetDelete a discountdeleteUpdate a discountpatchSet a discount's amount in one currencyputRemove a discount's amount in one currencydeleteCheck whether a discount applies to a product for a customer on a daygetAssign a discountpostRemove an assignmentdeleteUpdate an assignmentpatchList a discount's codesgetAdd a code to a discountpostDelete a codedeleteUpdate a codepatchList the discounts that apply to a product for a customer on a daygetCheck a cartpostLook up a discount codeget
Document Templates
    List document templatesget
Document Upload Links
    Upload a file through a minted linkpost
Download Links
    Mint a download link for a document PDFgetDownload a minted linkget
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)patchGet attachments for a draft journal entry (v2)getAdd a document to a draft journal entry (v2)postRemove a document from a draft journal entry (v2)deleteBook a draft journal entry (v2)post
Entitlements
    List entitlementsgetCreate an entitlementpostGet an entitlementgetDelete an entitlementdeleteUpdate an entitlementpatch
Invoices
    List invoicesgetCreate a draft invoicepostGet an invoicegetDelete a draft invoicedeleteUpdate an unsent invoicepatchGet the delivery status of an invoicegetDownload the invoice PDFgetSend an invoice to the customerpost
Journal Categories
    List journal categoriesgetCreate a journal categorypostUpdate a journal categoryputDelete a journal categorydelete
Journal Entries
    List journal entriesgetGet a journal entrygetUpdate a journal entry — correct the reference and/or set your external system idpatchGet attachments for a journal entrygetAdd a document to a journal entrypostRemove a document from a journal entrydeletePreview a correction without posting itpostMove postings to different accounts, keeping the document intactpostRebuild the entry a reversal undid, as a draftpostPreview rebuilding the entry a reversal undidpostReverse a posted entry and open a draft to re-enter itpostReverse posted journal entries in batchpostPreview reversing posted journal entries in batchpostReverse a posted journal entrypostPreview reversing 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
Open Entries
    List a counterparty’s open entriesget
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 checkout-vouch token (partner-vouched anonymous checkout)postMint 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 productpatchArchive a productpost
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
Settlements
    List a counterparty’s settlementsgetSettle open entries against each otherpostGet a settlementgetUndo a settlementpostCheck what undoing a settlement would dopostCheck what settling these entries would dopost
Shipments
    List shipmentsgetCreate a shipment from an orderpostGet a shipmentgetCancel a shipmentpostDispatch a shipmentpost
Stock
    List stock movementsgetList on-hand stockgetOn-hand for one productget
Subscriptions
    List customer subscriptionsgetAssign a subscription to a customerpostGet a customer subscription by its stable idgetUpdate a customer subscriptionpatchAdd an add-on to a customer subscriptionpostAttach existing subscriptions as add-onspostCheck whether subscriptions can become add-onspostChange the products on a customer subscriptionpostRetry a failed card paymentpostList a subscription's pending scheduled changesgetCancel a single pending scheduled changedeleteGet a subscription's unbilled usagegetCancel a customer subscriptionpostList subscription plansgetCreate a subscription planpostArchive a subscription planpost
Suppliers
    List suppliersgetCreate a supplierpostDelete a supplierdeleteList supplier contactsgetList supplier departmentsgetList supplier groupsget
VAT Codes
    List VAT codesgetCreate a VAT codepostGet a VAT codegetDelete a VAT codedeleteUpdate a VAT codepatch
VAT periods
    Record a VAT return filed outside LedgerBeepostPreview recording a VAT return filed outside LedgerBeepostSettle a filed VAT periodpostPreview a VAT period settlementpost
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

Credit Notes

Download schema

List credit notes

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

Credential: a company's API key or OAuth token.

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

Required Scope

  • invoices-read

List credit notes › query Parameters

cursor
​string

Opaque cursor from the previous response's nextCursor. Returns the rows after it, in the same order. Send the same filters and sort as the request that produced it, and do not send page. The preferred way to page through a list.

page
​number · min: 1 · deprecated

Deprecated: page with cursor instead. Page number (1-indexed). From 2026-12-31, a page past the first of a list with more than 10,000 matching rows is refused.

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

Number of items per page

Example: 25
Default: 25
search
​string

Free-text search (credit note number, description)

status
​string · enum

Filter credit notes by status

Enum values:
draft
scheduled
sending
sent
customerId
​string

Filter credit notes for a specific customer

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

List credit notes › Responses

Paginated list of credit notes

PublicListCreditNotesResponse
​PublicCreditNoteListItem[] · required

Credit notes on this page (line items omitted; GET one for lines)

total
​number · required

Total credit notes matching the query

Example: 42
limit
​number · required

Items per page

Example: 25
nextCursor
​string | null · required

Cursor for the next page; pass it as cursor. null on the last page, and on every page of a sort that cannot page by cursor — hasMore then says whether another page follows by page number.

Example: eyJ2IjoxLCJmIjoiOWMxZjQyYWIzMTA4ZDc2ZSIsImsiOlsiMjAyNi0wMS0yMCJdfQ
hasMore
​boolean · required

Whether more rows follow this page.

Example: true
page
​number · deprecated

Deprecated: page with nextCursor instead. Current page (1-indexed).

Example: 1
totalPages
​number · deprecated

Deprecated: page with nextCursor instead. Total pages.

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

Create a credit note

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

Credential: a company's API key or OAuth token.

Creates a credit note. Pass invoiceNumber to credit an existing invoice; the referenced invoice is then marked credited.

Required Scope

  • invoices-write

Create a credit note › Headers

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

Optional idempotency key for safely retrying mutating requests.

Create a credit note › Request Body

PublicCreateCreditNote
customerId
​string · required

Customer ID this credit note is for

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

Credit note date (ISO date, YYYY-MM-DD)

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

Credit note 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 (credit note recipient)

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

Original invoice number this credit note credits. When set, the referenced invoice is marked credited.

Example: 1
currency
​string · minLength: 3 · maxLength: 3

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

Example: DKK
reference
​string

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

Example: PO-12345
ourReference
​string

Our reference ("Vores ref.")

Example: Jane Doe
description
​string

Internal description for your own reference. Never printed on the PDF or shown to the customer: put text for the customer in subject and notes.

Example: Credit for returned items
subject
​string · maxLength: 255

Heading printed in bold on the PDF, directly above notes. The customer sees it on the document.

Example: Website maintenance, March
notes
​string

Message printed on the PDF under subject. The customer sees it on the document.

Example: Credit issued due to product defect
tagIds
​string[]

Tag/Dimension value IDs to attach to the journal entry when this credit note is booked. Use the per-line tagIds for a dimension that differs between lines.

Example: ["550e8400-e29b-41d4-a716-446655440003"]
discountIds
​string[] · maxItems: 20

Document-scope discount records to apply once to the whole document, after every line discount, reducing the lines whose product each applies to (every line when it names no product). Each id is a discount record (see GET /discounts). The order sent is the order they apply in. Each is checked for the line's product, the document's customer and the document date; a document converted from a quote is checked at the quote's date. A fixed or per-unit discount takes its amount in the document's currency: a discount with no amount in that currency is refused, never converted at an exchange rate. One applies when it applies to the customer and to at least one line's product. A credit note that names invoiceNumber takes none: it gives back the discounts that invoice used, and is refused with DISCOUNT_CREDIT_NOTE_FOLLOWS_INVOICE if it sends any. Refused with: DISCOUNT_NOT_APPLICABLE (no such discount in your company, inactive, not assigned to this product and customer, or outside its dates on the document date; details.reason says which), DISCOUNT_WRONG_SCOPE, DISCOUNT_REFERENCED_TWICE, DISCOUNT_NOT_COMBINABLE, DISCOUNT_NO_AMOUNT_IN_CURRENCY, DISCOUNT_LINE_WITHOUT_PRODUCT, DISCOUNT_EXCEEDS_LINE and DISCOUNT_EXCEEDS_DOCUMENT.

Example: ["0199b6d2-3c1a-7a40-9f00-1d2e3f4a5b6c"]

Create a credit note › Responses

Credit note created successfully

PublicCreditNote
id
​string · required

Credit note ID

Example: 0197A943-2325-7829-B835-B6C71A293065
number
​string | null · required

Credit note number. Null until the credit note is sent; every sent credit note has one.

Example: CN-00001
status
​string · enum · required

Credit note status

Enum values:
draft
scheduled
sending
sent
Example: sent
date
​string · required

Credit note 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
​PublicCreditNoteLine[] · required

Credit note lines

​PublicAppliedDocumentDiscount[] · required

The document-scope discount records the document referenced, in the order they applied, each applied once after every line discount. Empty when it referenced none.

totalDiscounted
​string | null · required

What the document's discounts took off in all, in the document's currency: each line's amount before discounts less its amount after them, plus the document discounts. A line discount typed by hand in LedgerBee counts too. Null when the document references no discount record.

Example: 250.00
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
invoiceNumber
​string | null

Original invoice number this credit note credits

customerId
​string | null

Customer ID

customerSubscriptionId
​string | null

The subscription this credit note credits, when it credits exactly one. Null on a billing group’s credit note (see billingGroupId) and on a manually created one.

Example: 0197A943-2325-7829-B835-B6C71A293065
billingGroupId
​string | null

The billing group this credit note is issued to, when it credits a group’s shared invoice. Set instead of customerSubscriptionId, never alongside it.

Example: 0197A943-2325-7829-B835-B6C71A293065
reference
​string | null

Reference / PO number

ourReference
​string | null

Our reference ("Vores ref.")

subject
​string | null

Heading printed in bold on the PDF, directly above notes. The customer sees it on the document.

Example: Website maintenance, March
notes
​string | null

Message printed on the PDF under subject. The customer sees it on the document.

POST/v1/credit-notes
curl https://api.ledgerbee.com/api/v1/credit-notes \ --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", "invoiceNumber": "1", "date": "2024-01-15", "currency": "DKK", "reference": "PO-12345", "ourReference": "Jane Doe", "description": "Credit for returned items", "subject": "Website maintenance, March", "notes": "Credit issued due to product defect", "tagIds": [ "550e8400-e29b-41d4-a716-446655440003" ], "lines": [ { "priceId": "0197A943-2325-7829-B835-B6C71A293065", "lineType": "subscription", "description": "Premium widget - Blue color - Return", "quantity": 2, "unitPrice": "1083.32", "tagIds": [ "550e8400-e29b-41d4-a716-446655440003" ], "discountIds": [ "0199b6d2-3c1a-7a40-9f00-1d2e3f4a5b6c" ], "sourceInvoiceLineId": "0197A943-2325-7829-B835-B6C71A293065" } ], "discountIds": [ "0199b6d2-3c1a-7a40-9f00-1d2e3f4a5b6c" ] }'
Example Request Body
{ "customerId": "0197A943-2325-7829-B835-B6C71A293065", "customerDepartmentId": "0197A943-2325-7829-B835-B6C71A293065", "customerContactId": "0197A943-2325-7829-B835-B6C71A293065", "invoiceNumber": "1", "date": "2024-01-15", "currency": "DKK", "reference": "PO-12345", "ourReference": "Jane Doe", "description": "Credit for returned items", "subject": "Website maintenance, March", "notes": "Credit issued due to product defect", "tagIds": [ "550e8400-e29b-41d4-a716-446655440003" ], "lines": [ { "priceId": "0197A943-2325-7829-B835-B6C71A293065", "lineType": "subscription", "description": "Premium widget - Blue color - Return", "quantity": 2, "unitPrice": "1083.32", "tagIds": [ "550e8400-e29b-41d4-a716-446655440003" ], "discountIds": [ "0199b6d2-3c1a-7a40-9f00-1d2e3f4a5b6c" ], "sourceInvoiceLineId": "0197A943-2325-7829-B835-B6C71A293065" } ], "discountIds": [ "0199b6d2-3c1a-7a40-9f00-1d2e3f4a5b6c" ] }
json
application/json
Example Responses
{ "id": "0197A943-2325-7829-B835-B6C71A293065", "number": "CN-00001", "invoiceNumber": "invoiceNumber", "status": "sent", "date": "2024-01-15", "customerId": "customerId", "customerSubscriptionId": "0197A943-2325-7829-B835-B6C71A293065", "billingGroupId": "0197A943-2325-7829-B835-B6C71A293065", "currency": "DKK", "subtotal": "2166.65", "vat": "541.66", "amount": "2708.31", "reference": "reference", "ourReference": "ourReference", "subject": "Website maintenance, March", "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", "sourceInvoiceLineId": "0197A943-2325-7829-B835-B6C71A293065", "subscriptionId": "0197A943-2325-7829-B835-B6C71A293065", "addonOfSubscriptionId": "0197A943-2325-7829-B835-B6C71A293065", "tagIds": [ "550e8400-e29b-41d4-a716-446655440003" ], "appliedDiscounts": [ { "discountId": "discountId", "position": 0, "name": "name", "type": "percentage", "percentagePct": "10", "originalDiscountAmount": "originalDiscountAmount", "originalReductionAmount": "200.00", "code": "SUMMER10" } ] } ], "documentDiscounts": [ { "discountId": "discountId", "position": 0, "name": "name", "type": "percentage", "percentagePct": "percentagePct", "originalDiscountAmount": "originalDiscountAmount", "originalReductionAmount": "originalReductionAmount", "vatSplit": [ { "vatRatePct": "25.00", "taxCategory": "taxCategory", "originalReductionAmount": "originalReductionAmount", "originalVatReductionAmount": "originalVatReductionAmount" } ], "code": "SUMMER10" } ], "totalDiscounted": "250.00", "createdAt": "2024-01-15T10:30:00.000Z", "updatedAt": "2024-01-15T10:30:00.000Z" }
json
application/json

Get a credit note

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

Credential: a company's API key or OAuth token.

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

Required Scope

  • invoices-read

Get a credit note › path Parameters

id
​string · required

Credit Note ID

Get a credit note › Responses

The credit note

PublicCreditNote
id
​string · required

Credit note ID

Example: 0197A943-2325-7829-B835-B6C71A293065
number
​string | null · required

Credit note number. Null until the credit note is sent; every sent credit note has one.

Example: CN-00001
status
​string · enum · required

Credit note status

Enum values:
draft
scheduled
sending
sent
Example: sent
date
​string · required

Credit note 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
​PublicCreditNoteLine[] · required

Credit note lines

​PublicAppliedDocumentDiscount[] · required

The document-scope discount records the document referenced, in the order they applied, each applied once after every line discount. Empty when it referenced none.

totalDiscounted
​string | null · required

What the document's discounts took off in all, in the document's currency: each line's amount before discounts less its amount after them, plus the document discounts. A line discount typed by hand in LedgerBee counts too. Null when the document references no discount record.

Example: 250.00
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
invoiceNumber
​string | null

Original invoice number this credit note credits

customerId
​string | null

Customer ID

customerSubscriptionId
​string | null

The subscription this credit note credits, when it credits exactly one. Null on a billing group’s credit note (see billingGroupId) and on a manually created one.

Example: 0197A943-2325-7829-B835-B6C71A293065
billingGroupId
​string | null

The billing group this credit note is issued to, when it credits a group’s shared invoice. Set instead of customerSubscriptionId, never alongside it.

Example: 0197A943-2325-7829-B835-B6C71A293065
reference
​string | null

Reference / PO number

ourReference
​string | null

Our reference ("Vores ref.")

subject
​string | null

Heading printed in bold on the PDF, directly above notes. The customer sees it on the document.

Example: Website maintenance, March
notes
​string | null

Message printed on the PDF under subject. The customer sees it on the document.

GET/v1/credit-notes/{id}
curl https://api.ledgerbee.com/api/v1/credit-notes/:id \ --header 'x-api-key: <api-key>'
Example Responses
{ "id": "0197A943-2325-7829-B835-B6C71A293065", "number": "CN-00001", "invoiceNumber": "invoiceNumber", "status": "sent", "date": "2024-01-15", "customerId": "customerId", "customerSubscriptionId": "0197A943-2325-7829-B835-B6C71A293065", "billingGroupId": "0197A943-2325-7829-B835-B6C71A293065", "currency": "DKK", "subtotal": "2166.65", "vat": "541.66", "amount": "2708.31", "reference": "reference", "ourReference": "ourReference", "subject": "Website maintenance, March", "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", "sourceInvoiceLineId": "0197A943-2325-7829-B835-B6C71A293065", "subscriptionId": "0197A943-2325-7829-B835-B6C71A293065", "addonOfSubscriptionId": "0197A943-2325-7829-B835-B6C71A293065", "tagIds": [ "550e8400-e29b-41d4-a716-446655440003" ], "appliedDiscounts": [ { "discountId": "discountId", "position": 0, "name": "name", "type": "percentage", "percentagePct": "10", "originalDiscountAmount": "originalDiscountAmount", "originalReductionAmount": "200.00", "code": "SUMMER10" } ] } ], "documentDiscounts": [ { "discountId": "discountId", "position": 0, "name": "name", "type": "percentage", "percentagePct": "percentagePct", "originalDiscountAmount": "originalDiscountAmount", "originalReductionAmount": "originalReductionAmount", "vatSplit": [ { "vatRatePct": "25.00", "taxCategory": "taxCategory", "originalReductionAmount": "originalReductionAmount", "originalVatReductionAmount": "originalVatReductionAmount" } ], "code": "SUMMER10" } ], "totalDiscounted": "250.00", "createdAt": "2024-01-15T10:30:00.000Z", "updatedAt": "2024-01-15T10:30:00.000Z" }
json
application/json

Get the delivery status of a credit note

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

Credential: a company's API key or OAuth token.

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

Required Scope

  • invoices-read

Get the delivery status of a credit note › path Parameters

id
​string · required

Credit Note ID

Get the delivery status of a credit note › Responses

Delivery status

PublicDeliveryStatusResponse
​object · required

Aggregate send summary

​PublicDeliveryLogEntry[] · required

Per-attempt delivery log entries

GET/v1/credit-notes/{id}/delivery-status
curl https://api.ledgerbee.com/api/v1/credit-notes/: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 credit note PDF

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

Credential: a company's API key or OAuth token.

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

Required Scope

  • invoices-read

Download the credit note PDF › path Parameters

id
​string · required

Credit Note ID

Download the credit note PDF › query Parameters

draft
​boolean

Render a draft watermark version

Download the credit note PDF › Responses

Bad Request

statusCode
​number
timestamp
​string
path
​string
message
​string
GET/v1/credit-notes/{id}/pdf
curl https://api.ledgerbee.com/api/v1/credit-notes/: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 a credit note to the customer

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

Credential: a company's API key or OAuth token.

Sends the credit note over the chosen delivery channel (Email, Sproom e-invoicing, or Manual).

Required Scope

  • invoices-write

Send a credit note to the customer › path Parameters

id
​string · required

Credit Note ID

Send a credit note to the customer › Headers

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

Optional idempotency key for safely retrying mutating requests.

Send a credit note to the customer › Request Body

PublicSendCreditNote
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 a credit note to the customer › Responses

Credit note 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
Factoring
Example: Email
sproomDocumentId
​string | null

Sproom document ID when sent via e-invoicing

POST/v1/credit-notes/{id}/send
curl https://api.ledgerbee.com/api/v1/credit-notes/: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

Credit a whole invoice

POST
https://api.ledgerbee.com/api
/v1/credit-notes/from-invoice/{invoiceId}
x-api-key (header)
or
OAuth 2.0

Credential: a company's API key or OAuth token.

Creates a draft credit note that reverses every line of invoiceId, without restating them. The credit carries the invoice's own VAT rates and per-line dimensions and is linked line-by-line to what it credits, so the invoice flips to credited once the credit note is sent — none of which a line-by-line POST /credit-notes can reproduce.

Returns 400 when the invoice is a draft, already credited, has no invoice number, or carries no lines — a credit with nothing to reverse would be a sendable document crediting nothing.

Required Scope

  • invoices-write

Credit a whole invoice › path Parameters

invoiceId
​string · required

ID of the invoice to credit in full

Credit a whole invoice › Headers

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

Optional idempotency key for safely retrying mutating requests.

Credit a whole invoice › Responses

Draft credit note created for the whole invoice

PublicCreditNote
id
​string · required

Credit note ID

Example: 0197A943-2325-7829-B835-B6C71A293065
number
​string | null · required

Credit note number. Null until the credit note is sent; every sent credit note has one.

Example: CN-00001
status
​string · enum · required

Credit note status

Enum values:
draft
scheduled
sending
sent
Example: sent
date
​string · required

Credit note 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
​PublicCreditNoteLine[] · required

Credit note lines

​PublicAppliedDocumentDiscount[] · required

The document-scope discount records the document referenced, in the order they applied, each applied once after every line discount. Empty when it referenced none.

totalDiscounted
​string | null · required

What the document's discounts took off in all, in the document's currency: each line's amount before discounts less its amount after them, plus the document discounts. A line discount typed by hand in LedgerBee counts too. Null when the document references no discount record.

Example: 250.00
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
invoiceNumber
​string | null

Original invoice number this credit note credits

customerId
​string | null

Customer ID

customerSubscriptionId
​string | null

The subscription this credit note credits, when it credits exactly one. Null on a billing group’s credit note (see billingGroupId) and on a manually created one.

Example: 0197A943-2325-7829-B835-B6C71A293065
billingGroupId
​string | null

The billing group this credit note is issued to, when it credits a group’s shared invoice. Set instead of customerSubscriptionId, never alongside it.

Example: 0197A943-2325-7829-B835-B6C71A293065
reference
​string | null

Reference / PO number

ourReference
​string | null

Our reference ("Vores ref.")

subject
​string | null

Heading printed in bold on the PDF, directly above notes. The customer sees it on the document.

Example: Website maintenance, March
notes
​string | null

Message printed on the PDF under subject. The customer sees it on the document.

POST/v1/credit-notes/from-invoice/{invoiceId}
curl https://api.ledgerbee.com/api/v1/credit-notes/from-invoice/:invoiceId \ --request POST \ --header 'x-api-key: <api-key>'
Example Responses
{ "id": "0197A943-2325-7829-B835-B6C71A293065", "number": "CN-00001", "invoiceNumber": "invoiceNumber", "status": "sent", "date": "2024-01-15", "customerId": "customerId", "customerSubscriptionId": "0197A943-2325-7829-B835-B6C71A293065", "billingGroupId": "0197A943-2325-7829-B835-B6C71A293065", "currency": "DKK", "subtotal": "2166.65", "vat": "541.66", "amount": "2708.31", "reference": "reference", "ourReference": "ourReference", "subject": "Website maintenance, March", "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", "sourceInvoiceLineId": "0197A943-2325-7829-B835-B6C71A293065", "subscriptionId": "0197A943-2325-7829-B835-B6C71A293065", "addonOfSubscriptionId": "0197A943-2325-7829-B835-B6C71A293065", "tagIds": [ "550e8400-e29b-41d4-a716-446655440003" ], "appliedDiscounts": [ { "discountId": "discountId", "position": 0, "name": "name", "type": "percentage", "percentagePct": "10", "originalDiscountAmount": "originalDiscountAmount", "originalReductionAmount": "200.00", "code": "SUMMER10" } ] } ], "documentDiscounts": [ { "discountId": "discountId", "position": 0, "name": "name", "type": "percentage", "percentagePct": "percentagePct", "originalDiscountAmount": "originalDiscountAmount", "originalReductionAmount": "originalReductionAmount", "vatSplit": [ { "vatRatePct": "25.00", "taxCategory": "taxCategory", "originalReductionAmount": "originalReductionAmount", "originalVatReductionAmount": "originalVatReductionAmount" } ], "code": "SUMMER10" } ], "totalDiscounted": "250.00", "createdAt": "2024-01-15T10:30:00.000Z", "updatedAt": "2024-01-15T10:30:00.000Z" }
json
application/json

Credit Note LinksCustomers