WSE · Schnittstellen

Administration & Zugriff

Verbinden Sie WSE mit Ihren Anwendungen. Entdecken Sie Endpunkte, Datenmodelle und Schnittstellen – nach Funktionsbereichen und Add-ons geordnet.

OpenAPI herunterladen ↓
REST · JSONBearer-Authentifizierung

Administration & Zugriff

ERP API Dokumentation

Anmeldung & Profil

Get Auth Me

Return the authenticated actor and effective authorization context.

Authorizations:
BearerAuth

Responses

Request samples

# Example only: replace the instance URL, token and sample values before use.
curl --request GET \
  --url 'https://your-instance.example.invalid/auth/me' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'

Response samples

Content type
application/json
{
  • "actor_id": "04f37679-bfbf-4906-b749-01756515cecf",
  • "sub": "string",
  • "user": "string",
  • "email": "string",
  • "first_name": "string",
  • "last_name": "string",
  • "phone": "string",
  • "mobile": "string",
  • "actor_type": "string",
  • "roles": [
    ],
  • "permissions": [
    ]
}

Patch Auth Me

Update and return the current human user's editable Keycloak profile.

Authorizations:
BearerAuth
Request Body schema: application/json
required
First Name (string) or First Name (null) (First Name)
Any of
<= 255 characters
string (First Name) <= 255 characters
Last Name (string) or Last Name (null) (Last Name)
Any of
<= 255 characters
string (Last Name) <= 255 characters
Phone (string) or Phone (null) (Phone)
Any of
<= 255 characters
string (Phone) <= 255 characters
Mobile (string) or Mobile (null) (Mobile)
Any of
<= 255 characters
string (Mobile) <= 255 characters

Responses

Request samples

Content type
application/json
{
  • "first_name": "string",
  • "last_name": "string",
  • "phone": "string",
  • "mobile": "string"
}

Response samples

Content type
application/json
{
  • "actor_id": "04f37679-bfbf-4906-b749-01756515cecf",
  • "sub": "string",
  • "user": "string",
  • "email": "string",
  • "first_name": "string",
  • "last_name": "string",
  • "phone": "string",
  • "mobile": "string",
  • "actor_type": "string",
  • "roles": [
    ],
  • "permissions": [
    ]
}

Get My Preferences

Return the personal preferences of the current human user, creating defaults on first access.

Authorizations:
BearerAuth

Responses

Request samples

# Example only: replace the instance URL, token and sample values before use.
curl --request GET \
  --url 'https://your-instance.example.invalid/auth/me/preferences' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'

Response samples

Content type
application/json
{
  • "show_ids": true,
  • "show_last_change": true,
  • "show_new_features": true,
  • "ui_language": "de",
  • "dark_mode": true
}

Patch My Preferences

Partially update the personal preferences of the current human user.

Authorizations:
BearerAuth
Request Body schema: application/json
required
Show Ids (boolean) or Show Ids (null) (Show Ids)

Show technical IDs in the UI

Any of
boolean (Show Ids)

Show technical IDs in the UI

Show Last Change (boolean) or Show Last Change (null) (Show Last Change)

Show last-change information in the UI

Any of
boolean (Show Last Change)

Show last-change information in the UI

Show New Features (boolean) or Show New Features (null) (Show New Features)

Show new feature highlights in the UI

Any of
boolean (Show New Features)

Show new feature highlights in the UI

UiLanguage (string) or null

UI language of the actor

Any of
string (UiLanguage)
Enum: "de" "en"

UI language of the actor

Dark Mode (boolean) or Dark Mode (null) (Dark Mode)

Whether the UI uses dark mode

Any of
boolean (Dark Mode)

Whether the UI uses dark mode

Responses

Request samples

Content type
application/json
{
  • "show_ids": true,
  • "show_last_change": true,
  • "show_new_features": true,
  • "ui_language": "de",
  • "dark_mode": true
}

Response samples

Content type
application/json
{
  • "show_ids": true,
  • "show_last_change": true,
  • "show_new_features": true,
  • "ui_language": "de",
  • "dark_mode": true
}

Berechtigungen

List Permissions

Return all code-defined route permissions.

Authorizations:
BearerAuth

Responses

Request samples

# Example only: replace the instance URL, token and sample values before use.
curl --request GET \
  --url 'https://your-instance.example.invalid/authz/permissions' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'

Response samples

Content type
application/json
[
  • {
    }
]

List Role Permissions

Return all local role-to-permission mappings.

Authorizations:
BearerAuth

Responses

Request samples

# Example only: replace the instance URL, token and sample values before use.
curl --request GET \
  --url 'https://your-instance.example.invalid/authz/role-permissions' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'

Response samples

Content type
application/json
[
  • {
    }
]

Assign Role Permission

Assign one code-defined permission to one custom role.

Authorizations:
BearerAuth
path Parameters
role_key
required
string (Role Key)
permission_key
required
string (Permission Key)

Responses

Request samples

# Example only: replace the instance URL, token and sample values before use.
curl --request PUT \
  --url 'https://your-instance.example.invalid/authz/roles/string/permissions/string' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'

Response samples

Content type
application/json
{
  • "role_key": "string",
  • "permission_key": "string"
}

Delete Role Permission

Remove one code-defined permission from one custom role.

Authorizations:
BearerAuth
path Parameters
role_key
required
string (Role Key)
permission_key
required
string (Permission Key)

Responses

Request samples

# Example only: replace the instance URL, token and sample values before use.
curl --request DELETE \
  --url 'https://your-instance.example.invalid/authz/roles/string/permissions/string' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'

Response samples

Content type
application/json
{
  • "role_key": "string",
  • "permission_key": "string"
}

Mandantenverwaltung

Get Tenant Licence

Return verified signed lease-derived tenant license information.

Authorizations:
BearerAuth

Responses

Request samples

# Example only: replace the instance URL, token and sample values before use.
curl --request GET \
  --url 'https://your-instance.example.invalid/tenant-admin/licence' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'

Response samples

Content type
application/json
{
  • "tenant_id": "string",
  • "license_status": "active",
  • "valid_to": "2019-08-24",
  • "grace_until": "2019-08-24",
  • "lease_expires_at": "2019-08-24T14:15:22Z",
  • "last_successful_check_at": "2019-08-24T14:15:22Z",
  • "next_check_after": "2019-08-24T14:15:22Z",
  • "locked": true,
  • "lock_reason": "string",
  • "max_seats": 0,
  • "options": [
    ]
}

Refresh Tenant Licence

Refresh the tenant license from WAS and return verified license information.

Authorizations:
BearerAuth

Responses

Request samples

# Example only: replace the instance URL, token and sample values before use.
curl --request POST \
  --url 'https://your-instance.example.invalid/tenant-admin/licence/refresh' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'

Response samples

Content type
application/json
{
  • "tenant_id": "string",
  • "license_status": "active",
  • "valid_to": "2019-08-24",
  • "grace_until": "2019-08-24",
  • "lease_expires_at": "2019-08-24T14:15:22Z",
  • "last_successful_check_at": "2019-08-24T14:15:22Z",
  • "next_check_after": "2019-08-24T14:15:22Z",
  • "locked": true,
  • "lock_reason": "string",
  • "max_seats": 0,
  • "options": [
    ]
}

Create Tenant Product Change Request

Submit a tenant product or seat change for asynchronous processing.

Authorizations:
BearerAuth
header Parameters
Idempotency-Key
required
string <uuid> (Idempotency-Key)
Request Body schema: application/json
required
reason
required
string (Reason) [ 1 .. 500 ] characters
Array of objects (Requested Products) <= 100 items
Array (<= 100 items)
product_id
required
string <uuid> (Product Id)
count
required
integer (Count) [ 1 .. 1000000 ]
Target Max Seats (integer) or Target Max Seats (null) (Target Max Seats)
Any of
>= 1
integer (Target Max Seats) >= 1

Responses

Request samples

Content type
application/json
{
  • "requested_products": [
    ],
  • "target_max_seats": 1,
  • "reason": "string"
}

Response samples

Content type
application/json
{
  • "request_id": "266ea41d-adf5-480b-af50-15b940c2b846",
  • "process_instance_id": "string",
  • "status": "pending",
  • "submitted_at": "2019-08-24T14:15:22Z"
}

Get Tenant Product Change Request

Return current process state and verified license data after success.

Authorizations:
BearerAuth
path Parameters
request_id
required
string <uuid> (Request Id)

Responses

Request samples

# Example only: replace the instance URL, token and sample values before use.
curl --request GET \
  --url 'https://your-instance.example.invalid/tenant-admin/product-change-requests/497f6eca-6276-4993-bfeb-53cbbbba6f08' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'

Response samples

Content type
application/json
{
  • "request_id": "266ea41d-adf5-480b-af50-15b940c2b846",
  • "process_instance_id": "string",
  • "status": "pending",
  • "submitted_at": "2019-08-24T14:15:22Z",
  • "result": {
    },
  • "failure": {
    },
  • "license": {
    },
  • "seats": {
    }
}

Get Tenant Contract Terms

Return contract dates for the authenticated WSE tenant.

Authorizations:
BearerAuth

Responses

Request samples

# Example only: replace the instance URL, token and sample values before use.
curl --request GET \
  --url 'https://your-instance.example.invalid/tenant-admin/contract-terms' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'

Response samples

Content type
application/json
{
  • "contract_start_date": "2019-08-24",
  • "earliest_termination_date": "2019-08-24"
}

Create Tenant Termination Request

Start termination of the authenticated WSE tenant.

Authorizations:
BearerAuth
header Parameters
Idempotency-Key
required
string <uuid> (Idempotency-Key)
Request Body schema: application/json
required
date_deactivate
required
string <date> (Date Deactivate)
reason
required
string (Reason) [ 1 .. 500 ] characters

Responses

Request samples

Content type
application/json
{
  • "date_deactivate": "2019-08-24",
  • "reason": "string"
}

Response samples

Content type
application/json
{
  • "request_id": "266ea41d-adf5-480b-af50-15b940c2b846",
  • "process_instance_id": "string",
  • "status": "pending",
  • "submitted_at": "2019-08-24T14:15:22Z"
}

List Tenant Roles

Return the tenant role catalog from WAS.

Authorizations:
BearerAuth

Responses

Request samples

# Example only: replace the instance URL, token and sample values before use.
curl --request GET \
  --url 'https://your-instance.example.invalid/tenant-admin/roles' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'

Response samples

Content type
application/json
[
  • {
    }
]

Create Tenant Role

Create one custom tenant role.

Authorizations:
BearerAuth
Request Body schema: application/json
required
role_key
required
string (Role Key) [ 1 .. 120 ] characters
name
required
string (Name) [ 1 .. 255 ] characters
description
required
string (Description) [ 1 .. 500 ] characters

Responses

Request samples

Content type
application/json
{
  • "role_key": "string",
  • "name": "string",
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "role_id": "string",
  • "role_key": "string",
  • "name": "string",
  • "description": "string",
  • "is_standard": true,
  • "is_custom": true
}

Delete Tenant Role

Delete one unassigned custom tenant role.

Authorizations:
BearerAuth
path Parameters
role_key
required
string (Role Key)

Responses

Request samples

# Example only: replace the instance URL, token and sample values before use.
curl --request DELETE \
  --url 'https://your-instance.example.invalid/tenant-admin/roles/string' \
  --header 'Accept: application/problem+json' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'

Response samples

Content type
application/problem+json
{
  • "type": "urn:wse:problem:bad-request",
  • "title": "string",
  • "status": 0,
  • "detail": "string",
  • "instance": "string",
  • "parameters": null,
  • "errors": null
}

List Tenant Users

Return one page of tenant users and pending invitations.

Authorizations:
BearerAuth
query Parameters
offset
integer (Offset) >= 0
Default: 0
limit
integer (Limit) [ 1 .. 100 ]
Default: 50

Responses

Request samples

# Example only: replace the instance URL, token and sample values before use.
curl --request GET \
  --url 'https://your-instance.example.invalid/tenant-admin/users?offset=0&limit=50' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "offset": 0,
  • "limit": 1,
  • "next_offset": 0
}

Invite Tenant User

Invite one user to the current tenant.

Authorizations:
BearerAuth
Request Body schema: application/json
required
email
required
string <email> (Email)

Email address of the user to invite

role_keys
required
Array of strings (Role Keys) [ 1 .. 50 ] items

Tenant role keys to assign after invitation

Inviter Name (string) or Inviter Name (null) (Inviter Name)

Display name of the person sending the invitation

Any of
[ 1 .. 300 ] characters
string (Inviter Name) [ 1 .. 300 ] characters

Display name of the person sending the invitation

Ttl Sec (integer) or Ttl Sec (null) (Ttl Sec)

Invitation lifetime in seconds

Any of
[ 0 .. 2592000 ]
integer (Ttl Sec) [ 0 .. 2592000 ]

Invitation lifetime in seconds

send_invitation_email
boolean (Send Invitation Email)
Default: true

Whether WAS should send the invitation email

Responses

Request samples

Content type
application/json
{
  • "email": "max.mustermann@example.com",
  • "role_keys": [
    ],
  • "inviter_name": "Max Mustermann",
  • "ttl_sec": 604800,
  • "send_invitation_email": true
}

Response samples

Content type
application/json
{
  • "email": "user@example.com",
  • "role_keys": [
    ],
  • "invitation_id": "string",
  • "expires_at": "2019-08-24T14:15:22Z"
}

Delete Tenant User

Remove one user from the current tenant.

Authorizations:
BearerAuth
path Parameters
user_id
required
string (User Id)

Responses

Request samples

# Example only: replace the instance URL, token and sample values before use.
curl --request DELETE \
  --url 'https://your-instance.example.invalid/tenant-admin/users/string' \
  --header 'Accept: application/problem+json' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'

Response samples

Content type
application/problem+json
{
  • "type": "urn:wse:problem:bad-request",
  • "title": "string",
  • "status": 0,
  • "detail": "string",
  • "instance": "string",
  • "parameters": null,
  • "errors": null
}

Revoke Tenant User Invitation

Revoke one pending tenant invitation.

Authorizations:
BearerAuth
path Parameters
invitation_id
required
string (Invitation Id)

Responses

Request samples

# Example only: replace the instance URL, token and sample values before use.
curl --request DELETE \
  --url 'https://your-instance.example.invalid/tenant-admin/users/invitations/string' \
  --header 'Accept: application/problem+json' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'

Response samples

Content type
application/problem+json
{
  • "type": "urn:wse:problem:bad-request",
  • "title": "string",
  • "status": 0,
  • "detail": "string",
  • "instance": "string",
  • "parameters": null,
  • "errors": null
}

Resend Tenant User Invitation

Resend one pending tenant invitation.

Authorizations:
BearerAuth
path Parameters
invitation_id
required
string (Invitation Id)

Responses

Request samples

# Example only: replace the instance URL, token and sample values before use.
curl --request POST \
  --url 'https://your-instance.example.invalid/tenant-admin/users/invitations/string/resend' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'

Response samples

Content type
application/json
{
  • "email": "user@example.com",
  • "role_keys": [
    ],
  • "invitation_id": "string",
  • "expires_at": "2019-08-24T14:15:22Z"
}

Get Tenant User Roles

Return rich role assignments for one tenant user.

Authorizations:
BearerAuth
path Parameters
user_id
required
string (User Id)

Responses

Request samples

# Example only: replace the instance URL, token and sample values before use.
curl --request GET \
  --url 'https://your-instance.example.invalid/tenant-admin/users/string/roles' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'

Response samples

Content type
application/json
{
  • "user_id": "string",
  • "roles": [
    ]
}

Replace Tenant User Roles

Replace all managed roles on one tenant user.

Authorizations:
BearerAuth
path Parameters
user_id
required
string (User Id)
Request Body schema: application/json
required
role_keys
required
Array of strings (Role Keys) [ 1 .. 50 ] items

Responses

Request samples

Content type
application/json
{
  • "role_keys": [
    ]
}

Response samples

Content type
application/json
{
  • "user_id": "string",
  • "role_keys": [
    ]
}

Patch Tenant User Roles

Atomically add and remove roles for one tenant user.

Authorizations:
BearerAuth
path Parameters
user_id
required
string (User Id)
Request Body schema: application/json
required
add_role_keys
Array of strings (Add Role Keys) <= 50 items
remove_role_keys
Array of strings (Remove Role Keys) <= 50 items

Responses

Request samples

Content type
application/json
{
  • "add_role_keys": [
    ],
  • "remove_role_keys": [
    ]
}

Response samples

Content type
application/json
{
  • "user_id": "string",
  • "role_keys": [
    ]
}

Support

Create Support Ticket

Create one tenant-scoped support ticket through WAS.

Authorizations:
BearerAuth
Request Body schema: application/json
required
subject
required
string (Subject)
description
required
string (Description)

User-authored HTML fragment. WAS sanitizes it before sending it to Zammad. Supported formatting includes paragraphs, line breaks, headings, emphasis, lists, quotes, code and HTTP(S), mailto or tel links. Plain text is valid HTML text content.

SupportTicketType (string) or null
Any of
string (SupportTicketType)
Enum: "Change Request" "Problem" "Service Request" "Incident"

Allowed values of the active Zammad ticket custom field type.

First Name (string) or First Name (null) (First Name)
Any of
string (First Name)
Last Name (string) or Last Name (null) (Last Name)
Any of
string (Last Name)
Phone (string) or Phone (null) (Phone)
Any of
string (Phone)
Mobile (string) or Mobile (null) (Mobile)
Any of
string (Mobile)

Responses

Request samples

Content type
application/json
{
  • "subject": "string",
  • "description": "<p>The application shows an <strong>error</strong>.</p>",
  • "type": "Change Request",
  • "first_name": "string",
  • "last_name": "string",
  • "phone": "string",
  • "mobile": "string"
}

Response samples

Content type
application/json
{
  • "ticket_id": 0,
  • "ticket_number": "string",
  • "organization_found": true,
  • "internal_note_created": true,
  • "warning": "organization_missing_note_failed"
}