JTL-WAWI API (Cloud) (1.1)

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/

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

info

Operations

worker

Planned

Operations

features

Operations

printer

Operations

company

Operations

supplier

Operations

colorcodes

Operations

item

Operations

property

Operations

returnstate

Planned

Operations

onholdreason

Operations

returnreason

Planned

Operations

saleschannel

Operations

customerGroup

Operations

paymentmethod

Operations

odata

Operations

shippingmethod

Operations

warehouse

Operations

customerCategory

Operations

return

Operations

cancellationreason

Operations

transactionStatus

Operations

invoice

Planned

Operations

customer

Operations

category

Operations

salesorder

Operations

Configuration

Planned

Operations

Get Number Ranges

Request

Returns all available Number Ranges

Headers
api-versionstring

The requested API version

x-appidstringrequired

This is the name of your application, in this case "MyApp/1.0.0". It is used to identify your application.

x-appversionstringrequired

This is where the version number of your application is entered, in this case "1.0.0".

x-runasstring

The User-Id as int or uuid to run the Request, a JTL-Wawi user can be specified to perform an API call on their behalf (more details in the documentation, Optional). To use the Header, you must have the needed Scope 'Application.RunAs'

X-SessionIdstring(uuid)

The id of a Session, in wich we call would be executed

tenant-idstring(uuid)required

Specify the TenantId in GUID Format

x-api-keystring(uuid)required

Specify the ApiKey from RegistrationProcess in Uuid Format

curl -i -X GET \
  https://developer.jtl-software.com/_mock/products/erpapi/1.1-cloud/openapi/configuration/numberRanges \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'X-SessionId: 497f6eca-6276-4993-bfeb-53cbbbba6f08' \
  -H 'api-version: string' \
  -H 'tenant-id: 497f6eca-6276-4993-bfeb-53cbbbba6f08' \
  -H 'x-api-key: YOUR_API_KEY_HERE' \
  -H 'x-appid: string' \
  -H 'x-appversion: string' \
  -H 'x-runas: string'

Responses

The available Number Ranges

Bodyapplication/jsonArray [
Identifierinteger(int32)required

The Unique Identifier of a Sync

Example: "3f54a9ef-f644-4bbb-a6cd-1f57fcae2c85"
Namestringrequired

The Name of the Number Range

Example: "Rechnung"
Descriptionstringrequired

The Name of the Number Range

Example: "Hierbei handelt es sich um den Nummernkreis für Rechnungen"
Prefixstringrequired

The Number Prefix for the NumberRange

Example: "RE<j><M>"
CurrentNumberinteger(int32)required

The Current Number of the NumberRange

Example: 70
Suffixstringrequired

The Number Suffix for the NumberRange

Example: "-1"
MaxLengthinteger(int32)required

The Max Length of an Number Range

Example: 100
CompanyIdinteger(int32)

The internal ID of the company associated with the customer. This is configured in the company and email settings in JTL-Wawi

Example: 1
ExampleNumberstringrequired

The Example of a Number

Example: "RE2025470-1"
IsDeletablebooleanrequired

Can the Number Range be deleted

Example: false
]
Response
application/json
[ { "Identifier": "3f54a9ef-f644-4bbb-a6cd-1f57fcae2c85", "Name": "Rechnung", "Description": "Hierbei handelt es sich um den Nummernkreis für Rechnungen", "Prefix": "RE<j><M>", "CurrentNumber": 70, "Suffix": "-1", "MaxLength": 100, "CompanyId": 1, "ExampleNumber": "RE2025470-1", "IsDeletable": false } ]

Get Number Range

Request

Returns the requested NumberRange

Path
numberRangeIdstring(uuid)required

The uuid of the NumberRange

Headers
api-versionstring

The requested API version

x-appidstringrequired

This is the name of your application, in this case "MyApp/1.0.0". It is used to identify your application.

x-appversionstringrequired

This is where the version number of your application is entered, in this case "1.0.0".

x-runasstring

The User-Id as int or uuid to run the Request, a JTL-Wawi user can be specified to perform an API call on their behalf (more details in the documentation, Optional). To use the Header, you must have the needed Scope 'Application.RunAs'

X-SessionIdstring(uuid)

The id of a Session, in wich we call would be executed

tenant-idstring(uuid)required

Specify the TenantId in GUID Format

x-api-keystring(uuid)required

Specify the ApiKey from RegistrationProcess in Uuid Format

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

Responses

The requested Numberrange

Bodyapplication/json
Identifierinteger(int32)required

The Unique Identifier of a Sync

Example: "3f54a9ef-f644-4bbb-a6cd-1f57fcae2c85"
Namestringrequired

The Name of the Number Range

Example: "Rechnung"
Descriptionstringrequired

The Name of the Number Range

Example: "Hierbei handelt es sich um den Nummernkreis für Rechnungen"
Prefixstringrequired

The Number Prefix for the NumberRange

Example: "RE<j><M>"
CurrentNumberinteger(int32)required

The Current Number of the NumberRange

Example: 70
Suffixstringrequired

The Number Suffix for the NumberRange

Example: "-1"
MaxLengthinteger(int32)required

The Max Length of an Number Range

Example: 100
CompanyIdinteger(int32)

The internal ID of the company associated with the customer. This is configured in the company and email settings in JTL-Wawi

Example: 1
ExampleNumberstringrequired

The Example of a Number

Example: "RE2025470-1"
IsDeletablebooleanrequired

Can the Number Range be deleted

Example: false
Response
application/json
{ "Identifier": "3f54a9ef-f644-4bbb-a6cd-1f57fcae2c85", "Name": "Rechnung", "Description": "Hierbei handelt es sich um den Nummernkreis für Rechnungen", "Prefix": "RE<j><M>", "CurrentNumber": 70, "Suffix": "-1", "MaxLength": 100, "CompanyId": 1, "ExampleNumber": "RE2025470-1", "IsDeletable": false }

Update Number Range

Request

Updates an Existing NumberRange

Path
numberRangeIdstring(uuid)required

The id of the NumberRange

Headers
api-versionstring

The requested API version

x-appidstringrequired

This is the name of your application, in this case "MyApp/1.0.0". It is used to identify your application.

x-appversionstringrequired

This is where the version number of your application is entered, in this case "1.0.0".

x-runasstring

The User-Id as int or uuid to run the Request, a JTL-Wawi user can be specified to perform an API call on their behalf (more details in the documentation, Optional). To use the Header, you must have the needed Scope 'Application.RunAs'

X-SessionIdstring(uuid)

The id of a Session, in wich we call would be executed

tenant-idstring(uuid)required

Specify the TenantId in GUID Format

x-api-keystring(uuid)required

Specify the ApiKey from RegistrationProcess in Uuid Format

Bodyapplication/jsonrequired

The relevant Information of the NumberRange

Prefixstring

The Number Prefix for the NumberRange

Example: "RE<j><M>"
CurrentNumberinteger(int32)

The Current Number of the NumberRange

Example: 70
Suffixstring

The Number Suffix for the NumberRange

Example: "-1"
CompanyIdinteger(int32)

The internal ID of the company associated with the customer. This is configured in the company and email settings in JTL-Wawi

Example: 1
curl -i -X PUT \
  'https://developer.jtl-software.com/_mock/products/erpapi/1.1-cloud/openapi/configuration/numberRanges/{numberRangeId}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-SessionId: 497f6eca-6276-4993-bfeb-53cbbbba6f08' \
  -H 'api-version: string' \
  -H 'tenant-id: 497f6eca-6276-4993-bfeb-53cbbbba6f08' \
  -H 'x-api-key: YOUR_API_KEY_HERE' \
  -H 'x-appid: string' \
  -H 'x-appversion: string' \
  -H 'x-runas: string' \
  -d '{
    "Prefix": "RE<j><M>",
    "CurrentNumber": 70,
    "Suffix": "-1",
    "CompanyId": 1
  }'

Responses

The changed NumberRange

Bodyapplication/json
Identifierinteger(int32)required

The Unique Identifier of a Sync

Example: "3f54a9ef-f644-4bbb-a6cd-1f57fcae2c85"
Namestringrequired

The Name of the Number Range

Example: "Rechnung"
Descriptionstringrequired

The Name of the Number Range

Example: "Hierbei handelt es sich um den Nummernkreis für Rechnungen"
Prefixstringrequired

The Number Prefix for the NumberRange

Example: "RE<j><M>"
CurrentNumberinteger(int32)required

The Current Number of the NumberRange

Example: 70
Suffixstringrequired

The Number Suffix for the NumberRange

Example: "-1"
MaxLengthinteger(int32)required

The Max Length of an Number Range

Example: 100
CompanyIdinteger(int32)

The internal ID of the company associated with the customer. This is configured in the company and email settings in JTL-Wawi

Example: 1
ExampleNumberstringrequired

The Example of a Number

Example: "RE2025470-1"
IsDeletablebooleanrequired

Can the Number Range be deleted

Example: false
Response
application/json
{ "Identifier": "3f54a9ef-f644-4bbb-a6cd-1f57fcae2c85", "Name": "Rechnung", "Description": "Hierbei handelt es sich um den Nummernkreis für Rechnungen", "Prefix": "RE<j><M>", "CurrentNumber": 70, "Suffix": "-1", "MaxLength": 100, "CompanyId": 1, "ExampleNumber": "RE2025470-1", "IsDeletable": false }

Delete Number Range

Request

Delete a NumberRange, but only Deletable Numberranges

Path
numberRangeIdstring(uuid)required

The id of the NumberRange

Headers
api-versionstring

The requested API version

x-appidstringrequired

This is the name of your application, in this case "MyApp/1.0.0". It is used to identify your application.

x-appversionstringrequired

This is where the version number of your application is entered, in this case "1.0.0".

x-runasstring

The User-Id as int or uuid to run the Request, a JTL-Wawi user can be specified to perform an API call on their behalf (more details in the documentation, Optional). To use the Header, you must have the needed Scope 'Application.RunAs'

X-SessionIdstring(uuid)

The id of a Session, in wich we call would be executed

tenant-idstring(uuid)required

Specify the TenantId in GUID Format

x-api-keystring(uuid)required

Specify the ApiKey from RegistrationProcess in Uuid Format

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

Responses

The NumberRange is deleted

Bodyapplication/json
Response
application/json
null

Number Range Increment

Request

Increment and returns the Next Number for the given NumberRange

Path
numberRangeIdstring(uuid)required

The id of the NumberRange

Query
companyIdstring(uuid)

The Id of a specific Company

Headers
api-versionstring

The requested API version

x-appidstringrequired

This is the name of your application, in this case "MyApp/1.0.0". It is used to identify your application.

x-appversionstringrequired

This is where the version number of your application is entered, in this case "1.0.0".

x-runasstring

The User-Id as int or uuid to run the Request, a JTL-Wawi user can be specified to perform an API call on their behalf (more details in the documentation, Optional). To use the Header, you must have the needed Scope 'Application.RunAs'

X-SessionIdstring(uuid)

The id of a Session, in wich we call would be executed

tenant-idstring(uuid)required

Specify the TenantId in GUID Format

x-api-keystring(uuid)required

Specify the ApiKey from RegistrationProcess in Uuid Format

curl -i -X POST \
  'https://developer.jtl-software.com/_mock/products/erpapi/1.1-cloud/openapi/configuration/numberRanges/{numberRangeId}/increment?companyId=497f6eca-6276-4993-bfeb-53cbbbba6f08' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'X-SessionId: 497f6eca-6276-4993-bfeb-53cbbbba6f08' \
  -H 'api-version: string' \
  -H 'tenant-id: 497f6eca-6276-4993-bfeb-53cbbbba6f08' \
  -H 'x-api-key: YOUR_API_KEY_HERE' \
  -H 'x-appid: string' \
  -H 'x-appversion: string' \
  -H 'x-runas: string'

Responses

The resulting Next Number for the given Item.

Bodyapplication/json
NextNumberstringrequired

The Next Number of the NumberRange

Example: "RE2025470-1"
IsPreviewbooleanrequired

Can the Number is only a Preview Number

Example: false
Response
application/json
{ "NextNumber": "RE2025470-1", "IsPreview": false }

Number Range Preview

Request

Returns a Preview of the Next Number for the given NumberRange

Path
numberRangeIdstring(uuid)required

The id of the NumberRange

Query
companyIdstring(uuid)

The Id of a specific Company

Headers
api-versionstring

The requested API version

x-appidstringrequired

This is the name of your application, in this case "MyApp/1.0.0". It is used to identify your application.

x-appversionstringrequired

This is where the version number of your application is entered, in this case "1.0.0".

x-runasstring

The User-Id as int or uuid to run the Request, a JTL-Wawi user can be specified to perform an API call on their behalf (more details in the documentation, Optional). To use the Header, you must have the needed Scope 'Application.RunAs'

X-SessionIdstring(uuid)

The id of a Session, in wich we call would be executed

tenant-idstring(uuid)required

Specify the TenantId in GUID Format

x-api-keystring(uuid)required

Specify the ApiKey from RegistrationProcess in Uuid Format

curl -i -X GET \
  'https://developer.jtl-software.com/_mock/products/erpapi/1.1-cloud/openapi/configuration/numberRanges/{numberRangeId}/preview?companyId=497f6eca-6276-4993-bfeb-53cbbbba6f08' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'X-SessionId: 497f6eca-6276-4993-bfeb-53cbbbba6f08' \
  -H 'api-version: string' \
  -H 'tenant-id: 497f6eca-6276-4993-bfeb-53cbbbba6f08' \
  -H 'x-api-key: YOUR_API_KEY_HERE' \
  -H 'x-appid: string' \
  -H 'x-appversion: string' \
  -H 'x-runas: string'

Responses

The resulting Next Number for the given Item.

Bodyapplication/json
NextNumberstringrequired

The Next Number of the NumberRange

Example: "RE2025470-1"
IsPreviewbooleanrequired

Can the Number is only a Preview Number

Example: false
Response
application/json
{ "NextNumber": "RE2025470-1", "IsPreview": false }

Create Number Range

Request

Create a new NumberRange based on the given NumberRange

Path
parentNumberRangeIdstring(uuid)required

The id of the NumberRange on who this NumberRange is Based

Headers
api-versionstring

The requested API version

x-appidstringrequired

This is the name of your application, in this case "MyApp/1.0.0". It is used to identify your application.

x-appversionstringrequired

This is where the version number of your application is entered, in this case "1.0.0".

x-runasstring

The User-Id as int or uuid to run the Request, a JTL-Wawi user can be specified to perform an API call on their behalf (more details in the documentation, Optional). To use the Header, you must have the needed Scope 'Application.RunAs'

X-SessionIdstring(uuid)

The id of a Session, in wich we call would be executed

tenant-idstring(uuid)required

Specify the TenantId in GUID Format

x-api-keystring(uuid)required

Specify the ApiKey from RegistrationProcess in Uuid Format

Bodyapplication/jsonrequired

The relevant Information of the NumberRange

Prefixstring

The Number Prefix for the NumberRange

Example: "RE<j><M>"
CurrentNumberinteger(int32)

The Current Number of the NumberRange

Example: 70
Suffixstring

The Number Suffix for the NumberRange

Example: "-1"
CompanyIdinteger(int32)required

The internal ID of the company associated with the customer. This is configured in the company and email settings in JTL-Wawi

Example: 1
curl -i -X POST \
  'https://developer.jtl-software.com/_mock/products/erpapi/1.1-cloud/openapi/configuration/numberRanges/{parentNumberRangeId}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-SessionId: 497f6eca-6276-4993-bfeb-53cbbbba6f08' \
  -H 'api-version: string' \
  -H 'tenant-id: 497f6eca-6276-4993-bfeb-53cbbbba6f08' \
  -H 'x-api-key: YOUR_API_KEY_HERE' \
  -H 'x-appid: string' \
  -H 'x-appversion: string' \
  -H 'x-runas: string' \
  -d '{
    "Prefix": "RE<j><M>",
    "CurrentNumber": 70,
    "Suffix": "-1",
    "CompanyId": 1
  }'

Responses

The new Created NumberRange

Bodyapplication/json
Identifierinteger(int32)required

The Unique Identifier of a Sync

Example: "3f54a9ef-f644-4bbb-a6cd-1f57fcae2c85"
Namestringrequired

The Name of the Number Range

Example: "Rechnung"
Descriptionstringrequired

The Name of the Number Range

Example: "Hierbei handelt es sich um den Nummernkreis für Rechnungen"
Prefixstringrequired

The Number Prefix for the NumberRange

Example: "RE<j><M>"
CurrentNumberinteger(int32)required

The Current Number of the NumberRange

Example: 70
Suffixstringrequired

The Number Suffix for the NumberRange

Example: "-1"
MaxLengthinteger(int32)required

The Max Length of an Number Range

Example: 100
CompanyIdinteger(int32)

The internal ID of the company associated with the customer. This is configured in the company and email settings in JTL-Wawi

Example: 1
ExampleNumberstringrequired

The Example of a Number

Example: "RE2025470-1"
IsDeletablebooleanrequired

Can the Number Range be deleted

Example: false
Response
application/json
{ "Identifier": "3f54a9ef-f644-4bbb-a6cd-1f57fcae2c85", "Name": "Rechnung", "Description": "Hierbei handelt es sich um den Nummernkreis für Rechnungen", "Prefix": "RE<j><M>", "CurrentNumber": 70, "Suffix": "-1", "MaxLength": 100, "CompanyId": 1, "ExampleNumber": "RE2025470-1", "IsDeletable": false }

deliverynote

Planned

Operations

appRegistration

Operations

login

Operations

logout

Operations

wms

Operations

stock

Operations

accountingData

Planned

Operations

tax

Operations

shipping

Development

offer

Operations

creditnote

Operations