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

Quotes

Download schema

List quotes

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

Returns a paginated list of quotes.

Filters

ParameterDescription
statusDisplay status: draft, sent, accepted, rejected, expired, 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, validUntil) and direction. Defaults to newest first.

List quotes › 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/accepted/rejected/expired/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 quotes › Responses

Paginated list of quotes

PublicListQuotesResponse
​PublicQuoteListItem[] · required

List of quotes (line items omitted; GET one quote for lines)

total
​number · required

Total number of quotes 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/quotes
curl https://api.ledgerbee.com/api/v1/quotes \ --header 'x-api-key: <api-key>'
Example Responses
{ "data": [ { "id": "id", "type": "quote", "status": {}, "displayStatus": {}, "documentNumber": "documentNumber", "date": "2026-06-11", "validUntil": "2026-07-11", "amount": "amount", "subtotal": "subtotal", "vat": "vat", "currency": "DKK", "reference": "reference", "ourReference": "ourReference", "notes": "notes", "customerId": "customerId", "sourceDocumentId": "sourceDocumentId", "convertedToDocumentId": "convertedToDocumentId", "convertedToInvoiceId": "convertedToInvoiceId", "sentAt": "sentAt", "createdAt": "createdAt", "updatedAt": "updatedAt" } ], "total": 42, "page": 1, "limit": 25, "totalPages": 2 }
json
application/json

Create a draft quote

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

Creates a draft quote.

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

Create a draft quote › Request Body

PublicCreateQuote
customerId
​string · required

Customer this quote is for

date
​string · required

Quote date (ISO, YYYY-MM-DD)

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

Customer department id

customerContactId
​string

Customer contact id ("Deres ref.")

validUntil
​string

Valid-until date (ISO, YYYY-MM-DD)

Example: 2026-07-11
currency
​string

Currency code

Example: DKK
reference
​string

PO number ("PO-nr.")

ourReference
​string

Our reference ("Vores ref.")

notes
​string

Notes shown on the quote

Create a draft quote › Responses

Quote created

PublicQuote
id
​string · required

Quote identifier

type
​string · enum · required

Always "quote"

Enum values:
quote
orderConfirmation
status
​object · required

Stored lifecycle status (draft/sent/accepted/rejected)

displayStatus
​object · required

Status to display. Equals status except derived states: "converted" or "expired".

date
​string · required

Quote 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)

​PublicQuoteLine[] · required
documentNumber
​string

Allocated quote number (null until sent)

validUntil
​string

Valid-until date (ISO, YYYY-MM-DD)

Example: 2026-07-11
reference
​string

PO number ("PO-nr.")

ourReference
​string

Our reference ("Vores ref.")

notes
​string

Notes

customerId
​string

Customer id

sourceDocumentId
​string

Source document id (set when this quote originated from another document)

convertedToDocumentId
​string

Id of the order confirmation this quote was converted into

convertedToInvoiceId
​string

Id of the invoice this quote was converted into

sentAt
​string

Timestamp the quote was sent (ISO)

POST/v1/quotes
curl https://api.ledgerbee.com/api/v1/quotes \ --request POST \ --header 'Content-Type: application/json' \ --header 'x-api-key: <api-key>' \ --data '{ "customerId": "customerId", "customerDepartmentId": "customerDepartmentId", "customerContactId": "customerContactId", "date": "2026-06-11", "validUntil": "2026-07-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", "validUntil": "2026-07-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", "type": "quote", "status": {}, "displayStatus": {}, "documentNumber": "documentNumber", "date": "2026-06-11", "validUntil": "2026-07-11", "amount": "amount", "subtotal": "subtotal", "vat": "vat", "currency": "DKK", "reference": "reference", "ourReference": "ourReference", "notes": "notes", "customerId": "customerId", "sourceDocumentId": "sourceDocumentId", "convertedToDocumentId": "convertedToDocumentId", "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 a quote by id

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

Returns a single quote, including its line items.

Get a quote by id › path Parameters

id
​string · required

The quote id

Get a quote by id › Responses

The quote

PublicQuote
id
​string · required

Quote identifier

type
​string · enum · required

Always "quote"

Enum values:
quote
orderConfirmation
status
​object · required

Stored lifecycle status (draft/sent/accepted/rejected)

displayStatus
​object · required

Status to display. Equals status except derived states: "converted" or "expired".

date
​string · required

Quote 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)

​PublicQuoteLine[] · required
documentNumber
​string

Allocated quote number (null until sent)

validUntil
​string

Valid-until date (ISO, YYYY-MM-DD)

Example: 2026-07-11
reference
​string

PO number ("PO-nr.")

ourReference
​string

Our reference ("Vores ref.")

notes
​string

Notes

customerId
​string

Customer id

sourceDocumentId
​string

Source document id (set when this quote originated from another document)

convertedToDocumentId
​string

Id of the order confirmation this quote was converted into

convertedToInvoiceId
​string

Id of the invoice this quote was converted into

sentAt
​string

Timestamp the quote was sent (ISO)

GET/v1/quotes/{id}
curl https://api.ledgerbee.com/api/v1/quotes/:id \ --header 'x-api-key: <api-key>'
Example Responses
{ "id": "id", "type": "quote", "status": {}, "displayStatus": {}, "documentNumber": "documentNumber", "date": "2026-06-11", "validUntil": "2026-07-11", "amount": "amount", "subtotal": "subtotal", "vat": "vat", "currency": "DKK", "reference": "reference", "ourReference": "ourReference", "notes": "notes", "customerId": "customerId", "sourceDocumentId": "sourceDocumentId", "convertedToDocumentId": "convertedToDocumentId", "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 quote

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

Replaces the editable fields and line items of a draft quote. This is also how you change validUntil.

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

Update a draft quote › path Parameters

id
​string · required

The quote id

Update a draft quote › Request Body

PublicUpdateQuote
customerId
​string · required

Customer this quote is for

date
​string · required

Quote date (ISO, YYYY-MM-DD)

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

Customer department id

customerContactId
​string

Customer contact id ("Deres ref.")

validUntil
​string

Valid-until date (ISO, YYYY-MM-DD)

Example: 2026-07-11
currency
​string

Currency code

Example: DKK
reference
​string

PO number ("PO-nr.")

ourReference
​string

Our reference ("Vores ref.")

notes
​string

Notes shown on the quote

Update a draft quote › Responses

Quote updated

PublicQuote
id
​string · required

Quote identifier

type
​string · enum · required

Always "quote"

Enum values:
quote
orderConfirmation
status
​object · required

Stored lifecycle status (draft/sent/accepted/rejected)

displayStatus
​object · required

Status to display. Equals status except derived states: "converted" or "expired".

date
​string · required

Quote 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)

​PublicQuoteLine[] · required
documentNumber
​string

Allocated quote number (null until sent)

validUntil
​string

Valid-until date (ISO, YYYY-MM-DD)

Example: 2026-07-11
reference
​string

PO number ("PO-nr.")

ourReference
​string

Our reference ("Vores ref.")

notes
​string

Notes

customerId
​string

Customer id

sourceDocumentId
​string

Source document id (set when this quote originated from another document)

convertedToDocumentId
​string

Id of the order confirmation this quote was converted into

convertedToInvoiceId
​string

Id of the invoice this quote was converted into

sentAt
​string

Timestamp the quote was sent (ISO)

PATCH/v1/quotes/{id}
curl https://api.ledgerbee.com/api/v1/quotes/: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", "validUntil": "2026-07-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", "validUntil": "2026-07-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", "type": "quote", "status": {}, "displayStatus": {}, "documentNumber": "documentNumber", "date": "2026-06-11", "validUntil": "2026-07-11", "amount": "amount", "subtotal": "subtotal", "vat": "vat", "currency": "DKK", "reference": "reference", "ourReference": "ourReference", "notes": "notes", "customerId": "customerId", "sourceDocumentId": "sourceDocumentId", "convertedToDocumentId": "convertedToDocumentId", "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 a quote

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

Converts the quote into the next document in the pre-sales chain:

  • A quote converts into an order confirmation (target: "orderConfirmation").
  • A quote can also convert directly into an invoice (target: "invoice").

By default the quote'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 quote converts only once. Re-converting fails with SALES_DOCUMENT_ALREADY_CONVERTED_TO_INVOICE or SALES_DOCUMENT_ALREADY_CONVERTED_TO_DOCUMENT.

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

Convert a quote › path Parameters

id
​string · required

The quote id to convert

Convert a quote › Request Body

PublicConvertQuote
target
​string · enum · required

Target to convert into. Use "orderConfirmation" to confirm the quote, or "invoice" to convert it directly into an invoice.

Enum values:
orderConfirmation
invoice
​object

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

Convert a quote › Responses

Conversion result

PublicConvertQuoteResult
targetType
​string · required

Type of document produced by the conversion ("invoice" or "orderConfirmation")

Example: orderConfirmation
targetId
​string · required

Identifier of the produced document

POST/v1/quotes/{id}/convert
curl https://api.ledgerbee.com/api/v1/quotes/:id/convert \ --request POST \ --header 'Content-Type: application/json' \ --header 'x-api-key: <api-key>' \ --data '{ "target": "orderConfirmation", "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": "orderConfirmation", "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": "orderConfirmation", "targetId": "targetId" }
json
application/json

Download a quote as PDF

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

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

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

Download a quote as PDF › path Parameters

id
​string · required

The quote id

Download a quote as PDF › query Parameters

draft
​boolean

Render a draft-watermarked preview when "true".

Download a quote as PDF › Responses

PDF binary stream

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

Send a quote

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

Sends the quote. This allocates the quote number (if not already set), renders the PDF, optionally emails it, and marks the quote 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 quotes — there is no legal e-invoice type for a quote.

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

Send a quote › path Parameters

id
​string · required

The quote id

Send a quote › Request Body

PublicSendQuote
deliveryType
​string · enum

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

Enum values:
Email
Manual
recipientEmail
​string

Override recipient email for Email delivery

Send a quote › Responses

Quote sent

PublicQuote
id
​string · required

Quote identifier

type
​string · enum · required

Always "quote"

Enum values:
quote
orderConfirmation
status
​object · required

Stored lifecycle status (draft/sent/accepted/rejected)

displayStatus
​object · required

Status to display. Equals status except derived states: "converted" or "expired".

date
​string · required

Quote 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)

​PublicQuoteLine[] · required
documentNumber
​string

Allocated quote number (null until sent)

validUntil
​string

Valid-until date (ISO, YYYY-MM-DD)

Example: 2026-07-11
reference
​string

PO number ("PO-nr.")

ourReference
​string

Our reference ("Vores ref.")

notes
​string

Notes

customerId
​string

Customer id

sourceDocumentId
​string

Source document id (set when this quote originated from another document)

convertedToDocumentId
​string

Id of the order confirmation this quote was converted into

convertedToInvoiceId
​string

Id of the invoice this quote was converted into

sentAt
​string

Timestamp the quote was sent (ISO)

POST/v1/quotes/{id}/send
curl https://api.ledgerbee.com/api/v1/quotes/: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", "type": "quote", "status": {}, "displayStatus": {}, "documentNumber": "documentNumber", "date": "2026-06-11", "validUntil": "2026-07-11", "amount": "amount", "subtotal": "subtotal", "vat": "vat", "currency": "DKK", "reference": "reference", "ourReference": "ourReference", "notes": "notes", "customerId": "customerId", "sourceDocumentId": "sourceDocumentId", "convertedToDocumentId": "convertedToDocumentId", "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

Portal PlansVendors