---
title: "Calculate prices, discounts, and taxes for a sales order without persisting it."
method: POST
path: "/v2/salesorder/calculate"
tags: ["SalesOrderDomainCommand"]
---

# Calculate prices, discounts, and taxes for a sales order without persisting it.

`POST /v2/salesorder/calculate`

## Headers

- `x-tenant-id` string, uuid, required
- `x-runas` string
- `x-companyid` string

## Request body

- JTLWawiVerkaufsverwaltungPublicApiDataTransferObjectsV2SalesOrderDomainCalculateSalesOrderCommandRequest — Calculate prices, discounts, and taxes for a sales order without persisting it. - Request
  - `calculateSalesOrderRequest` JTLWawiVerkaufsverwaltungPublicApiDataTransferObjectsV2SalesOrderDomainCreateCalculateSalesOrderRequest — Request model for calculating prices, discounts, taxes, and shipping costs for a sales order.
    - `companyId` string, uuid — Represents a key for identifying a firm within the application.
    - `customerId` string, uuid — Represents a unique key for identifying a customer in the JTL system.
    - `shippingMethodId` string, uuid
    - `shopId` string, uuid
    - `billingAddress` JTLWawiVerkaufsverwaltungPublicApiDataTransferObjectsV2SalesOrderDomainCreateCalculateSalesOrderAddress — Address information for sales order calculation (tax determination).
      - `countryIso` string — The ISO code of the address country for tax calculation.
      - `state` string — The state of the address for tax calculation.
      - `vatId` string — The VAT ID of the address for tax calculation.
    - `shipmentAddress` JTLWawiVerkaufsverwaltungPublicApiDataTransferObjectsV2SalesOrderDomainCreateCalculateSalesOrderAddress — Address information for sales order calculation (tax determination).
      - `countryIso` string — The ISO code of the address country for tax calculation.
      - `state` string — The state of the address for tax calculation.
      - `vatId` string — The VAT ID of the address for tax calculation.
    - `lineItems` JTLWawiVerkaufsverwaltungPublicApiDataTransferObjectsV2SalesOrderDomainCreateCalculateSalesOrderLineItemRequest[] — The list of sales order line items to be calculated.
      - `syncNumber` integer — The synchronization identifier for the line item. Must be unique and greater than 0. This ID is assigned by the client and remains constant.
      - `itemId` string, uuid
      - `quantity` number — The quantity of the item. Must be greater than 0.
      - `salesPriceNet` number — Manual override for the net sales price per unit. If set, overrides the calculated price. Cannot be set simultaneously with SalesPriceGross.
      - `salesPriceGross` number — Manual override for the gross sales price per unit. When set, the net price is recalculated. Cannot be set simultaneously with SalesPriceNet.
      - `discountPercent` number — The discount percentage for the line item (e.g., 10.0 for 10% discount).
      - `taxClassId` string, uuid
      - `parentSyncNumber` integer — The SyncNumber of the parent line item. Used to assign configuration components to their parent configuration item.
    - `currencyIso` string — The ISO code of the currency for price calculation (e.g., EUR, USD). If not specified, the default currency will be used.
    - `currencyFactor` number — Manual override for the currency conversion factor. If set (greater than 0), overrides the default factor from the currency settings.
    - `departureCountryIso` string — The ISO code of the departure country for tax calculation.
    - `departureCountryStateCode` string — The departure country state/region code for state-level tax calculation (e.g., US states like CA, NY).
    - `extraWeight` number — Additional weight in kg to add to the order for shipping cost calculation.
    - `specialTaxTreatment` 0 | 1 | 2 | 3 — 0 = None, 1 = ReverseCharge, 2 = ExemptFromVat, 3 = SubjectToVat
    - `taxReference` 0 | 1 — 0 = ShipmentAddress, 1 = BillingAddress
  - `recalculateTaxMode` 0 | 1 | 2 — 0 = NoRecalculation, 1 = KeepNetPrices, 2 = KeepGrossPrices
  - `changes` JTLWawiVerkaufsverwaltungPublicApiDataTransferObjectsV2SalesOrderDomainCreateCalculateSalesOrderRequestChange[] — The history of changes made to the sales order request. Changes are processed in the order specified.
    - `companyId` string, uuid — Represents a key for identifying a firm within the application.
    - `customerId` string, uuid — Represents a unique key for identifying a customer in the JTL system.
    - `shippingMethodId` string, uuid
    - `billingAddress` JTLWawiVerkaufsverwaltungPublicApiDataTransferObjectsV2SalesOrderDomainCreateCalculateSalesOrderAddress — Address information for sales order calculation (tax determination).
      - `countryIso` string — The ISO code of the address country for tax calculation.
      - `state` string — The state of the address for tax calculation.
      - `vatId` string — The VAT ID of the address for tax calculation.
    - `shipmentAddress` JTLWawiVerkaufsverwaltungPublicApiDataTransferObjectsV2SalesOrderDomainCreateCalculateSalesOrderAddress — Address information for sales order calculation (tax determination).
      - `countryIso` string — The ISO code of the address country for tax calculation.
      - `state` string — The state of the address for tax calculation.
      - `vatId` string — The VAT ID of the address for tax calculation.
    - `lineItemChanges` JTLWawiVerkaufsverwaltungPublicApiDataTransferObjectsV2SalesOrderDomainCreateCalculateSalesOrderLineItemRequestChangeSet — Represents a set of changes to apply to line items.
      - `create` JTLWawiVerkaufsverwaltungPublicApiDataTransferObjectsV2SalesOrderDomainCreateCalculateSalesOrderLineItemRequest[] — The list of new line items to create.
        - `syncNumber` integer — The synchronization identifier for the line item. Must be unique and greater than 0. This ID is assigned by the client and remains constant.
        - `itemId` string, uuid
        - `quantity` number — The quantity of the item. Must be greater than 0.
        - `salesPriceNet` number — Manual override for the net sales price per unit. If set, overrides the calculated price. Cannot be set simultaneously with SalesPriceGross.
        - `salesPriceGross` number — Manual override for the gross sales price per unit. When set, the net price is recalculated. Cannot be set simultaneously with SalesPriceNet.
        - `discountPercent` number — The discount percentage for the line item (e.g., 10.0 for 10% discount).
        - `taxClassId` string, uuid
        - `parentSyncNumber` integer — The SyncNumber of the parent line item. Used to assign configuration components to their parent configuration item.
      - `update` JTLWawiVerkaufsverwaltungPublicApiDataTransferObjectsV2SalesOrderDomainCreateCalculateSalesOrderLineItemRequestChange[] — The list of existing line items to update.
        - `syncNumber` integer — The synchronization identifier for the line item to update.
        - `quantity` number — The quantity of the item.
        - `salesPriceNet` number — Manual override for the net sales price per unit. Cannot be set simultaneously with SalesPriceGross.
        - `salesPriceGross` number — Manual override for the gross sales price per unit. When set, the net price is recalculated. Cannot be set simultaneously with SalesPriceNet.
        - `discountPercent` number — The discount percentage for the line item (e.g., 10.0 for 10% discount).
        - `taxClassId` string, uuid
      - `delete` integer[] — The list of sync numbers of line items to delete.
    - `currencyIso` string — The ISO code of the currency for price calculation.
    - `currencyFactor` number — Manual override for the currency conversion factor.
    - `departureCountryIso` string — The ISO code of the departure country for tax calculation.
    - `departureCountryStateCode` string — The departure country state/region code for state-level tax calculation.
    - `extraWeight` number — Additional weight in kg to add to the order for shipping cost calculation.
    - `specialTaxTreatment` 0 | 1 | 2 | 3 — 0 = None, 1 = ReverseCharge, 2 = ExemptFromVat, 3 = SubjectToVat
    - `taxReference` 0 | 1 — 0 = ShipmentAddress, 1 = BillingAddress

## Response `200`

Sales order calculated successfully.

---

[API](https://skmtc.net/jtl-software/apis/scx-authentication-api.md) · [All operations](https://skmtc.net/jtl-software/apis/scx-authentication-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/jtl-software/scx-authentication-api/revisions/f979b1ea6951/schema)
