Emporix · Schema
salesOrder
CompanyCommerceE-CommerceB2B CommerceHeadless CommerceComposable CommerceCommerce OrchestrationAgentic CommerceiPaaSSoftware-as-a-Service
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/emporix/main/json-schema/emporix-sales-order-schema.json",
"title": "salesOrder",
"x-generated": "2026-10-18",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/emporix-order-openapi.yml#/components/schemas/salesOrder",
"allOf": [
{
"type": "object",
"properties": {
"id": {
"description": "Order's unique identifier.",
"type": "string"
},
"quoteId": {
"description": "Identifier of the quote from which the order has been created",
"type": "string"
},
"createdBy": {
"description": "Order's creator name.",
"type": "string"
},
"assistedBuying": {
"$ref": "#/$defs/assistedBuying"
},
"checkout": {
"type": "boolean",
"description": "Indicates whether this order was created through checkout. Available in tenant-managed responses only.\n\nWhen set to `true`, only one order can be created per cart ID — enforcing that a checkout cart results in a single order.\nOrders created through the checkout flow have this flag set to `true` by default.\n"
}
}
},
{
"$ref": "#/$defs/orderUpdateDto"
}
],
"$defs": {
"YRN": {
"type": "string",
"title": "YRN",
"description": "In YaaS, a global resource identifier is a Uniform Resource Name (URN) with a custom YaaS schema and is called a YaaS Resource Name, or YRN.\n\nIt is a unique identifier, which stores information about a resource, such as its type, ID or name of the tenant.",
"minLength": 1
},
"address": {
"title": "Address",
"description": "Customer's address.",
"type": "object",
"properties": {
"contactName": {
"description": "Customer's name.",
"type": "string"
},
"companyName": {
"description": "Company name.",
"type": "string"
},
"street": {
"description": "Street name.",
"type": "string"
},
"streetNumber": {
"description": "Street number.",
"type": "string"
},
"streetAppendix": {
"description": "Street appendix.",
"type": "string"
},
"extraLine1": {
"description": "Additional address information.",
"type": "string"
},
"extraLine2": {
"description": "Additional address information.",
"type": "string"
},
"extraLine3": {
"description": "Additional address information.",
"type": "string"
},
"extraLine4": {
"description": "Additional address information.",
"type": "string"
},
"zipCode": {
"description": "Customer's address - zip code.",
"type": "string"
},
"city": {
"description": "City name.",
"type": "string"
},
"state": {
"description": "State name.",
"type": "string"
},
"country": {
"description": "Country name.",
"type": "string"
},
"contactPhone": {
"description": "Customer's contact phone.",
"type": "string"
},
"metadata": {
"allOf": [
{
"$ref": "#/$defs/mixinsMetadata"
},
{
"type": "object",
"description": "Metadata."
}
]
},
"mixins": {
"description": "Additional address information.",
"type": "object",
"additionalProperties": true
}
},
"required": [
"contactName",
"street",
"city",
"zipCode",
"country"
]
},
"aggregateFee": {
"type": "object",
"title": "Aggregate Fee",
"properties": {
"total": {
"type": "object",
"properties": {
"subTotal": {
"type": "number"
},
"totalTax": {
"type": "number"
},
"total": {
"type": "number"
}
}
},
"elements": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"allOf": [
{
"$ref": "#/$defs/localizedValue"
},
{
"type": "object",
"description": "Fee name."
}
]
},
"yrn": {
"type": "string",
"description": "Unique identifier of the fee."
},
"taxCode": {
"type": "string",
"description": "Tax code of the fee."
},
"total": {
"type": "object",
"properties": {
"subTotal": {
"type": "number"
},
"totalTax": {
"type": "number"
},
"total": {
"type": "number"
}
}
},
"taxValues": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the tax."
},
"value": {
"type": "number",
"description": "Value of the tax."
},
"rate": {
"type": "number",
"description": "Rate of the tax."
}
}
}
}
}
}
}
},
"required": [
"total"
]
},
"assistedBuying": {
"title": "assistedBuying",
"type": "object",
"properties": {
"entries": {
"type": "array",
"description": "List of operations done by an employee on behalf of a customer.",
"items": {
"$ref": "#/$defs/assistedBuyingEntry"
}
}
},
"description": "The field is populated only if an assisted buying operation was performed. The field is read-only. There is no possibility to update it by PUT/PATCH operation."
},
"assistedBuyingEntry": {
"title": "AssistedBuyingEntry",
"type": "object",
"properties": {
"employeeId": {
"type": "string",
"description": "Identifier of an employee who performed an action on behalf of a customer."
},
"operation": {
"type": "string",
"description": "'Indicates an operation type done by an employee on behalf of a customer. Available options: `CREATE` and `UPDATE_STATUS`'",
"enum": [
"CREATE",
"UPDATE_STATUS"
]
},
"timestamp": {
"type": "string",
"description": "Indicates a timestamp when an operation was performed."
}
}
},
"bundleProduct": {
"title": "Bundle Product",
"description": "Represents the product used in a bundle.",
"type": "object",
"properties": {
"amount": {
"description": "The number of given products assigned to the bundle.",
"type": "number"
},
"productId": {
"description": "Id of the product assigned to the bundle.",
"type": "string"
}
}
},
"calculatedAppliedDiscount": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID of the applied discount."
},
"value": {
"type": "number",
"format": "double",
"description": "The calculated value of the discount."
},
"price": {
"allOf": [
{
"$ref": "#/$defs/calculatedPrice"
},
{
"type": "object",
"description": "Applied discount's price. When discount is applied before tax the value equals `price.netValue` and `price.grossValue` for discount applied after tax."
}
]
},
"discountType": {
"type": "string",
"enum": [
"PERCENT",
"ABSOLUTE",
"FREE_SHIPPING"
],
"description": "The discount type which shows how the discount was calculated."
},
"origin": {
"type": "string",
"enum": [
"INTERNAL",
"EXTERNAL"
],
"description": "Indicates whether the discount is from internal coupon (INTERNAL) or external discount (EXTERNAL)."
}
}
},
"calculatedFee": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier of the fee."
},
"type": {
"type": "string",
"enum": [
"PERCENT",
"ABSOLUTE",
"ABSOLUTE_MULTIPLY_ITEMQUANTITY"
],
"description": "Type of the fee."
},
"name": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Localized names of the fee."
},
"origin": {
"enum": [
"INTERNAL",
"EXTERNAL"
],
"description": "origin of the fee, `INTERNAL` defined in commerce engine, `EXTERNAL` specified when item is added to the cart."
},
"price": {
"$ref": "#/$defs/calculatedPrice"
},
"discountedPrice": {
"$ref": "#/$defs/calculatedPriceWithDiscounts"
}
}
},
"calculatedPaymentFee": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier of the fee."
},
"type": {
"type": "string",
"enum": [
"PERCENT",
"ABSOLUTE",
"ABSOLUTE_MULTIPLY_ITEMQUANTITY"
],
"description": "Type of the fee."
},
"name": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Localized names of the fee."
},
"price": {
"$ref": "#/$defs/calculatedPrice"
}
},
"title": "calculatedPaymentFee"
},
"calculatedPrice": {
"type": "object",
"properties": {
"netValue": {
"type": "number",
"format": "double",
"description": "Net value of the price."
},
"grossValue": {
"type": "number",
"format": "double",
"description": "Gross value of the price."
},
"taxValue": {
"type": "number",
"format": "double",
"description": "Tax value of the price."
},
"taxCode": {
"type": "string",
"description": "Tax code applied to the price."
},
"taxRate": {
"type": "number",
"format": "double",
"description": "Tax rate applied to the price."
}
},
"description": "A price calculation model containing net and gross amounts along with their associated tax details.",
"required": [
"netValue",
"grossValue",
"taxValue"
]
},
"calculatedPriceWithDiscounts": {
"allOf": [
{
"$ref": "#/$defs/calculatedPrice"
},
{
"type": "object",
"properties": {
"appliedDiscounts": {
"type": "array",
"items": {
"$ref": "#/$defs/calculatedAppliedDiscount"
}
}
}
}
]
},
"calculatedPriceWithTaxAggregate": {
"allOf": [
{
"$ref": "#/$defs/calculatedPrice"
},
{
"type": "object",
"description": "A price calculation model that includes tax aggregate information.",
"properties": {
"taxAggregate": {
"$ref": "#/$defs/calculatedTaxAggregate"
}
}
}
]
},
"calculatedTaxAggregate": {
"type": "object",
"properties": {
"lines": {
"type": "array",
"items": {
"$ref": "#/$defs/calculatedPrice"
},
"description": "List of tax calculations grouped by taxCode and taxRate"
}
},
"description": "Aggregated tax information showing detailed tax calculations"
},
"calculatedTotalDiscount": {
"type": "object",
"description": "The total combined value of all applied discounts.",
"properties": {
"calculationType": {
"type": "string",
"enum": [
"ApplyDiscountBeforeTax",
"ApplyDiscountAfterTax"
],
"description": "Indicates whether discounts were calculated using net or gross price values."
},
"value": {
"type": "number",
"format": "double",
"description": "The calculated amount of all discounts."
},
"price": {
"allOf": [
{
"$ref": "#/$defs/calculatedPrice"
},
{
"type": "object",
"description": "Total discounts price. When discounts are applied before tax the value equals `price.netValue` and `price.grossValue` for discounts applied after tax."
}
]
},
"appliedDiscounts": {
"type": "array",
"description": "All applied discounts that are parts of the sum.",
"items": {
"$ref": "#/$defs/calculatedAppliedDiscount"
}
}
}
},
"channel": {
"title": "Channel",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"source": {
"type": "string"
}
}
},
"customer": {
"title": "Customer",
"description": "Customer data. \n\nOne of these properties needs to be provided:\n- `name` for business customers (B2B)\n- `firstName` and `lastName` for individual customers (B2C)\n",
"properties": {
"id": {
"description": "Customer's unique identifier.",
"type": "string",
"default": "ANONYMOUS"
},
"name": {
"description": "Customer's name.",
"type": "string"
},
"title": {
"description": "Customer's title.",
"type": "string"
},
"firstName": {
"description": "Customer's first name.",
"type": "string"
},
"middleName": {
"description": "Customer's middle name.",
"type": "string"
},
"lastName": {
"description": "Customer's last name.",
"type": "string"
},
"company": {
"description": "Company name.",
"type": "string"
},
"email": {
"description": "Customer's email address.",
"type": "string"
},
"metadata": {
"allOf": [
{
"$ref": "#/$defs/mixinsMetadata"
},
{
"type": "object",
"description": "Metadata."
}
]
},
"mixins": {
"description": "Customer additional information.",
"type": "object",
"additionalProperties": true
}
},
"required": [
"email"
]
},
"deliveryTimeRange": {
"title": "Delivery Time Range",
"type": "object",
"properties": {
"timeFrom": {
"type": "string",
"format": "time",
"description": "Start Time"
},
"timeTo": {
"type": "string",
"format": "time",
"description": "End Time"
}
}
},
"deliveryWindow": {
"title": "Delivery Window",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Id of the delivery window"
},
"deliveryDate": {
"type": "string",
"format": "date",
"description": "Delivery date."
},
"slotId": {
"type": "string",
"description": "ID of the delivery slot"
},
"deliveryTimeRange": {
"$ref": "#/$defs/deliveryTimeRange"
},
"deliveryCycle": {
"type": "string",
"description": "Delivery cycle to which the order is assigned (containing date)"
},
"deliveryCycleName": {
"type": "string",
"description": "Delivery cycle name to which the order is assigned"
}
}
},
"discount": {
"title": "Discount",
"properties": {
"code": {
"description": "Discount's code.",
"type": "string"
},
"amount": {
"description": "Amount of discount.",
"type": "number"
},
"currency": {
"description": "Three-letter currency code, compliant with the ISO 4217 standard.",
"type": "string"
},
"name": {
"description": "Discount's name.",
"type": "string"
},
"discountRate": {
"description": "Discount's rate.",
"type": "number"
},
"calculationType": {
"description": "Discount's code.calculation type.",
"type": "string"
},
"discountCalculationType": {
"description": "Determines whether the coupon is applied to the total or subtotal value of the order.",
"type": "string",
"enum": [
"SUBTOTAL",
"TOTAL"
]
},
"discountType": {
"description": "Discount's type.",
"type": "string"
},
"sequenceId": {
"description": "Discount's unique sequence ID identifier.",
"type": "integer"
},
"link": {
"allOf": [
{
"$ref": "#/$defs/reference"
},
{
"type": "object",
"description": "Link to discount."
}
]
},
"categoryRestricted": {
"description": "This flag indicates if discount is category restricted.",
"type": "boolean"
},
"vendorRestricted": {
"description": "Indicates whether the discount is limited to the vendors in `restrictions.vendors`.",
"type": "boolean"
},
"restrictions": {
"allOf": [
{
"$ref": "#/$defs/discountRestrictions"
},
{
"type": "object",
"description": "The restrictions based on which the discount can be applied."
}
]
}
},
"required": [
"code",
"currency"
]
},
"discountRestrictions": {
"title": "Discount Restrictions",
"properties": {
"validFrom": {
"description": "The date from which the discount restriction is valid.",
"type": "string"
},
"validUntil": {
"description": "The date from which the discount restriction is valid.",
"type": "string"
},
"minOrderValue": {
"allOf": [
{
"$ref": "#/$defs/discountRestrictionsPrice"
},
{
"type": "object",
"description": "The minimum order price for which the discount is valid. When `vendorRestricted` is `true`, this value is checked against the total of the matching vendor items."
}
]
},
"includedCategories": {
"description": "List of included categories.",
"type": "array",
"items": {
"type": "string"
}
},
"excludedCategories": {
"description": "List of excluded categories.",
"type": "array",
"items": {
"type": "string"
}
},
"vendors": {
"description": "Vendor identifiers to which the discount applies.",
"type": "array",
"items": {
"type": "string"
}
}
}
},
"discountRestrictionsPrice": {
"title": "Discount Restrictions Price",
"properties": {
"amount": {
"description": "The amount of discount price",
"type": "number"
},
"currency": {
"description": "The currency of the price",
"type": "string"
}
}
},
"externalDiscount": {
"type": "object",
"description": "External discount that was applied to order items.",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier of the external discount."
},
"discountType": {
"$ref": "#/$defs/externalDiscountType"
},
"value": {
"type": "number",
"format": "double",
"minimum": 0.0,
"maximum": 100.0,
"description": "Value of the discount (percentage e.g 15.00 -> 15% or absolute amount e.g 10.00 -> 10 EUR depending on the discountType). For discountType=`PERCENT`, maximum is 100.0; for ABSOLUTE, there is no limit."
},
"includeFees": {
"type": "boolean",
"description": "Flag indicating whether the discount is also applied to fees."
},
"sequence": {
"type": "integer",
"description": "Sequence number determining the order in which discounts are applied. The lowest sequence number is applied first."
}
},
"required": [
"id",
"discountType",
"value"
]
},
"externalDiscountType": {
"type": "string",
"description": "Type of the external discount.",
"enum": [
"PERCENT",
"ABSOLUTE"
]
},
"externalFee": {
"type": "object",
"required": [
"feeType"
],
"properties": {
"id": {
"type": "string",
"description": "Unique identifier of the fee."
},
"name": {
"allOf": [
{
"$ref": "#/$defs/localizedValue"
}
],
"description": "Fee name."
},
"feeType": {
"type": "string",
"description": "Type of the fee.",
"enum": [
"PERCENT",
"ABSOLUTE",
"ABSOLUTE_MULTIPLY_ITEMQUANTITY"
]
},
"feePercentage": {
"type": "number",
"description": "Value of the fee as percentage. It must be provided when feeType equals `PERCENT`."
},
"feeAbsolute": {
"type": "object",
"description": "Value of the fee as absolute. It must be provided when feeType equals `ABSOLUTE` or `ABSOLUTE_MULTIPLY_ITEMQUANTITY`.",
"required": [
"currency",
"amount"
],
"properties": {
"currency": {
"type": "string",
"description": "Currency of the fee absolute."
},
"amount": {
"type": "number",
"description": "Value of the fee absolute."
}
}
},
"taxable": {
"type": "boolean",
"description": "It marks whether tax should be included to the fee or not. A taxable fee must have the `taxCode` attribute provided."
},
"taxCode": {
"type": "string",
"description": "Tax code of the fee."
}
}
},
"localizedValue": {
"description": "Localized value which can have different structure which depends on provided `Content-Language` header.",
"oneOf": [
{
"type": "string"
},
{
"type": "object",
"additionalProperties": {
"type": "string"
}
}
]
},
"measurementUnit": {
"title": "Measurement Unit",
"description": "The entry measurement unit",
"type": "object",
"properties": {
"unit": {
"description": "Code of the unit, like `kg` or `l`.",
"type": "string"
},
"value": {
"description": "Quantity of given unit.",
"type": "number"
}
},
"required": [
"value"
]
},
"media": {
"title": "Media",
"description": "The media.",
"type": "object",
"properties": {
"id": {
"description": "Unique identifier of a media file.",
"type": "string"
},
"url": {
"description": "Media URL.",
"type": "string"
},
"stored": {
"description": "Media stored flag.",
"type": "boolean",
"default": false
}
}
},
"metadataMixins": {
"title": "Metadata DTO",
"type": "object",
"additionalProperties": true,
"properties": {
"mixins": {
"type": "object",
"additionalProperties": true
},
"version": {
"type": "integer"
}
}
},
"mixinsMetadata": {
"title": "Product Metadata",
"description": "Product Metadata",
"type": "object",
"additionalProperties": true,
"properties": {
"mixins": {
"description": "A key-value map of mixins, where the mixin name is a key and schema url is a value",
"type": "object",
"additionalProperties": true
},
"version": {
"description": "The document version number.",
"type": "integer"
}
}
},
"orderCalculatedPrice": {
"type": "object",
"description": "A breakdown of the total price calculated from all line items, including detailed pricing components.",
"properties": {
"price": {
"allOf": [
{
"$ref": "#/$defs/calculatedPrice"
},
{
"type": "object",
"description": "The sum of all line item price values, it means unit prices multiplied by quantity - `entries[].calculatedPrice.price`.",
"properties": {
"netValue": {
"type": "number",
"format": "double",
"description": "Net value of the price, price without tax."
},
"grossValue": {
"type": "number",
"format": "double",
"description": "Gross value of the price, price with tax."
},
"taxValue": {
"type": "number",
"format": "double",
"description": "Tax value of the price, it's the actual amount of tax that has to be paid."
},
"taxCode": {
"type": "string",
"description": "Tax code applied to the price, a tax code is a country's set of tax rules. If all fees have the same taxRate, then the value is present. Otherwise, the field is not returned."
},
"taxRate": {
"type": "number",
"format": "double",
"description": "Tax rate applied to the price, it's the percentage at which an individual or business is taxed. If all fees have the same taxRate, then the value is present. Otherwise, the field is not returned."
}
}
}
]
},
"upliftValue": {
"allOf": [
{
"$ref": "#/$defs/calculatedPrice"
},
{
"type": "object",
"description": "The sum of all line item uplift values. Uplift value is the maximum additional amount to be authorized for payment to cover potential price adjustments during packaging of weight-based products. For example, if the item’s `price.netValue=12`, the `upliftValue.netValue=1,2`, with 10% uplift configured. If the uplift value is not configured for any item, it's not returned in the response.",
"properties": {
"netValue": {
"type": "number",
"format": "double",
"description": "Net value of the uplift amount, value without tax."
},
"grossValue": {
"type": "number",
"format": "double",
"description": "Gross value of the uplift amount, value with tax."
},
"taxValue": {
"type": "number",
"format": "double",
"description": "Tax value of the uplift amount, it's the actual amount of tax that has to be paid."
},
"taxCode": {
"type": "string",
"description": "Tax code applied to the uplift amount, a tax code is a country's set of tax rules. If all fees have the same taxRate, then the value is present. Otherwise, the field is not returned."
},
"taxRate": {
"type": "number",
"format": "double",
"description": "Tax rate applied to the uplift amount, it's the percentage at which an individual or business is taxed. If all fees have the same taxRate, then the value is present. Otherwise, the field is not returned."
}
}
}
]
},
"discountedPrice": {
"allOf": [
{
"$ref": "#/$defs/calculatedPriceWithDiscounts"
},
{
"type": "object",
"description": "The sum of all line item prices after discounts are calculated. It's included in the response if at least one line item has a discounted price. It's the total amount of discounted prices for items with applied discounts and the original prices for items without discounts. It reflects the total cost of all line items after discounts.",
"properties": {
"netValue": {
"type": "number",
"format": "double",
"description": "The net value after applying discounts."
},
"grossValue": {
"type": "number",
"format": "double",
"description": "The gross value after applying discounts."
},
"taxValue": {
"type": "number",
"format": "double",
"description": "The difference between `grossValue` and `netValue`."
},
"taxCode": {
"type": "string",
"description": "Tax code applied to the discounted price, a tax code is a country's set of tax rules. If all fees have the same taxRate, then the value is present. Otherwise, the field is not returned."
},
"taxRate": {
"type": "number",
"format": "double",
"description": "Tax rate applied to the discounted price, it's the percentage at which an individual or business is taxed. If all fees have the same taxRate, then the value is present. Otherwise, the field is not returned."
}
}
}
]
},
"paymentFees": {
"type": "array",
"description": "The list of payment fees applied to an order. Payment fees are not changed and are not discounted, even when a discount or coupon is applied to the total.",
"items": {
"allOf": [
{
"$ref": "#/$
# --- truncated at 32 KB (97 KB total) ---
# Full source: https://artifacts.apis.io/emporix/json-schema/emporix-sales-order-schema.json
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/emporix-sales-order"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.