curl --request PATCH \
--url https://api.jtl-cloud.com/erp/authentication/authentication/foreign/{registrationId}/registration \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-challengecode: <x-challengecode>' \
--header 'x-tenant-id: <x-tenant-id>' \
--data '
{
"AppId": "<string>",
"DisplayName": "<string>",
"Description": "<string>",
"LocalizedDisplayNames": [
{
"LanguageIso": "<string>",
"Name": "<string>"
}
],
"LocalizedDescriptions": [
{
"LanguageIso": "<string>",
"Name": "<string>"
}
],
"Version": "<string>",
"ProviderName": "<string>",
"ProviderWebsite": "<string>",
"MandatoryApiScopes": [
"<string>"
],
"OptionalApiScopes": [
"<string>"
],
"AppIcon": "aSDinaTvuI8gbWludGxpZnk=",
"Signature": "aSDinaTvuI8gbWludGxpZnk=",
"SignatureData": "2023-11-07T05:31:56Z"
}
'import requests
url = "https://api.jtl-cloud.com/erp/authentication/authentication/foreign/{registrationId}/registration"
payload = {
"AppId": "<string>",
"DisplayName": "<string>",
"Description": "<string>",
"LocalizedDisplayNames": [
{
"LanguageIso": "<string>",
"Name": "<string>"
}
],
"LocalizedDescriptions": [
{
"LanguageIso": "<string>",
"Name": "<string>"
}
],
"Version": "<string>",
"ProviderName": "<string>",
"ProviderWebsite": "<string>",
"MandatoryApiScopes": ["<string>"],
"OptionalApiScopes": ["<string>"],
"AppIcon": "aSDinaTvuI8gbWludGxpZnk=",
"Signature": "aSDinaTvuI8gbWludGxpZnk=",
"SignatureData": "2023-11-07T05:31:56Z"
}
headers = {
"x-challengecode": "<x-challengecode>",
"x-tenant-id": "<x-tenant-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {
'x-challengecode': '<x-challengecode>',
'x-tenant-id': '<x-tenant-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
AppId: '<string>',
DisplayName: '<string>',
Description: '<string>',
LocalizedDisplayNames: [{LanguageIso: '<string>', Name: '<string>'}],
LocalizedDescriptions: [{LanguageIso: '<string>', Name: '<string>'}],
Version: '<string>',
ProviderName: '<string>',
ProviderWebsite: '<string>',
MandatoryApiScopes: ['<string>'],
OptionalApiScopes: ['<string>'],
AppIcon: 'aSDinaTvuI8gbWludGxpZnk=',
Signature: 'aSDinaTvuI8gbWludGxpZnk=',
SignatureData: '2023-11-07T05:31:56Z'
})
};
fetch('https://api.jtl-cloud.com/erp/authentication/authentication/foreign/{registrationId}/registration', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.jtl-cloud.com/erp/authentication/authentication/foreign/{registrationId}/registration",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'AppId' => '<string>',
'DisplayName' => '<string>',
'Description' => '<string>',
'LocalizedDisplayNames' => [
[
'LanguageIso' => '<string>',
'Name' => '<string>'
]
],
'LocalizedDescriptions' => [
[
'LanguageIso' => '<string>',
'Name' => '<string>'
]
],
'Version' => '<string>',
'ProviderName' => '<string>',
'ProviderWebsite' => '<string>',
'MandatoryApiScopes' => [
'<string>'
],
'OptionalApiScopes' => [
'<string>'
],
'AppIcon' => 'aSDinaTvuI8gbWludGxpZnk=',
'Signature' => 'aSDinaTvuI8gbWludGxpZnk=',
'SignatureData' => '2023-11-07T05:31:56Z'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-challengecode: <x-challengecode>",
"x-tenant-id: <x-tenant-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.jtl-cloud.com/erp/authentication/authentication/foreign/{registrationId}/registration"
payload := strings.NewReader("{\n \"AppId\": \"<string>\",\n \"DisplayName\": \"<string>\",\n \"Description\": \"<string>\",\n \"LocalizedDisplayNames\": [\n {\n \"LanguageIso\": \"<string>\",\n \"Name\": \"<string>\"\n }\n ],\n \"LocalizedDescriptions\": [\n {\n \"LanguageIso\": \"<string>\",\n \"Name\": \"<string>\"\n }\n ],\n \"Version\": \"<string>\",\n \"ProviderName\": \"<string>\",\n \"ProviderWebsite\": \"<string>\",\n \"MandatoryApiScopes\": [\n \"<string>\"\n ],\n \"OptionalApiScopes\": [\n \"<string>\"\n ],\n \"AppIcon\": \"aSDinaTvuI8gbWludGxpZnk=\",\n \"Signature\": \"aSDinaTvuI8gbWludGxpZnk=\",\n \"SignatureData\": \"2023-11-07T05:31:56Z\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-challengecode", "<x-challengecode>")
req.Header.Add("x-tenant-id", "<x-tenant-id>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.jtl-cloud.com/erp/authentication/authentication/foreign/{registrationId}/registration")
.header("x-challengecode", "<x-challengecode>")
.header("x-tenant-id", "<x-tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"AppId\": \"<string>\",\n \"DisplayName\": \"<string>\",\n \"Description\": \"<string>\",\n \"LocalizedDisplayNames\": [\n {\n \"LanguageIso\": \"<string>\",\n \"Name\": \"<string>\"\n }\n ],\n \"LocalizedDescriptions\": [\n {\n \"LanguageIso\": \"<string>\",\n \"Name\": \"<string>\"\n }\n ],\n \"Version\": \"<string>\",\n \"ProviderName\": \"<string>\",\n \"ProviderWebsite\": \"<string>\",\n \"MandatoryApiScopes\": [\n \"<string>\"\n ],\n \"OptionalApiScopes\": [\n \"<string>\"\n ],\n \"AppIcon\": \"aSDinaTvuI8gbWludGxpZnk=\",\n \"Signature\": \"aSDinaTvuI8gbWludGxpZnk=\",\n \"SignatureData\": \"2023-11-07T05:31:56Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.jtl-cloud.com/erp/authentication/authentication/foreign/{registrationId}/registration")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-challengecode"] = '<x-challengecode>'
request["x-tenant-id"] = '<x-tenant-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"AppId\": \"<string>\",\n \"DisplayName\": \"<string>\",\n \"Description\": \"<string>\",\n \"LocalizedDisplayNames\": [\n {\n \"LanguageIso\": \"<string>\",\n \"Name\": \"<string>\"\n }\n ],\n \"LocalizedDescriptions\": [\n {\n \"LanguageIso\": \"<string>\",\n \"Name\": \"<string>\"\n }\n ],\n \"Version\": \"<string>\",\n \"ProviderName\": \"<string>\",\n \"ProviderWebsite\": \"<string>\",\n \"MandatoryApiScopes\": [\n \"<string>\"\n ],\n \"OptionalApiScopes\": [\n \"<string>\"\n ],\n \"AppIcon\": \"aSDinaTvuI8gbWludGxpZnk=\",\n \"Signature\": \"aSDinaTvuI8gbWludGxpZnk=\",\n \"SignatureData\": \"2023-11-07T05:31:56Z\"\n}"
response = http.request(request)
puts response.read_body{
"RequestStatusInfo": {
"AppId": "<string>",
"RegistrationRequestId": "<string>"
},
"Token": {
"ApiKey": "<string>"
},
"GrantedScopes": [
"<string>"
]
}Update Foreign App By Registration Id (deprecated)
DEPRECATED seit Wawi 2.2.0: No-Op. Seit Wawi 2.1.0 registriert sich die Wawi selbst per JWT.
curl --request PATCH \
--url https://api.jtl-cloud.com/erp/authentication/authentication/foreign/{registrationId}/registration \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-challengecode: <x-challengecode>' \
--header 'x-tenant-id: <x-tenant-id>' \
--data '
{
"AppId": "<string>",
"DisplayName": "<string>",
"Description": "<string>",
"LocalizedDisplayNames": [
{
"LanguageIso": "<string>",
"Name": "<string>"
}
],
"LocalizedDescriptions": [
{
"LanguageIso": "<string>",
"Name": "<string>"
}
],
"Version": "<string>",
"ProviderName": "<string>",
"ProviderWebsite": "<string>",
"MandatoryApiScopes": [
"<string>"
],
"OptionalApiScopes": [
"<string>"
],
"AppIcon": "aSDinaTvuI8gbWludGxpZnk=",
"Signature": "aSDinaTvuI8gbWludGxpZnk=",
"SignatureData": "2023-11-07T05:31:56Z"
}
'import requests
url = "https://api.jtl-cloud.com/erp/authentication/authentication/foreign/{registrationId}/registration"
payload = {
"AppId": "<string>",
"DisplayName": "<string>",
"Description": "<string>",
"LocalizedDisplayNames": [
{
"LanguageIso": "<string>",
"Name": "<string>"
}
],
"LocalizedDescriptions": [
{
"LanguageIso": "<string>",
"Name": "<string>"
}
],
"Version": "<string>",
"ProviderName": "<string>",
"ProviderWebsite": "<string>",
"MandatoryApiScopes": ["<string>"],
"OptionalApiScopes": ["<string>"],
"AppIcon": "aSDinaTvuI8gbWludGxpZnk=",
"Signature": "aSDinaTvuI8gbWludGxpZnk=",
"SignatureData": "2023-11-07T05:31:56Z"
}
headers = {
"x-challengecode": "<x-challengecode>",
"x-tenant-id": "<x-tenant-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {
'x-challengecode': '<x-challengecode>',
'x-tenant-id': '<x-tenant-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
AppId: '<string>',
DisplayName: '<string>',
Description: '<string>',
LocalizedDisplayNames: [{LanguageIso: '<string>', Name: '<string>'}],
LocalizedDescriptions: [{LanguageIso: '<string>', Name: '<string>'}],
Version: '<string>',
ProviderName: '<string>',
ProviderWebsite: '<string>',
MandatoryApiScopes: ['<string>'],
OptionalApiScopes: ['<string>'],
AppIcon: 'aSDinaTvuI8gbWludGxpZnk=',
Signature: 'aSDinaTvuI8gbWludGxpZnk=',
SignatureData: '2023-11-07T05:31:56Z'
})
};
fetch('https://api.jtl-cloud.com/erp/authentication/authentication/foreign/{registrationId}/registration', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.jtl-cloud.com/erp/authentication/authentication/foreign/{registrationId}/registration",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'AppId' => '<string>',
'DisplayName' => '<string>',
'Description' => '<string>',
'LocalizedDisplayNames' => [
[
'LanguageIso' => '<string>',
'Name' => '<string>'
]
],
'LocalizedDescriptions' => [
[
'LanguageIso' => '<string>',
'Name' => '<string>'
]
],
'Version' => '<string>',
'ProviderName' => '<string>',
'ProviderWebsite' => '<string>',
'MandatoryApiScopes' => [
'<string>'
],
'OptionalApiScopes' => [
'<string>'
],
'AppIcon' => 'aSDinaTvuI8gbWludGxpZnk=',
'Signature' => 'aSDinaTvuI8gbWludGxpZnk=',
'SignatureData' => '2023-11-07T05:31:56Z'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-challengecode: <x-challengecode>",
"x-tenant-id: <x-tenant-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.jtl-cloud.com/erp/authentication/authentication/foreign/{registrationId}/registration"
payload := strings.NewReader("{\n \"AppId\": \"<string>\",\n \"DisplayName\": \"<string>\",\n \"Description\": \"<string>\",\n \"LocalizedDisplayNames\": [\n {\n \"LanguageIso\": \"<string>\",\n \"Name\": \"<string>\"\n }\n ],\n \"LocalizedDescriptions\": [\n {\n \"LanguageIso\": \"<string>\",\n \"Name\": \"<string>\"\n }\n ],\n \"Version\": \"<string>\",\n \"ProviderName\": \"<string>\",\n \"ProviderWebsite\": \"<string>\",\n \"MandatoryApiScopes\": [\n \"<string>\"\n ],\n \"OptionalApiScopes\": [\n \"<string>\"\n ],\n \"AppIcon\": \"aSDinaTvuI8gbWludGxpZnk=\",\n \"Signature\": \"aSDinaTvuI8gbWludGxpZnk=\",\n \"SignatureData\": \"2023-11-07T05:31:56Z\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-challengecode", "<x-challengecode>")
req.Header.Add("x-tenant-id", "<x-tenant-id>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.jtl-cloud.com/erp/authentication/authentication/foreign/{registrationId}/registration")
.header("x-challengecode", "<x-challengecode>")
.header("x-tenant-id", "<x-tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"AppId\": \"<string>\",\n \"DisplayName\": \"<string>\",\n \"Description\": \"<string>\",\n \"LocalizedDisplayNames\": [\n {\n \"LanguageIso\": \"<string>\",\n \"Name\": \"<string>\"\n }\n ],\n \"LocalizedDescriptions\": [\n {\n \"LanguageIso\": \"<string>\",\n \"Name\": \"<string>\"\n }\n ],\n \"Version\": \"<string>\",\n \"ProviderName\": \"<string>\",\n \"ProviderWebsite\": \"<string>\",\n \"MandatoryApiScopes\": [\n \"<string>\"\n ],\n \"OptionalApiScopes\": [\n \"<string>\"\n ],\n \"AppIcon\": \"aSDinaTvuI8gbWludGxpZnk=\",\n \"Signature\": \"aSDinaTvuI8gbWludGxpZnk=\",\n \"SignatureData\": \"2023-11-07T05:31:56Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.jtl-cloud.com/erp/authentication/authentication/foreign/{registrationId}/registration")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-challengecode"] = '<x-challengecode>'
request["x-tenant-id"] = '<x-tenant-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"AppId\": \"<string>\",\n \"DisplayName\": \"<string>\",\n \"Description\": \"<string>\",\n \"LocalizedDisplayNames\": [\n {\n \"LanguageIso\": \"<string>\",\n \"Name\": \"<string>\"\n }\n ],\n \"LocalizedDescriptions\": [\n {\n \"LanguageIso\": \"<string>\",\n \"Name\": \"<string>\"\n }\n ],\n \"Version\": \"<string>\",\n \"ProviderName\": \"<string>\",\n \"ProviderWebsite\": \"<string>\",\n \"MandatoryApiScopes\": [\n \"<string>\"\n ],\n \"OptionalApiScopes\": [\n \"<string>\"\n ],\n \"AppIcon\": \"aSDinaTvuI8gbWludGxpZnk=\",\n \"Signature\": \"aSDinaTvuI8gbWludGxpZnk=\",\n \"SignatureData\": \"2023-11-07T05:31:56Z\"\n}"
response = http.request(request)
puts response.read_body{
"RequestStatusInfo": {
"AppId": "<string>",
"RegistrationRequestId": "<string>"
},
"Token": {
"ApiKey": "<string>"
},
"GrantedScopes": [
"<string>"
]
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Headers
You can enter any custom value here. The X-ChallengeCode is used during app registration and must be the same for all registration requests. The maximum length is 30 characters.
The tenant ID for the target ERP instance.
Path Parameters
Unique identifier of the registration request
Body
Wird angenommen, aber nicht verarbeitet.
Model Class: UpdateAppRegistrationRequest
Unique identifier of the application
Default display name of the application
Default description of the application
Localized display names of the application
Show child attributes
Show child attributes
Localized descriptions of the application
Show child attributes
Show child attributes
Version of the application to be registered
Name of the application's provider
Website of the application's provider
Mandatory required API scopes for the application to work
Optional (recommended) API scopes for the application
Base64 encoded data of an image.
multiple instances of the application possible
0, 1, 2, 3 The Signature of the App, it combines AppId.SignatureData like myApp/v1.2025-08-03T25:48:00 in UTC Time
The Data as DateTimeOffset must be in a range from 10 Minutes equals, and is base for the Signature and must be in UTC Time
Response
Neutral success response — die Anfrage wird angenommen, aber nicht ausgeführt.
Model Class: RegistrationInformation
Status of the registration process (including the unique identifiers for application and registration request)
Show child attributes
Show child attributes
Generated token for the application to access the API
Show child attributes
Show child attributes
API scopes (both mandatory and optional) granted to the application
Was this page helpful?