Skip to content

JTL-WAWI API (Cloud) (1.1)

JTL-Wawi-Version: 1.11.0.0

Introduction

Welcome to the JTL-WAWI technical API documentation. This guide is here to help developers understand how our REST API works and how it can be integrated into your existing systems. We'll delve into the details of authentication and data manipulation processes, providing clear examples along the way. Whether you're a developer or an IT professional, this documentation aims to give you a practical understanding, laying the groundwork for effectively using the JTL-WAWI API to enhance your processes.

Authentication

You register your application with the API by sending a POST request with the required information and corresponding keys. You can find the exact request details at https://developer.jtl-software.com/products/erp/swagger/appregistration. This information has to include the following:

  • AppId
  • DisplayName
  • Description
  • Version
  • ProviderName
  • ProviderWebsite
  • MandatoryApiScopes

This data is crucial for identifying and registering your application with the API. The API uses it to generate a temporary authentication ID that allows your application to access the necessary resources. After successful validation of this information, you will receive the API key required for future authentication and API requests.

Before you can begin the registration process, you must open JTL-Wawi (new interface) and start the registration process under 'Admin->App registration'. Only at this point are you authorised to send the first API call. This step in JTL-Wawi ensures that your application is properly registered and has permission to use the API.

The API will send you an authentication ID in the form of a token. Once you have received this token and successfully completed the registration in JTL-Wawi, you will send another request to the API by including this authentication ID in the URL path.

After successful validation of this second request by the API and confirmation of the correct information, you will be provided with the actual API key. It is important to note that this API key will not be displayed again!

This API key will be used in the future to authenticate requests to the API. It is of utmost importance that you securely store the API key upon receipt, as it cannot be retrieved from any other location in the system.

Download OpenAPI description
Languages
Servers
Mock server

https://developer.jtl-software.com/_mock/products/erpapi/1.1-cloud/openapi/

Production Environment Cloud API Gateway

https://api.jtl-cloud.com/erp/

Beta Environment Cloud API Gateway

https://api.beta.jtl-cloud.com/erp/

Operations

wms

Query all pick lists for a specific wms warehouse that are not completed.
Operations
Operations

transactionStatus

Query all transaction status for sales order
Operations

tax

Returns the Taxrate for the given Item
Operations
Operations

Request

Assign a supplier to a specific item

Security
(oauth2-cloud-id-accessCode and Wawi) or (oauth2-application and Wawi)
Path
itemIdstringrequired
Headers
api-versionstring

Specify the desired API version, e.g. '1.0'. If not provided, the last available version is set.

x-appidstringrequired

This is the name of your application, e.g. "MyApp/1.0.0". It is used to identify your application.

x-appversionstringrequired

This is where the version number of your application is entered, e.g. "1.0.0".

x-runasstring

The User-Id (int or uuid) on whose behalf the request is executed. Requires scope 'Application.RunAs'.

X-SessionIdstring(uuid)

The id of a session in which the call will be executed.

Bodyapplication/jsonrequired

The itemSupplier to create.

SupplierIdinteger(int32)(JTL.Data.Contracts.Keys.LieferantKey)required
Skustring
Example: "ART2394871"
ItemNamestring
Example: "Interdimensional Goggles"
IsStandardboolean
Example: false
PurchasePriceNetnumber(decimal)
Example: 97.23
TaxRatenumber(decimal)
Example: 19
MinimumPurchaseQuantitynumber(decimal)
Example: 1
PermissibleOrderQuantitynumber(decimal)
Example: 2
DeliveryTimeinteger(int32)
Example: 2
UseSupplierDeliveryTimeboolean
Example: false
Stocklevelnumber(decimal)
Example: 34
IsDropshippingboolean
Example: false
MergeStockLevelboolean
Example: false
Commentstring
Example: "A custom comment"
PackagingUnitstring
Example: "box"
AmountPackagingUnitnumber(decimal)
Example: 1
ScalePricesArray of objects(JTL.Wawi.Rest.Contracts.Models.V1.Item.CreateSupplierItemScalePrice)
curl -i -X POST \
  'https://developer.jtl-software.com/_mock/products/erpapi/1.1-cloud/openapi/items/{itemId}/suppliers' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-SessionId: 497f6eca-6276-4993-bfeb-53cbbbba6f08' \
  -H 'api-version: string' \
  -H 'x-api-key: YOUR_API_KEY_HERE' \
  -H 'x-appid: string' \
  -H 'x-appversion: string' \
  -H 'x-runas: string' \
  -d '{
    "SupplierId": 0,
    "Sku": "ART2394871",
    "ItemName": "Interdimensional Goggles",
    "IsStandard": false,
    "PurchasePriceNet": 97.23,
    "TaxRate": 19,
    "MinimumPurchaseQuantity": 1,
    "PermissibleOrderQuantity": 2,
    "DeliveryTime": 2,
    "UseSupplierDeliveryTime": false,
    "Stocklevel": 34,
    "IsDropshipping": false,
    "MergeStockLevel": false,
    "Comment": "A custom comment",
    "PackagingUnit": "box",
    "AmountPackagingUnit": 1,
    "ScalePrices": [
      {
        "FromQuantity": 0,
        "PurchasePriceNet": 94.21,
        "ReduceStandardPriceByPercent": 5
      }
    ]
  }'

Responses

The created itemSupplier.

Bodyapplication/json
ItemIdinteger(int32)(JTL.Data.Contracts.Keys.ArtikelKey)required
SupplierIdinteger(int32)(JTL.Data.Contracts.Keys.LieferantKey)required
Skustringrequired

Item SKU from the supplier.

Example: "ART2394871"
ItemNamestringrequired

Item name from the supplier.

Example: "Interdimensional Goggles"
IsStandardbooleanrequired

Defines the main supplier for the given item.

Example: false
PurchasePriceNetnumber(decimal)required

Net purchase price from the supplier.

Example: 97.23
TaxRatenumber(decimal)required

Percent of VAT tax rate.

Example: 19
MinimumPurchaseQuantitynumber(decimal)required

The minimum purchase quantity from the supplier.

Example: 1
PermissibleOrderQuantitynumber(decimal)required

The permissible order quantity for the item from the supplier. The increments in which the item can be sold.

Example: 2
DeliveryTimeinteger(int32)required

Delivery time in days.

Example: 2
UseSupplierDeliveryTimebooleanrequired

If set to true, Wawi will use the delivery time provided by the supplier and not by the item information. DeliveryTime will then be ignored.

Example: false
Stocklevelnumber(decimal)required

Stock level of the item at the supplier.

Example: 34
IsDropshippingbooleanrequired

Activates drop shipping for a given item and supplier.

Example: false
MergeStockLevelbooleanrequired

Forces Wawi to add the supplier's stock to your own stock.

Example: false
Commentstringrequired

Comment for the supplier.

Example: "A custom comment"
PackagingUnitstringrequired

Name of the packaging unit.

Example: "box"
AmountPackagingUnitnumber(decimal)required

Quantity in a packaging unit.

Example: 1
PackagingUnitPurchasePriceNetnumber(decimal)required

Net purchase price from the supplier for a packaging unit.

Example: 94.21
ScalePricesArray of objects(JTL.Wawi.Rest.Contracts.Models.V1.Item.SupplierItemScalePrice)required

Scale prices from this supplier for the item.

ScalePrices[].​FromQuantityinteger(int32)required

The quantity where this scale price starts. This scale price ends at the next highest quantity. If there is no scale price with a higher quantity, then this price is set for all quantities from this point on.

Example: 0
ScalePrices[].​PurchasePriceNetnumber(decimal)required

Net purchase price of the supplier for the scale price starting from this given quantity to the next scale price with a higher quantity. If you use PurchasePriceNet, you can't use ReduceStandardSpBy% as well. Only one is allowed.

Example: 94.21
ScalePrices[].​ReduceStandardPriceByPercentnumber(decimal)required

Reduces the default purchase price by a percentage. If you use PurchasePriceNet, you can't use ReduceStandardPriceByPercent as well. Only one is allowed.

Example: 5
Response
application/json
{ "ItemId": 0, "SupplierId": 0, "Sku": "ART2394871", "ItemName": "Interdimensional Goggles", "IsStandard": false, "PurchasePriceNet": 97.23, "TaxRate": 19, "MinimumPurchaseQuantity": 1, "PermissibleOrderQuantity": 2, "DeliveryTime": 2, "UseSupplierDeliveryTime": false, "Stocklevel": 34, "IsDropshipping": false, "MergeStockLevel": false, "Comment": "A custom comment", "PackagingUnit": "box", "AmountPackagingUnit": 1, "PackagingUnitPurchasePriceNet": 94.21, "ScalePrices": [ {} ] }

Request

Update the information for a specific supplier for a given item

Security
(oauth2-cloud-id-accessCode and Wawi) or (oauth2-application and Wawi)
Path
itemIdstringrequired
supplierIdstringrequired
Headers
api-versionstring

Specify the desired API version, e.g. '1.0'. If not provided, the last available version is set.

x-appidstringrequired

This is the name of your application, e.g. "MyApp/1.0.0". It is used to identify your application.

x-appversionstringrequired

This is where the version number of your application is entered, e.g. "1.0.0".

x-runasstring

The User-Id (int or uuid) on whose behalf the request is executed. Requires scope 'Application.RunAs'.

X-SessionIdstring(uuid)

The id of a session in which the call will be executed.

Bodyapplication/jsonrequired

The itemSupplier to update.

Skustring
Example: "ART2394871"
ItemNamestring
Example: "Interdimensional Goggles"
IsStandardboolean
Example: false
PurchasePriceNetnumber(decimal)
Example: 97.23
TaxRatenumber(decimal)
Example: 19
MinimumPurchaseQuantitynumber(decimal)
Example: 1
PermissibleOrderQuantitynumber(decimal)
Example: 2
DeliveryTimeinteger(int32)
Example: 2
UseSupplierDeliveryTimeboolean
Example: false
Stocklevelnumber(decimal)
Example: 34
IsDropshippingboolean
Example: false
MergeStockLevelboolean
Example: false
Commentstring
Example: "A custom comment"
PackagingUnitstring
Example: "box"
AmountPackagingUnitnumber(decimal)
Example: 1
ScalePricesArray of objects(JTL.Wawi.Rest.Contracts.Models.V1.Item.UpdateSupplierItemScalePrice)
curl -i -X PATCH \
  'https://developer.jtl-software.com/_mock/products/erpapi/1.1-cloud/openapi/items/{itemId}/suppliers/{supplierId}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-SessionId: 497f6eca-6276-4993-bfeb-53cbbbba6f08' \
  -H 'api-version: string' \
  -H 'x-api-key: YOUR_API_KEY_HERE' \
  -H 'x-appid: string' \
  -H 'x-appversion: string' \
  -H 'x-runas: string' \
  -d '{
    "Sku": "ART2394871",
    "ItemName": "Interdimensional Goggles",
    "IsStandard": false,
    "PurchasePriceNet": 97.23,
    "TaxRate": 19,
    "MinimumPurchaseQuantity": 1,
    "PermissibleOrderQuantity": 2,
    "DeliveryTime": 2,
    "UseSupplierDeliveryTime": false,
    "Stocklevel": 34,
    "IsDropshipping": false,
    "MergeStockLevel": false,
    "Comment": "A custom comment",
    "PackagingUnit": "box",
    "AmountPackagingUnit": 1,
    "ScalePrices": [
      {
        "FromQuantity": 0,
        "PurchasePriceNet": 94.21,
        "ReduceStandardPriceByPercent": 5
      }
    ]
  }'

Responses

Bodyapplication/json
Response
application/json
null

Request

Delete the connection between a specific supplier and item

Security
(oauth2-cloud-id-accessCode and Wawi) or (oauth2-application and Wawi)
Path
itemIdstringrequired
supplierIdstringrequired
Headers
api-versionstring

Specify the desired API version, e.g. '1.0'. If not provided, the last available version is set.

x-appidstringrequired

This is the name of your application, e.g. "MyApp/1.0.0". It is used to identify your application.

x-appversionstringrequired

This is where the version number of your application is entered, e.g. "1.0.0".

x-runasstring

The User-Id (int or uuid) on whose behalf the request is executed. Requires scope 'Application.RunAs'.

X-SessionIdstring(uuid)

The id of a session in which the call will be executed.

curl -i -X DELETE \
  'https://developer.jtl-software.com/_mock/products/erpapi/1.1-cloud/openapi/items/{itemId}/suppliers/{supplierId}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'X-SessionId: 497f6eca-6276-4993-bfeb-53cbbbba6f08' \
  -H 'api-version: string' \
  -H 'x-api-key: YOUR_API_KEY_HERE' \
  -H 'x-appid: string' \
  -H 'x-appversion: string' \
  -H 'x-runas: string'

Responses

Bodyapplication/json
Response
application/json
null
Operations

stock

Query stocks for a specific item, warehouse or storage location
Operations

shippingmethod

Query all shipping methods
Operations
Operations
Operations

saleschannel

Get all sales channels
Operations

return

Create a new return with associated items and packages.
Operations
Operations
Operations

property

Query all properties for items
Operations

printer

Returns all Installed Printers
Operations

paymentmethod

Query all payment methods
Operations

onholdreason

Query all on hold reasons for sales orders
Operations

offer

Execute the printing of a Offer
Operations
Operations
Operations
Operations

features

Returns the available feature sets with release state and API version
Operations
Operations
Operations
Operations

customerGroup

Query all customer groups
Operations

customerCategory

Query all customer categories
Operations

creditnote

Execute the printing of a CreditNote
Operations
Operations

colorcodes

Query all color codes for sales orders
Operations
Operations

appRegistration

Send a registration request for an (external) application
Operations

login

Sends a request to log in the user / dynamically assign the WAWI user. Only use this request if your API uses SSL.
Operations

logout

Sends a request to log out the user
Operations
Operations