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.
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://wawi-api.jtl-software.com/?#tag/appRegistration. This information has to include the following:
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.
To make a successful API request, it is essential to include the correct authentication data in the request header. Upper case and lower case is ignored. The header should contain the following information:
All Search Keywords for the customer, like the number and the most important fields from the billing address.
All customers where the last change happened after or equal the given time
All customers where the last change happened before or equal the given time
This is the name of your application, in this case "MyApp/1.0.0". It is used to identify your application.
This is where the version number of your application is entered, in this case "1.0.0".
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'
curl -i -X GET \
'https://developer.jtl-software.com/_mock/products/erpapi/openapi/customers?categoryId=0&groupId=0&lastChangeFrom=2019-08-24T14%3A15%3A22Z&lastChangeTo=2019-08-24T14%3A15%3A22Z&number=string&pageNumber=0&pageSize=0&searchKeyWord=string' \
-H 'Authorization: YOUR_API_KEY_HERE' \
-H 'X-SessionId: 497f6eca-6276-4993-bfeb-53cbbbba6f08' \
-H 'api-version: string' \
-H 'x-appid: string' \
-H 'x-appversion: string' \
-H 'x-runas: string'
Returns all customer, can be filtered by searchKeyWord or categoryId.
Gets or sets the total number of items available in the data source.
Gets or sets the collection of items contained in the paged list.
Model Class: Address
Description of the Company.
Additional company information
Street name in the customer's address
Additional address information
Postal code of the customer's address
Name of city in the customer's address
Name of state in the customer's address
Landline phone number
Mobile phone number
Model Class: Address
Description of the Company.
Additional company information
Street name in the customer's address
Additional address information
Postal code of the customer's address
Name of city in the customer's address
Name of state in the customer's address
Landline phone number
Mobile phone number
Model Class: Address
Description of the Company.
Additional company information
Street name in the customer's address
Additional address information
Postal code of the customer's address
Name of city in the customer's address
Name of state in the customer's address
Landline phone number
Mobile phone number
Model Class: OtherAddresses
All other non-default billing addresses of the customer.
Unique ID to identify an address
Description of the Company.
Additional company information
Customer form of address
Customer first name
Customer last name
Street name in the customer's address
Additional address information
Postal code of the customer's address
Name of city in the customer's address
Name of state in the customer's address
Country ISO code
Supplier VAT ID number
Landline phone number
Mobile phone number
Email address
All other non-default shipping addresses of the customer.
Unique ID to identify an address
Description of the Company.
Additional company information
Customer form of address
Customer first name
Customer last name
Street name in the customer's address
Additional address information
Postal code of the customer's address
Name of city in the customer's address
Name of state in the customer's address
Country ISO code
Supplier VAT ID number
Landline phone number
Mobile phone number
Email address
All other non-billing and non-shipping addresses of the customer.
Unique ID to identify an address
Description of the Company.
Additional company information
Customer form of address
Customer first name
Customer last name
Street name in the customer's address
Additional address information
Postal code of the customer's address
Name of city in the customer's address
Name of state in the customer's address
Country ISO code
Supplier VAT ID number
Landline phone number
Mobile phone number
Email address
Model Class: PaymentSettings
The unique ID to identify a payment method.
The customer's credit limit.
Date since they have been a customer.
Date of the last customer's data change.
The internal ID of the company associated with the customer. This is configured in the company and email settings in JTL-Wawi
The customer's tax identification number.
The customer's accounts receivable number.
The customer's commercial register number.
The source of initial contact. This could be for example a specific sales channel, a convention or a marketing campaign.
The customer's locked status for online shop sales channels.
Gets the total number of pages based on the total number of items and the page size.
Gets a value indicating whether there is a previous page available in the paginated list.
Gets the number of the next page if there is one; otherwise, returns the total number of pages.
{ "TotalItems": 0, "PageNumber": 0, "PageSize": 0, "Items": [ { … } ], "TotalPages": 0, "HasPreviousPage": true, "HasNextPage": true, "NextPageNumber": 0, "PreviousPageNumber": 0 }
This is the name of your application, in this case "MyApp/1.0.0". It is used to identify your application.
This is where the version number of your application is entered, in this case "1.0.0".
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'
The customer to create.
Model Class: CreateAddress
Name of city in the customer's address
Model Class: CreateAddress
Model Class: CreateOtherAddresses
Model Class: CreatePaymentSettings
Date since they have been a customer.
Date of the last customer's data change.
The internal ID of the company associated with the customer. This is configured in the company and email settings in JTL-Wawi
The source of initial contact. This could be for example a specific sales channel, a convention or a marketing campaign.
curl -i -X POST \
'https://developer.jtl-software.com/_mock/products/erpapi/openapi/customers?disableAutomaticWorkflows=true' \
-H 'Authorization: YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-H 'X-SessionId: 497f6eca-6276-4993-bfeb-53cbbbba6f08' \
-H 'api-version: string' \
-H 'x-appid: string' \
-H 'x-appversion: string' \
-H 'x-runas: string' \
-d '{
"Number": "C1005486",
"CustomerGroupId": 0,
"BillingAddress": {
"Company": "Sportbedarf Sommer",
"Company2": "Innovation Division",
"FormOfAddress": "Mr.",
"Title": "Dr.",
"FirstName": "John",
"LastName": "Doe",
"Street": "Main St. 123",
"Address2": "Floor 5, Apt 302",
"PostalCode": "12345",
"City": "Example City",
"State": "Example State",
"CountryIso": "DE",
"VatID": "DE123456789",
"PhoneNumber": "+49 1234 445556661",
"MobilePhoneNumber": "+49 160 123 4567",
"EmailAddress": "example@email.com",
"Fax": "+49 1234 4455566615"
},
"Shipmentaddress": {
"Company": "Sportbedarf Sommer",
"Company2": "Innovation Division",
"FormOfAddress": "Mr.",
"Title": "Dr.",
"FirstName": "John",
"LastName": "Doe",
"Street": "Main St. 123",
"Address2": "Floor 5, Apt 302",
"PostalCode": "12345",
"City": "Example City",
"State": "Example State",
"CountryIso": "DE",
"VatID": "DE123456789",
"PhoneNumber": "+49 1234 445556661",
"MobilePhoneNumber": "+49 160 123 4567",
"EmailAddress": "example@email.com",
"Fax": "+49 1234 4455566615"
},
"CustomAddress": {
"Company": "Sportbedarf Sommer",
"Company2": "Innovation Division",
"FormOfAddress": "Mr.",
"Title": "Dr.",
"FirstName": "John",
"LastName": "Doe",
"Street": "Main St. 123",
"Address2": "Floor 5, Apt 302",
"PostalCode": "12345",
"City": "Example City",
"State": "Example State",
"CountryIso": "DE",
"VatID": "DE123456789",
"PhoneNumber": "+49 1234 445556661",
"MobilePhoneNumber": "+49 160 123 4567",
"EmailAddress": "example@email.com",
"Fax": "+49 1234 4455566615"
},
"OtherAddresses": {
"OtherBillingAddresses": [
{
"Company": "Sportbedarf Sommer",
"Company2": "Innovation Division",
"FormOfAddress": "Mr.",
"Title": "Dr.",
"FirstName": "John",
"LastName": "Doe",
"Street": "Main St. 123",
"Address2": "Floor 5, Apt 302",
"PostalCode": "12345",
"City": "Example City",
"State": "Example State",
"CountryIso": "DE",
"VatID": "DE123456789",
"PhoneNumber": "+49 1234 445556661",
"MobilePhoneNumber": "+49 160 123 4567",
"EmailAddress": "example@email.com",
"Fax": "+49 1234 4455566615"
}
],
"OtherShippingAddresses": [
{
"Company": "Sportbedarf Sommer",
"Company2": "Innovation Division",
"FormOfAddress": "Mr.",
"Title": "Dr.",
"FirstName": "John",
"LastName": "Doe",
"Street": "Main St. 123",
"Address2": "Floor 5, Apt 302",
"PostalCode": "12345",
"City": "Example City",
"State": "Example State",
"CountryIso": "DE",
"VatID": "DE123456789",
"PhoneNumber": "+49 1234 445556661",
"MobilePhoneNumber": "+49 160 123 4567",
"EmailAddress": "example@email.com",
"Fax": "+49 1234 4455566615"
}
],
"OtherCustomerAddresses": [
{
"Company": "Sportbedarf Sommer",
"Company2": "Innovation Division",
"FormOfAddress": "Mr.",
"Title": "Dr.",
"FirstName": "John",
"LastName": "Doe",
"Street": "Main St. 123",
"Address2": "Floor 5, Apt 302",
"PostalCode": "12345",
"City": "Example City",
"State": "Example State",
"CountryIso": "DE",
"VatID": "DE123456789",
"PhoneNumber": "+49 1234 445556661",
"MobilePhoneNumber": "+49 160 123 4567",
"EmailAddress": "example@email.com",
"Fax": "+49 1234 4455566615"
}
]
},
"PaymentSettings": {
"PaymentMethodId": 123,
"Discount": 5,
"PaymentTarget": 3,
"CreditLimit": 100,
"StopPaymentRequest": false
},
"CustomerSince": "2023-02-01T13:30:00.0000000+00:00",
"LastChange": "2023-02-01T13:30:00.0000000+00:00",
"LanguageIso": "DE",
"InternalCompanyId": 1,
"CustomerCategoryId": 12,
"TaxIdentificationNumber": "123/123/12345",
"AccountsReceivableNumber": 10000,
"CommercialRegisterNumber": "HRB 1234",
"Website": "https://mywebsite.com",
"InitialContact": "Amazon",
"EbayUsername": "eBaybuyer123",
"Birthday": "1985-01-01T",
"IsLocked": false,
"IsCashRegisterBased": false
}'
The created customer.
Model Class: Address
Model Class: Address
Additional company information
Name of state in the customer's address
Model Class: Address
Model Class: OtherAddresses
All other non-default billing addresses of the customer.
Unique ID to identify an address
Description of the Company.
Additional company information
Customer form of address
Street name in the customer's address
Additional address information
Postal code of the customer's address
Name of city in the customer's address
Name of state in the customer's address
Supplier VAT ID number
Landline phone number
Mobile phone number
Email address
All other non-default shipping addresses of the customer.
Unique ID to identify an address
Description of the Company.
Additional company information
Customer form of address
Customer first name
Street name in the customer's address
Additional address information
Postal code of the customer's address
Name of city in the customer's address
Name of state in the customer's address
Supplier VAT ID number
Landline phone number
Mobile phone number
Email address
All other non-billing and non-shipping addresses of the customer.
Unique ID to identify an address
Description of the Company.
Additional company information
Customer form of address
Customer first name
Street name in the customer's address
Additional address information
Postal code of the customer's address
Name of city in the customer's address
Name of state in the customer's address
Supplier VAT ID number
Landline phone number
Mobile phone number
Email address
Model Class: PaymentSettings
The unique ID to identify a payment method.
Date since they have been a customer.
Date of the last customer's data change.
The internal ID of the company associated with the customer. This is configured in the company and email settings in JTL-Wawi
The customer's tax identification number.
The customer's accounts receivable number.
The customer's commercial register number.
The source of initial contact. This could be for example a specific sales channel, a convention or a marketing campaign.
{ "Id": 123, "Number": "C1005486", "CustomerGroupId": 0, "BillingAddress": { "Id": 100, "Company": "Sportbedarf Sommer", "Company2": "Innovation Division", "FormOfAddress": "Mr.", "Title": "Dr.", "FirstName": "John", "LastName": "Doe", "Street": "Main St. 123", "Address2": "Floor 5, Apt 302", "PostalCode": "12345", "City": "Example City", "State": "Example State", "CountryIso": "DE", "VatID": "DE123456789", "PhoneNumber": "+49 1234 445556661", "MobilePhoneNumber": "+49 160 123 4567", "EmailAddress": "example@email.com", "Fax": "+49 1234 4455566615" }, "Shipmentaddress": { "Id": 100, "Company": "Sportbedarf Sommer", "Company2": "Innovation Division", "FormOfAddress": "Mr.", "Title": "Dr.", "FirstName": "John", "LastName": "Doe", "Street": "Main St. 123", "Address2": "Floor 5, Apt 302", "PostalCode": "12345", "City": "Example City", "State": "Example State", "CountryIso": "DE", "VatID": "DE123456789", "PhoneNumber": "+49 1234 445556661", "MobilePhoneNumber": "+49 160 123 4567", "EmailAddress": "example@email.com", "Fax": "+49 1234 4455566615" }, "CustomAddress": { "Id": 100, "Company": "Sportbedarf Sommer", "Company2": "Innovation Division", "FormOfAddress": "Mr.", "Title": "Dr.", "FirstName": "John", "LastName": "Doe", "Street": "Main St. 123", "Address2": "Floor 5, Apt 302", "PostalCode": "12345", "City": "Example City", "State": "Example State", "CountryIso": "DE", "VatID": "DE123456789", "PhoneNumber": "+49 1234 445556661", "MobilePhoneNumber": "+49 160 123 4567", "EmailAddress": "example@email.com", "Fax": "+49 1234 4455566615" }, "OtherAddresses": { "OtherBillingAddresses": [ … ], "OtherShippingAddresses": [ … ], "OtherCustomerAddresses": [ … ] }, "PaymentSettings": { "PaymentMethodId": 123, "Discount": 5, "PaymentTarget": 3, "CreditLimit": 100, "StopPaymentRequest": false }, "CustomerSince": "2023-02-01T13:30:00.0000000+00:00", "LastChange": "2023-02-01T13:30:00.0000000+00:00", "LanguageIso": "DE", "InternalCompanyId": 1, "CustomerCategoryId": 12, "TaxIdentificationNumber": "123/123/12345", "AccountsReceivableNumber": 10000, "CommercialRegisterNumber": "HRB 1234", "Website": "https://mywebsite.com", "InitialContact": "Amazon", "EbayUsername": "eBaybuyer123", "Birthday": "1985-01-01T", "IsLocked": false, "IsCashRegisterBased": false }
This is the name of your application, in this case "MyApp/1.0.0". It is used to identify your application.
This is where the version number of your application is entered, in this case "1.0.0".
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'
curl -i -X GET \
'https://developer.jtl-software.com/_mock/products/erpapi/openapi/customers/{customerId}' \
-H 'Authorization: YOUR_API_KEY_HERE' \
-H 'X-SessionId: 497f6eca-6276-4993-bfeb-53cbbbba6f08' \
-H 'api-version: string' \
-H 'x-appid: string' \
-H 'x-appversion: string' \
-H 'x-runas: string'
Returns the customer for the given id.
Model Class: Address
Model Class: Address
Additional company information
Name of state in the customer's address
Model Class: Address
Model Class: OtherAddresses
All other non-default billing addresses of the customer.
Unique ID to identify an address
Description of the Company.
Additional company information
Customer form of address
Street name in the customer's address
Additional address information
Postal code of the customer's address
Name of city in the customer's address
Name of state in the customer's address
Supplier VAT ID number
Landline phone number
Mobile phone number
Email address
All other non-default shipping addresses of the customer.
Unique ID to identify an address
Description of the Company.
Additional company information
Customer form of address
Customer first name
Street name in the customer's address
Additional address information
Postal code of the customer's address
Name of city in the customer's address
Name of state in the customer's address
Supplier VAT ID number
Landline phone number
Mobile phone number
Email address
All other non-billing and non-shipping addresses of the customer.
Unique ID to identify an address
Description of the Company.
Additional company information
Customer form of address
Customer first name
Street name in the customer's address
Additional address information
Postal code of the customer's address
Name of city in the customer's address
Name of state in the customer's address
Supplier VAT ID number
Landline phone number
Mobile phone number
Email address
Model Class: PaymentSettings
The unique ID to identify a payment method.
Date since they have been a customer.
Date of the last customer's data change.
The internal ID of the company associated with the customer. This is configured in the company and email settings in JTL-Wawi
The customer's tax identification number.
The customer's accounts receivable number.
The customer's commercial register number.
The source of initial contact. This could be for example a specific sales channel, a convention or a marketing campaign.
{ "Id": 123, "Number": "C1005486", "CustomerGroupId": 0, "BillingAddress": { "Id": 100, "Company": "Sportbedarf Sommer", "Company2": "Innovation Division", "FormOfAddress": "Mr.", "Title": "Dr.", "FirstName": "John", "LastName": "Doe", "Street": "Main St. 123", "Address2": "Floor 5, Apt 302", "PostalCode": "12345", "City": "Example City", "State": "Example State", "CountryIso": "DE", "VatID": "DE123456789", "PhoneNumber": "+49 1234 445556661", "MobilePhoneNumber": "+49 160 123 4567", "EmailAddress": "example@email.com", "Fax": "+49 1234 4455566615" }, "Shipmentaddress": { "Id": 100, "Company": "Sportbedarf Sommer", "Company2": "Innovation Division", "FormOfAddress": "Mr.", "Title": "Dr.", "FirstName": "John", "LastName": "Doe", "Street": "Main St. 123", "Address2": "Floor 5, Apt 302", "PostalCode": "12345", "City": "Example City", "State": "Example State", "CountryIso": "DE", "VatID": "DE123456789", "PhoneNumber": "+49 1234 445556661", "MobilePhoneNumber": "+49 160 123 4567", "EmailAddress": "example@email.com", "Fax": "+49 1234 4455566615" }, "CustomAddress": { "Id": 100, "Company": "Sportbedarf Sommer", "Company2": "Innovation Division", "FormOfAddress": "Mr.", "Title": "Dr.", "FirstName": "John", "LastName": "Doe", "Street": "Main St. 123", "Address2": "Floor 5, Apt 302", "PostalCode": "12345", "City": "Example City", "State": "Example State", "CountryIso": "DE", "VatID": "DE123456789", "PhoneNumber": "+49 1234 445556661", "MobilePhoneNumber": "+49 160 123 4567", "EmailAddress": "example@email.com", "Fax": "+49 1234 4455566615" }, "OtherAddresses": { "OtherBillingAddresses": [ … ], "OtherShippingAddresses": [ … ], "OtherCustomerAddresses": [ … ] }, "PaymentSettings": { "PaymentMethodId": 123, "Discount": 5, "PaymentTarget": 3, "CreditLimit": 100, "StopPaymentRequest": false }, "CustomerSince": "2023-02-01T13:30:00.0000000+00:00", "LastChange": "2023-02-01T13:30:00.0000000+00:00", "LanguageIso": "DE", "InternalCompanyId": 1, "CustomerCategoryId": 12, "TaxIdentificationNumber": "123/123/12345", "AccountsReceivableNumber": 10000, "CommercialRegisterNumber": "HRB 1234", "Website": "https://mywebsite.com", "InitialContact": "Amazon", "EbayUsername": "eBaybuyer123", "Birthday": "1985-01-01T", "IsLocked": false, "IsCashRegisterBased": false }