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 Note Links

Download schema

Link a credit note to the invoice it credits

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

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

Applies the credit note to the invoice, recorded as a settlement between the two dated today. Both stop appearing as open for the amount applied. Works for a customer credit note against a sales invoice and a supplier credit note against a bill; the side is read off the credit note.

A credit note already applied to another invoice is released from it first, and that invoice opens again. Naming an invoice it is already on applies any credit it has left to that same invoice.

Refused when the two belong to different counterparties or currencies, when the invoice is settled, when today’s accounting period is closed, and — unless confirmRateGap is true — when the two were booked at exchange rates far apart.

Required Scope

  • journal-entries-write

Link a credit note to the invoice it credits › Headers

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

Optional idempotency key for safely retrying mutating requests.

Link a credit note to the invoice it credits › Request Body

PublicCreditNoteLinkRequest
creditNoteId
​string · uuid · required

The credit note: the id the open-entries listing reports for a row of type CREDIT_NOTE.

invoiceId
​string · uuid · required

The invoice (or supplier bill) it credits: the id the open-entries listing reports for a row of type INVOICE. Same counterparty and currency as the credit note.

confirmRateGap
​boolean

Accept that the two documents were booked at exchange rates further apart than the confirmation threshold. Without it such a pair is refused with CREDIT_NOTE_LINK_RATE_GAP_CONFIRMATION_REQUIRED, whose details carry both rates.

Link a credit note to the invoice it credits › Responses

The credit note’s link state after linking

PublicCreditNoteLinkState
creditNoteId
​string · uuid · required
side
​string · enum · required
Enum values:
CUSTOMER
SUPPLIER
currency
​string · required

ISO 4217 currency of the credit note.

Example: DKK
​PublicCreditNoteAppliedInvoice[] · required

Every invoice the credit note is applied to, whether by a link or by a settlement pairing the two. Empty when it is applied to none.

unusedCreditAmount
​number · required

Credit not yet spoken for, as a positive magnitude in the note’s currency: what a further link to an invoice it is ALREADY on can absorb.

releasableCreditAmount
​number · required

The unused credit plus what releasing its current applications would hand back, as a positive magnitude: what an invoice it is NOT yet on can absorb, since linking it there releases the others first.

POST/v1/credit-note-links
curl https://api.ledgerbee.com/api/v1/credit-note-links \ --request POST \ --header 'Content-Type: application/json' \ --header 'x-api-key: <api-key>' \ --data '{ "creditNoteId": "3f2b6f1e-8c4d-4e0b-9d5a-7a1c2e3f4b5d", "invoiceId": "3f2b6f1e-8c4d-4e0b-9d5a-7a1c2e3f4b5d", "confirmRateGap": true }'
Example Request Body
{ "creditNoteId": "3f2b6f1e-8c4d-4e0b-9d5a-7a1c2e3f4b5d", "invoiceId": "3f2b6f1e-8c4d-4e0b-9d5a-7a1c2e3f4b5d", "confirmRateGap": true }
json
application/json
Example Responses
{ "creditNoteId": "00000000-0000-0000-0000-000000000000", "side": "CUSTOMER", "currency": "DKK", "appliedTo": [ { "invoiceId": "00000000-0000-0000-0000-000000000000", "invoiceNumber": "invoiceNumber" } ], "unusedCreditAmount": 0, "releasableCreditAmount": 0 }
json
application/json

Check a credit note’s links and the invoices it can be linked to

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

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

Reports which invoices the credit note is applied to, how much credit it has left, and the open invoices of the same counterparty in the same currency it can be linked to. Nothing is changed.

Name invoiceId to learn whether that invoice is among the candidates. Send requireApplied: true to be refused whatever an unlink would refuse.

Required Scope

  • journal-entries-write

Check a credit note’s links and the invoices it can be linked to › Headers

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

Optional idempotency key for safely retrying mutating requests.

Check a credit note’s links and the invoices it can be linked to › Request Body

PublicCreditNoteLinkPreviewRequest
creditNoteId
​string · uuid · required

The credit note: the id the open-entries listing reports for a row of type CREDIT_NOTE. A customer and a supplier credit note are both accepted; the side is read off the note.

invoiceId
​string · uuid

The invoice to check the credit note against: the id the open-entries listing reports for a row of type INVOICE. Named, the preview is refused whenever linking the two would be (another counterparty or currency, a settled invoice, today’s accounting period closed, a rate gap not accepted), and nothing is changed. Omit it to list the candidates only.

requireApplied
​boolean

When true, refuse whatever unlinking the credit note would refuse: 409 CREDIT_NOTE_LINK_NOT_LINKED when it is applied to no invoice, a settlement holding it that also settled a payment, and today’s accounting period being closed.

confirmRateGap
​boolean

With invoiceId, accept a gap between the two booked exchange rates, as the link call does. Without it, a pair booked at rates far apart is refused here as the link would refuse it.

Check a credit note’s links and the invoices it can be linked to › Responses

The credit note’s link state and candidates. Nothing was changed.

PublicCreditNoteLinkPreview
​PublicCreditNoteLinkState · required
​PublicCreditNoteLinkCandidate[] · required

Open invoices of the same counterparty in the same currency the note can be linked to, closest amount first.

invoiceIsCandidate
​boolean | null

Whether invoiceId is among the candidates. Null when no invoice was named. A named invoice the credit note cannot be linked to refuses the preview itself, with the reason the link call would give.

POST/v1/credit-note-links/preview
curl https://api.ledgerbee.com/api/v1/credit-note-links/preview \ --request POST \ --header 'Content-Type: application/json' \ --header 'x-api-key: <api-key>' \ --data '{ "creditNoteId": "3f2b6f1e-8c4d-4e0b-9d5a-7a1c2e3f4b5d", "invoiceId": "3f2b6f1e-8c4d-4e0b-9d5a-7a1c2e3f4b5d", "requireApplied": true, "confirmRateGap": true }'
Example Request Body
{ "creditNoteId": "3f2b6f1e-8c4d-4e0b-9d5a-7a1c2e3f4b5d", "invoiceId": "3f2b6f1e-8c4d-4e0b-9d5a-7a1c2e3f4b5d", "requireApplied": true, "confirmRateGap": true }
json
application/json
Example Responses
{ "creditNote": { "creditNoteId": "00000000-0000-0000-0000-000000000000", "side": "CUSTOMER", "currency": "DKK", "appliedTo": [ { "invoiceId": "00000000-0000-0000-0000-000000000000", "invoiceNumber": "invoiceNumber" } ], "unusedCreditAmount": 0, "releasableCreditAmount": 0 }, "candidates": [ { "invoiceId": "00000000-0000-0000-0000-000000000000", "invoiceNumber": "invoiceNumber", "date": "date", "dueDate": "dueDate", "currency": "DKK", "originalAmount": 0, "remainingAmount": 0 } ], "invoiceIsCandidate": true }
json
application/json

Detach a credit note from the invoices it is applied to

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

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

Releases every application of the credit note — a link, or a settlement pairing it with one invoice — so the note and each invoice it left are open again. A settlement that applied the note to an invoice is reversed, which posts today and is refused while today’s accounting period is closed.

Refused with 409 CREDIT_NOTE_LINK_NOT_LINKED when the note is applied to nothing, and refused when a settlement holding it also settled a payment: undo that settlement instead.

Required Scope

  • journal-entries-write

Detach a credit note from the invoices it is applied to › Headers

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

Optional idempotency key for safely retrying mutating requests.

Detach a credit note from the invoices it is applied to › Request Body

PublicCreditNoteUnlinkRequest
creditNoteId
​string · uuid · required

The credit note to detach from every invoice it is applied to.

Detach a credit note from the invoices it is applied to › Responses

The credit note’s link state after unlinking

PublicCreditNoteLinkState
creditNoteId
​string · uuid · required
side
​string · enum · required
Enum values:
CUSTOMER
SUPPLIER
currency
​string · required

ISO 4217 currency of the credit note.

Example: DKK
​PublicCreditNoteAppliedInvoice[] · required

Every invoice the credit note is applied to, whether by a link or by a settlement pairing the two. Empty when it is applied to none.

unusedCreditAmount
​number · required

Credit not yet spoken for, as a positive magnitude in the note’s currency: what a further link to an invoice it is ALREADY on can absorb.

releasableCreditAmount
​number · required

The unused credit plus what releasing its current applications would hand back, as a positive magnitude: what an invoice it is NOT yet on can absorb, since linking it there releases the others first.

POST/v1/credit-note-links/unlink
curl https://api.ledgerbee.com/api/v1/credit-note-links/unlink \ --request POST \ --header 'Content-Type: application/json' \ --header 'x-api-key: <api-key>' \ --data '{ "creditNoteId": "3f2b6f1e-8c4d-4e0b-9d5a-7a1c2e3f4b5d" }'
Example Request Body
{ "creditNoteId": "3f2b6f1e-8c4d-4e0b-9d5a-7a1c2e3f4b5d" }
json
application/json
Example Responses
{ "creditNoteId": "00000000-0000-0000-0000-000000000000", "side": "CUSTOMER", "currency": "DKK", "appliedTo": [ { "invoiceId": "00000000-0000-0000-0000-000000000000", "invoiceNumber": "invoiceNumber" } ], "unusedCreditAmount": 0, "releasableCreditAmount": 0 }
json
application/json

Connected app OAuthCredit Notes