Miridia
Portal
Catalogue

Price lists

The price lists operations of the Core API.

Base URL: https://api.miridia.io. Read Authentication and Conventions before you call these operations.

MethodPathOperation
GET/api/v1/pricelistsGet price lists
POST/api/v1/pricelistsCreate price list
GET/api/v1/pricelists/{priceListId}Get price list
PUT/api/v1/pricelists/{priceListId}Update price list
DELETE/api/v1/pricelists/{priceListId}Delete price list
POST/api/v1/pricelists/{priceListId}/itemsCreate item
PUT/api/v1/pricelists/{priceListId}/items/{itemId}Update item
DELETE/api/v1/pricelists/{priceListId}/items/{itemId}Remove item
POST/api/v1/pricelists/{priceListId}/assignmentsAdd assignment
DELETE/api/v1/pricelists/{priceListId}/assignments/{assignmentId}Remove assignment
GET/api/v1/pricelists/resolveResolve price

Get price lists

GET/api/v1/pricelists

Access. Send a bearer token or an API key. The caller needs the Products view permission.

Response

200. Returns a JSON array. Each item is PriceListResponse.

Request
curl -X GET "https://api.miridia.io/api/v1/pricelists" \
  -H "Authorization: Bearer $MIRIDIA_TOKEN" \
  -H "X-Business-Id: $MIRIDIA_BUSINESS_ID"
Response
[
  {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "title": "string",
    "description": "string",
    "currencyCode": "Eur",
    "status": "Active",
    "effectiveFrom": "2026-09-29T08:00:00Z",
    "effectiveTo": "2026-09-29T08:00:00Z",
    "pricingMode": "Fixed",
    "adjustmentType": "Percentage",
    "adjustmentValue": 0,
    "roundingStep": 0,
    "items": [
      {}
    ],
    "assignments": [
      {}
    ]
  }
]

Create price list

POST/api/v1/pricelists

Access. Send a bearer token or an API key. The caller needs the Products modify permission.

Request body

Send JSON with the shape CreatePriceListCommand.

FieldTypeRequiredDescription
titlestringYes
descriptionstringNo
currencyCodeenum CurrencyCodeNoOne of: Invalid, Eur, Usd, Gbp, Zar, Zmw.
statusenum PriceListStatusNoOne of: Active, Inactive.
effectiveFromstring (date-time)No
effectiveTostring (date-time)No
pricingModeenum PriceListPricingModeNoOne of: Fixed, Relative.
adjustmentTypeenum PriceAdjustmentTypeNoOne of: Percentage, Amount.
adjustmentValuenumber (double)No
roundingStepnumber (double)No

Response

200. Returns a SingleResult envelope. The data field is PriceListResponse.

Request
curl -X POST "https://api.miridia.io/api/v1/pricelists" \
  -H "Authorization: Bearer $MIRIDIA_TOKEN" \
  -H "X-Business-Id: $MIRIDIA_BUSINESS_ID" \
  -H "Content-Type: application/json" \
  -d '{
  "title": "string",
  "description": "string",
  "currencyCode": "Eur",
  "status": "Active",
  "effectiveFrom": "2026-09-29T08:00:00Z",
  "effectiveTo": "2026-09-29T08:00:00Z",
  "pricingMode": "Fixed",
  "adjustmentType": "Percentage",
  "adjustmentValue": 0,
  "roundingStep": 0
}'
Response
{
  "message": "string",
  "messages": [
    {
      "title": "string",
      "message": "string",
      "level": "Standard",
      "icon": "SyncAlert",
      "code": "string"
    }
  ],
  "data": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "title": "string",
    "description": "string",
    "currencyCode": "Eur",
    "status": "Active",
    "effectiveFrom": "2026-09-29T08:00:00Z",
    "effectiveTo": "2026-09-29T08:00:00Z",
    "pricingMode": "Fixed",
    "adjustmentType": "Percentage",
    "adjustmentValue": 0,
    "roundingStep": 0,
    "items": [
      {}
    ],
    "assignments": [
      {}
    ]
  },
  "statusCode": "OK",
  "canRead": true,
  "canEdit": true,
  "canDelete": true
}

Get price list

GET/api/v1/pricelists/{priceListId}

Access. Send a bearer token or an API key. The caller needs the Products view permission.

Parameters

NameInTypeRequiredDescription
priceListIdpathstring (uuid)Yes

Response

200. Returns a SingleResult envelope. The data field is PriceListResponse.

Request
curl -X GET "https://api.miridia.io/api/v1/pricelists/{priceListId}" \
  -H "Authorization: Bearer $MIRIDIA_TOKEN" \
  -H "X-Business-Id: $MIRIDIA_BUSINESS_ID"
Response
{
  "message": "string",
  "messages": [
    {
      "title": "string",
      "message": "string",
      "level": "Standard",
      "icon": "SyncAlert",
      "code": "string"
    }
  ],
  "data": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "title": "string",
    "description": "string",
    "currencyCode": "Eur",
    "status": "Active",
    "effectiveFrom": "2026-09-29T08:00:00Z",
    "effectiveTo": "2026-09-29T08:00:00Z",
    "pricingMode": "Fixed",
    "adjustmentType": "Percentage",
    "adjustmentValue": 0,
    "roundingStep": 0,
    "items": [
      {}
    ],
    "assignments": [
      {}
    ]
  },
  "statusCode": "OK",
  "canRead": true,
  "canEdit": true,
  "canDelete": true
}

Update price list

PUT/api/v1/pricelists/{priceListId}

Access. Send a bearer token or an API key. The caller needs the Products modify permission.

Parameters

NameInTypeRequiredDescription
priceListIdpathstring (uuid)Yes

Request body

Send JSON with the shape UpdatePriceListCommand.

FieldTypeRequiredDescription
idstring (uuid)No
titlestringYes
descriptionstringNo
currencyCodeenum CurrencyCodeNoOne of: Invalid, Eur, Usd, Gbp, Zar, Zmw.
statusenum PriceListStatusNoOne of: Active, Inactive.
effectiveFromstring (date-time)No
effectiveTostring (date-time)No
pricingModeenum PriceListPricingModeNoOne of: Fixed, Relative.
adjustmentTypeenum PriceAdjustmentTypeNoOne of: Percentage, Amount.
adjustmentValuenumber (double)No
roundingStepnumber (double)No

Response

200. Returns a SingleResult envelope. The data field is PriceListResponse.

Request
curl -X PUT "https://api.miridia.io/api/v1/pricelists/{priceListId}" \
  -H "Authorization: Bearer $MIRIDIA_TOKEN" \
  -H "X-Business-Id: $MIRIDIA_BUSINESS_ID" \
  -H "Content-Type: application/json" \
  -d '{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "title": "string",
  "description": "string",
  "currencyCode": "Eur",
  "status": "Active",
  "effectiveFrom": "2026-09-29T08:00:00Z",
  "effectiveTo": "2026-09-29T08:00:00Z",
  "pricingMode": "Fixed",
  "adjustmentType": "Percentage",
  "adjustmentValue": 0,
  "roundingStep": 0
}'
Response
{
  "message": "string",
  "messages": [
    {
      "title": "string",
      "message": "string",
      "level": "Standard",
      "icon": "SyncAlert",
      "code": "string"
    }
  ],
  "data": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "title": "string",
    "description": "string",
    "currencyCode": "Eur",
    "status": "Active",
    "effectiveFrom": "2026-09-29T08:00:00Z",
    "effectiveTo": "2026-09-29T08:00:00Z",
    "pricingMode": "Fixed",
    "adjustmentType": "Percentage",
    "adjustmentValue": 0,
    "roundingStep": 0,
    "items": [
      {}
    ],
    "assignments": [
      {}
    ]
  },
  "statusCode": "OK",
  "canRead": true,
  "canEdit": true,
  "canDelete": true
}

Delete price list

DELETE/api/v1/pricelists/{priceListId}

Access. Send a bearer token or an API key. The caller needs the Products delete permission.

Parameters

NameInTypeRequiredDescription
priceListIdpathstring (uuid)Yes

Response

200. Returns a SingleResult envelope. The data field is boolean.

Request
curl -X DELETE "https://api.miridia.io/api/v1/pricelists/{priceListId}" \
  -H "Authorization: Bearer $MIRIDIA_TOKEN" \
  -H "X-Business-Id: $MIRIDIA_BUSINESS_ID"
Response
{
  "message": "string",
  "messages": [
    {
      "title": "string",
      "message": "string",
      "level": "Standard",
      "icon": "SyncAlert",
      "code": "string"
    }
  ],
  "data": true,
  "statusCode": "OK",
  "canRead": true,
  "canEdit": true,
  "canDelete": true
}

Create item

POST/api/v1/pricelists/{priceListId}/items

Access. Send a bearer token or an API key. The caller needs the Products modify permission.

Parameters

NameInTypeRequiredDescription
priceListIdpathstring (uuid)Yes

Request body

Send JSON with the shape CreatePriceListItemCommand. Creates a new per-product price override on a price list. Create-only.

FieldTypeRequiredDescription
priceListIdstring (uuid)NoThe price list to which this item belongs.
productIdstring (uuid)No
subTotalnumber (double)No
totalPricenumber (double)No
totalTaxnumber (double)No
totalDiscountnumber (double)No
discountnumber (double)No
discountTypeenum DiscountTypeNoOne of: None, Percentage, FixedValue.
taxRatenumber (double)No
taxIncludedbooleanNo
taxTypeenum TaxTypeNoOne of: None, Sales, Vat, Gst, Pst, Hst, Qst, Ist, Ust, Cst.
priceUnitenum UnitOfMeasureNoOne of: Each, Kilogram, Gram, Litre, Millilitre, Metre, Centimetre, SquareMetre, CubicMetre, Pair, Pack, Box, Roll, Sheet.
pricePackQuantitynumber (double)No
basisenum PriceListItemBasisNoOne of: Fixed, Pegged.
adjustmentTypeenum PriceAdjustmentTypeNoOne of: Percentage, Amount.
adjustmentValuenumber (double)No

Response

200. Returns a SingleResult envelope. The data field is PriceListItemResponse.

Request
curl -X POST "https://api.miridia.io/api/v1/pricelists/{priceListId}/items" \
  -H "Authorization: Bearer $MIRIDIA_TOKEN" \
  -H "X-Business-Id: $MIRIDIA_BUSINESS_ID" \
  -H "Content-Type: application/json" \
  -d '{
  "priceListId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "subTotal": 0,
  "totalPrice": 0,
  "totalTax": 0,
  "totalDiscount": 0,
  "discount": 0,
  "discountType": "Percentage",
  "taxRate": 0,
  "taxIncluded": true,
  "taxType": "Sales",
  "priceUnit": "Each",
  "pricePackQuantity": 0,
  "basis": "Fixed",
  "adjustmentType": "Percentage",
  "adjustmentValue": 0
}'

Update item

PUT/api/v1/pricelists/{priceListId}/items/{itemId}

Access. Send a bearer token or an API key. The caller needs the Products modify permission.

Parameters

NameInTypeRequiredDescription
priceListIdpathstring (uuid)Yes
itemIdpathstring (uuid)Yes

Request body

Send JSON with the shape UpdatePriceListItemCommand. Updates an existing per-product price override on a price list, identified by item id. The product the item applies to is not reassignable. Only the pricing fields are updated.

FieldTypeRequiredDescription
priceListIdstring (uuid)NoThe price list to which this item belongs.
itemIdstring (uuid)NoThe item being updated.
subTotalnumber (double)No
totalPricenumber (double)No
totalTaxnumber (double)No
totalDiscountnumber (double)No
discountnumber (double)No
discountTypeenum DiscountTypeNoOne of: None, Percentage, FixedValue.
taxRatenumber (double)No
taxIncludedbooleanNo
taxTypeenum TaxTypeNoOne of: None, Sales, Vat, Gst, Pst, Hst, Qst, Ist, Ust, Cst.
priceUnitenum UnitOfMeasureNoOne of: Each, Kilogram, Gram, Litre, Millilitre, Metre, Centimetre, SquareMetre, CubicMetre, Pair, Pack, Box, Roll, Sheet.
pricePackQuantitynumber (double)No
basisenum PriceListItemBasisNoOne of: Fixed, Pegged.
adjustmentTypeenum PriceAdjustmentTypeNoOne of: Percentage, Amount.
adjustmentValuenumber (double)No

Response

200. Returns a SingleResult envelope. The data field is PriceListItemResponse.

Request
curl -X PUT "https://api.miridia.io/api/v1/pricelists/{priceListId}/items/{itemId}" \
  -H "Authorization: Bearer $MIRIDIA_TOKEN" \
  -H "X-Business-Id: $MIRIDIA_BUSINESS_ID" \
  -H "Content-Type: application/json" \
  -d '{
  "priceListId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "itemId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "subTotal": 0,
  "totalPrice": 0,
  "totalTax": 0,
  "totalDiscount": 0,
  "discount": 0,
  "discountType": "Percentage",
  "taxRate": 0,
  "taxIncluded": true,
  "taxType": "Sales",
  "priceUnit": "Each",
  "pricePackQuantity": 0,
  "basis": "Fixed",
  "adjustmentType": "Percentage",
  "adjustmentValue": 0
}'

Remove item

DELETE/api/v1/pricelists/{priceListId}/items/{itemId}

Access. Send a bearer token or an API key. The caller needs the Products delete permission.

Parameters

NameInTypeRequiredDescription
priceListIdpathstring (uuid)Yes
itemIdpathstring (uuid)Yes

Response

200. Returns a SingleResult envelope. The data field is boolean.

Request
curl -X DELETE "https://api.miridia.io/api/v1/pricelists/{priceListId}/items/{itemId}" \
  -H "Authorization: Bearer $MIRIDIA_TOKEN" \
  -H "X-Business-Id: $MIRIDIA_BUSINESS_ID"
Response
{
  "message": "string",
  "messages": [
    {
      "title": "string",
      "message": "string",
      "level": "Standard",
      "icon": "SyncAlert",
      "code": "string"
    }
  ],
  "data": true,
  "statusCode": "OK",
  "canRead": true,
  "canEdit": true,
  "canDelete": true
}

Add assignment

POST/api/v1/pricelists/{priceListId}/assignments

Access. Send a bearer token or an API key. The caller needs the Products modify permission.

Parameters

NameInTypeRequiredDescription
priceListIdpathstring (uuid)Yes

Request body

Send JSON with the shape AddPriceListAssignmentCommand.

FieldTypeRequiredDescription
priceListIdstring (uuid)No
scopeTypeenum PriceListScopeTypeNoOne of: SalesChannel, Location, DeliveryZone, CustomerGroup, Customer.
scopeIdstring (uuid)No
priorityinteger (int32)No

Response

200. Returns a SingleResult envelope. The data field is PriceListAssignmentResponse.

Request
curl -X POST "https://api.miridia.io/api/v1/pricelists/{priceListId}/assignments" \
  -H "Authorization: Bearer $MIRIDIA_TOKEN" \
  -H "X-Business-Id: $MIRIDIA_BUSINESS_ID" \
  -H "Content-Type: application/json" \
  -d '{
  "priceListId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "scopeType": "SalesChannel",
  "scopeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "priority": 0
}'
Response
{
  "message": "string",
  "messages": [
    {
      "title": "string",
      "message": "string",
      "level": "Standard",
      "icon": "SyncAlert",
      "code": "string"
    }
  ],
  "data": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "scopeType": "SalesChannel",
    "scopeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "priority": 0
  },
  "statusCode": "OK",
  "canRead": true,
  "canEdit": true,
  "canDelete": true
}

Remove assignment

DELETE/api/v1/pricelists/{priceListId}/assignments/{assignmentId}

Access. Send a bearer token or an API key. The caller needs the Products delete permission.

Parameters

NameInTypeRequiredDescription
priceListIdpathstring (uuid)Yes
assignmentIdpathstring (uuid)Yes

Response

200. Returns a SingleResult envelope. The data field is boolean.

Request
curl -X DELETE "https://api.miridia.io/api/v1/pricelists/{priceListId}/assignments/{assignmentId}" \
  -H "Authorization: Bearer $MIRIDIA_TOKEN" \
  -H "X-Business-Id: $MIRIDIA_BUSINESS_ID"
Response
{
  "message": "string",
  "messages": [
    {
      "title": "string",
      "message": "string",
      "level": "Standard",
      "icon": "SyncAlert",
      "code": "string"
    }
  ],
  "data": true,
  "statusCode": "OK",
  "canRead": true,
  "canEdit": true,
  "canDelete": true
}

Resolve price

GET/api/v1/pricelists/resolve

Resolves the effective price for a product in a given context (channel / location / delivery zone / customer group). Checks assigned price lists first (by priority), then falls back to the product's price history. Returns 404 when neither source has a price.

Access. Send a bearer token or an API key. The caller needs the Products view permission.

Parameters

NameInTypeRequiredDescription
productIdquerystring (uuid)No
salesChannelIdquerystring (uuid)No
locationIdquerystring (uuid)No
deliveryZoneIdquerystring (uuid)No
customerGroupIdquerystring (uuid)No
customerIdquerystring (uuid)No
priceTypequeryenum PriceTypeNoOne of: Selling, Purchase, Cost.
asOfquerystring (date-time)No

Response

200. Returns a SingleResult envelope. The data field is ProductPriceDetailsResponse.

Request
curl -X GET "https://api.miridia.io/api/v1/pricelists/resolve" \
  -H "Authorization: Bearer $MIRIDIA_TOKEN" \
  -H "X-Business-Id: $MIRIDIA_BUSINESS_ID"
Response
{
  "message": "string",
  "messages": [
    {
      "title": "string",
      "message": "string",
      "level": "Standard",
      "icon": "SyncAlert",
      "code": "string"
    }
  ],
  "data": {
    "subTotal": 0,
    "totalPrice": 0,
    "totalTax": 0,
    "totalDiscount": 0,
    "discount": 0,
    "discountType": "Percentage",
    "taxIncluded": true,
    "taxRate": 0,
    "taxType": "Sales",
    "currency": {
      "iso4217": "string",
      "utf8Symbol": "string",
      "currencyCode": "Eur"
    },
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "purchasable": true,
    "priceType": "Selling",
    "source": "Manual",
    "notes": "string",
    "effectiveDate": "2026-09-29T08:00:00Z",
    "currencyMetadata": {
      "iso4217": "string",
      "utf8Symbol": "string",
      "currencyCode": "Eur"
    },
    "priceUnit": "Each",
    "pricePackQuantity": 0,
    "pricePerUnit": 0,
    "basis": "FixedItem",
    "adjustmentType": "Percentage",
    "adjustmentValue": 0
  },
  "statusCode": "OK",
  "canRead": true,
  "canEdit": true,
  "canDelete": true
}

Models

The operations on this page use these object types. Select a type to see its fields.

CurrencyResponse
FieldTypeDescription
iso4217string
utf8Symbolstring
currencyCodeenum CurrencyCodeOne of: Invalid, Eur, Usd, Gbp, Zar, Zmw.
PriceListAssignmentResponse
FieldTypeDescription
idstring (uuid)
scopeTypeenum PriceListScopeTypeOne of: SalesChannel, Location, DeliveryZone, CustomerGroup, Customer.
scopeIdstring (uuid)
priorityinteger (int32)
PriceListItemResponse
FieldTypeDescription
idstring (uuid)
productIdstring (uuid)
productTitlestring
productSkustring
subTotalnumber (double)
totalPricenumber (double)
totalTaxnumber (double)
totalDiscountnumber (double)
discountnumber (double)
discountTypeenum DiscountTypeOne of: None, Percentage, FixedValue.
taxRatenumber (double)
taxIncludedboolean
taxTypeenum TaxTypeOne of: None, Sales, Vat, Gst, Pst, Hst, Qst, Ist, Ust, Cst.
priceUnitenum UnitOfMeasureOne of: Each, Kilogram, Gram, Litre, Millilitre, Metre, Centimetre, SquareMetre, CubicMetre, Pair, Pack, Box, Roll, Sheet.
pricePackQuantitynumber (double)
basisenum PriceListItemBasisOne of: Fixed, Pegged.
adjustmentTypeenum PriceAdjustmentTypeOne of: Percentage, Amount.
adjustmentValuenumber (double)
effectivePriceProductPriceDetailsResponse
PriceListResponse
FieldTypeDescription
idstring (uuid)
titlestring
descriptionstring
currencyCodeenum CurrencyCodeOne of: Invalid, Eur, Usd, Gbp, Zar, Zmw.
statusenum PriceListStatusOne of: Active, Inactive.
effectiveFromstring (date-time)
effectiveTostring (date-time)
pricingModeenum PriceListPricingModeOne of: Fixed, Relative.
adjustmentTypeenum PriceAdjustmentTypeOne of: Percentage, Amount.
adjustmentValuenumber (double)
roundingStepnumber (double)
itemsPriceListItemResponse[]
assignmentsPriceListAssignmentResponse[]
ProductPriceDetailsResponse
FieldTypeDescription
subTotalnumber (double)
totalPricenumber (double)
totalTaxnumber (double)
totalDiscountnumber (double)
discountnumber (double)
discountTypeenum DiscountTypeOne of: None, Percentage, FixedValue.
taxIncludedboolean
taxRatenumber (double)
taxTypeenum TaxTypeOne of: None, Sales, Vat, Gst, Pst, Hst, Qst, Ist, Ust, Cst.
currencyCurrencyResponse
idstring (uuid)
purchasableboolean
priceTypeenum PriceTypeOne of: Selling, Purchase, Cost.
sourceenum PriceSourceOne of: Manual, SupplierUpdate, Import, Sync, Migration.
notesstring
effectiveDatestring (date-time)
currencyMetadataCurrencyResponse
priceUnitenum UnitOfMeasureOne of: Each, Kilogram, Gram, Litre, Millilitre, Metre, Centimetre, SquareMetre, CubicMetre, Pair, Pack, Box, Roll, Sheet.
pricePackQuantitynumber (double)
pricePerUnitnumber (double)
basisenum PriceResolutionBasisOne of: FixedItem, PeggedItem, ListRule.
adjustmentTypeenum PriceAdjustmentTypeOne of: Percentage, Amount.
adjustmentValuenumber (double)