Edara API v3

Edara API v3: Bundles

Read the guide first: authentication, paging, errors, rate limits and the shared PagedResult, BatchResult and *Reference shapes.

Endpoints

GET /v3/bundles: Lists bundles.

Operation GetBundles · permission read:bundle

Query string: GetBundlesQuery

field type default validation description
offset int? 0 >= 0 Number of items to skip before returning results. Defaults to 0.
limit int? 100 1..1000 (out of range → 400) Maximum number of items to return. Defaults to 100, maximum 1000.
updateDate DateTime? Returns only bundles inserted or updated at or after this timestamp.

Responses: OK PagedResult<BundleResponse>: Paged list of bundles.

Notes


GET /v3/bundles/{id}: Gets a bundle by id.

Operation GetBundleById · permission read:bundle

Parameters

name in type default description
id route int The bundle id.

Responses: OK BundleResponse: The bundle.

Notes


POST /v3/bundles: Creates a bundle.

Operation CreateBundle · permission create:bundle

Body: CreateBundleRequest

field type default validation description
description string NotEmpty() .MaximumLength(500) Bundle description. Must be unique across active bundles.
notes string MaximumLength(500) Free-form notes.
tags string[] Must(tags => tags == null || string.Join(",", tags).Length <= 4000) Tags; persisted as a comma-separated value.
bundleDetails List<CreateBundleItemRequest> NotEmpty(); each: SetValidator(new CreateBundleItemRequestValidator()) Bundle line items. At least one required.

Responses: Created BundleResponse: Bundle created.

Business errors (HTTP 409, match on errorCode):

Notes


DELETE /v3/bundles/{id}: Deletes a bundle.

Operation DeleteBundleById · permission delete:bundle

Parameters

name in type default description
id route int The bundle id.

Responses: NoContent: (not declared; read from the method body)

Business errors (HTTP 409, match on errorCode):

Notes

Types

BundleItemResponse

Response describing a bundle line item.

field type description
id int Bundle detail line identifier.
bundleId int Parent bundle identifier.
stockItem StockItemReference Stock-item reference.
quantity decimal Quantity per bundle.
unitOfMeasure UnitOfMeasureReference Unit-of-measure detail reference.
unitPrice decimal Unit price.
price decimal Line total price.
taxRate decimal? Tax rate inherited from the stock item.
tax TaxReference Tax reference inherited from the stock item.
dimensionsValue decimal? Dimension multiplier for dimension-based lines.
dimensions string Dimension expression.
comments string Free-form line comment.

BundleResponse

Response describing a bundle.

field type description
id int Bundle identifier.
description string Bundle description.
notes string Free-form notes.
isActive bool Whether the bundle is active.
tags string[] Tags assigned to the bundle.
bundleDetails List<BundleItemResponse> Bundle line items.

CreateBundleItemRequest

Request to create a bundle line item.

field type validation description
stockItemId int? NotNull() .GreaterThan(0) Stock item identifier. Required.
quantity decimal GreaterThan(0m) Quantity per bundle.
unitOfMeasureId int? Unit-of-measure detail identifier overriding the stock item default.
unitPrice decimal GreaterThanOrEqualTo(0m) Unit price.
price decimal GreaterThanOrEqualTo(0m) Line total price.
dimensionsValue decimal? Dimension multiplier for dimension-based lines; defaults to zero.
dimensions string MaximumLength(50) Dimension expression (e.g. "LWH").
comments string MaximumLength(100) Optional line comment.

StockItemReference

Lightweight stock-item reference (id + code + description).

field type description
id int The stock-item id.
code string The stock-item code.
description string The stock-item description.

TaxReference

Lightweight tax reference (id + name + rate).

field type description
id int The tax id.
name string The tax name.
rate decimal The tax rate as a percentage.

UnitOfMeasureReference

Lightweight unit-of-measure reference (id + name).

field type description
id int The unit-of-measure id.
name string The unit-of-measure name.