WSE · Schnittstellen
Administration & Zugriff
Verbinden Sie WSE mit Ihren Anwendungen. Entdecken Sie Endpunkte, Datenmodelle und Schnittstellen – nach Funktionsbereichen und Add-ons geordnet.
Administration & Zugriff
ERP API Dokumentation
Get Auth Me
Return the authenticated actor and effective authorization context.
Authorizations:
Responses
Request samples
- cURL
- JavaScript / Node.js
- Python
- Java
- PHP
# 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
- 200
- default
{- "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": [
- "string"
], - "permissions": [
- "string"
]
}Patch Auth Me
Update and return the current human user's editable Keycloak profile.
Authorizations:
Request Body schema: application/jsonrequired
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
- Payload
- cURL
- JavaScript / Node.js
- Python
- Java
- PHP
{- "first_name": "string",
- "last_name": "string",
- "phone": "string",
- "mobile": "string"
}Response samples
- 200
- 422
- default
{- "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": [
- "string"
], - "permissions": [
- "string"
]
}Get My Preferences
Return the personal preferences of the current human user, creating defaults on first access.
Authorizations:
Responses
Request samples
- cURL
- JavaScript / Node.js
- Python
- Java
- PHP
# 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
- 200
- 500
- 503
- default
{- "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:
Request Body schema: application/jsonrequired
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
- Payload
- cURL
- JavaScript / Node.js
- Python
- Java
- PHP
{- "show_ids": true,
- "show_last_change": true,
- "show_new_features": true,
- "ui_language": "de",
- "dark_mode": true
}Response samples
- 200
- 422
- 500
- 503
- default
{- "show_ids": true,
- "show_last_change": true,
- "show_new_features": true,
- "ui_language": "de",
- "dark_mode": true
}Request samples
- cURL
- JavaScript / Node.js
- Python
- Java
- PHP
# 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
- 200
- default
[- {
- "permission_key": "string",
- "display_name": "string",
- "description": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]List Role Permissions
Return all local role-to-permission mappings.
Authorizations:
Responses
Request samples
- cURL
- JavaScript / Node.js
- Python
- Java
- PHP
# 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
- 200
- default
[- {
- "role_key": "string",
- "permission_key": "string"
}
]Assign Role Permission
Assign one code-defined permission to one custom role.
Authorizations:
path Parameters
| role_key required | string (Role Key) |
| permission_key required | string (Permission Key) |
Responses
Request samples
- cURL
- JavaScript / Node.js
- Python
- Java
- PHP
# 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
- 200
- 403
- 404
- 422
- default
{- "role_key": "string",
- "permission_key": "string"
}Delete Role Permission
Remove one code-defined permission from one custom role.
Authorizations:
path Parameters
| role_key required | string (Role Key) |
| permission_key required | string (Permission Key) |
Responses
Request samples
- cURL
- JavaScript / Node.js
- Python
- Java
- PHP
# 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
- 200
- 403
- 404
- 422
- default
{- "role_key": "string",
- "permission_key": "string"
}Get Tenant Licence
Return verified signed lease-derived tenant license information.
Authorizations:
Responses
Request samples
- cURL
- JavaScript / Node.js
- Python
- Java
- PHP
# 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
- 200
- default
{- "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": [
- {
- "option_key": "string",
- "description": "string"
}
]
}Refresh Tenant Licence
Refresh the tenant license from WAS and return verified license information.
Authorizations:
Responses
Request samples
- cURL
- JavaScript / Node.js
- Python
- Java
- PHP
# 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
- 200
- default
{- "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": [
- {
- "option_key": "string",
- "description": "string"
}
]
}Create Tenant Product Change Request
Submit a tenant product or seat change for asynchronous processing.
Authorizations:
header Parameters
| Idempotency-Key required | string <uuid> (Idempotency-Key) |
Request Body schema: application/jsonrequired
| reason required | string (Reason) [ 1 .. 500 ] characters | ||||
Array of objects (Requested Products) <= 100 items | |||||
Array (<= 100 items)
| |||||
Target Max Seats (integer) or Target Max Seats (null) (Target Max Seats) | |||||
Any of >= 1 integer (Target Max Seats) >= 1 | |||||
Responses
Request samples
- Payload
- cURL
- JavaScript / Node.js
- Python
- Java
- PHP
{- "requested_products": [
- {
- "product_id": "0d012afa-f885-4e65-aeca-37e27701e2d1",
- "count": 1
}
], - "target_max_seats": 1,
- "reason": "string"
}Response samples
- 202
- 422
- default
{- "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:
path Parameters
| request_id required | string <uuid> (Request Id) |
Responses
Request samples
- cURL
- JavaScript / Node.js
- Python
- Java
- PHP
# 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
- 200
- 422
- default
{- "request_id": "266ea41d-adf5-480b-af50-15b940c2b846",
- "process_instance_id": "string",
- "status": "pending",
- "submitted_at": "2019-08-24T14:15:22Z",
- "result": {
- "product_assignment": {
- "products": [
- {
- "product_id": "0d012afa-f885-4e65-aeca-37e27701e2d1",
- "count": 1,
- "service_product_id": "string",
- "features": {
- "property1": "string",
- "property2": "string"
}, - "outcome": "created"
}
], - "active_wse_option_names": [
- "string"
], - "included_seats": 1
}, - "seat_adjustment": {
- "previous_max_seats": 1,
- "target_max_seats": 1,
- "effective_max_seats": 1,
- "change_kind": "unchanged",
- "seat_schedule": [
- {
- "date_active": "2019-08-24",
- "max_seats": 0
}
]
}, - "active_wse_option_names": [
- "string"
], - "current_max_seats": 1,
- "seat_schedule": [
- {
- "date_active": "2019-08-24",
- "max_seats": 0
}
]
}, - "failure": {
- "code": "string",
- "message": "string"
}, - "license": {
- "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": [
- {
- "option_key": "string",
- "description": "string"
}
]
}, - "seats": {
- "current_seat_limit": 0,
- "active_user_count": 0,
- "pending_invitation_count": 0,
- "available_seats": 0
}
}Get Tenant Contract Terms
Return contract dates for the authenticated WSE tenant.
Authorizations:
Responses
Request samples
- cURL
- JavaScript / Node.js
- Python
- Java
- PHP
# 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
- 200
- default
{- "contract_start_date": "2019-08-24",
- "earliest_termination_date": "2019-08-24"
}Create Tenant Termination Request
Start termination of the authenticated WSE tenant.
Authorizations:
header Parameters
| Idempotency-Key required | string <uuid> (Idempotency-Key) |
Request Body schema: application/jsonrequired
| date_deactivate required | string <date> (Date Deactivate) |
| reason required | string (Reason) [ 1 .. 500 ] characters |
Responses
Request samples
- Payload
- cURL
- JavaScript / Node.js
- Python
- Java
- PHP
{- "date_deactivate": "2019-08-24",
- "reason": "string"
}Response samples
- 202
- 422
- default
{- "request_id": "266ea41d-adf5-480b-af50-15b940c2b846",
- "process_instance_id": "string",
- "status": "pending",
- "submitted_at": "2019-08-24T14:15:22Z"
}Request samples
- cURL
- JavaScript / Node.js
- Python
- Java
- PHP
# 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
- 200
- default
[- {
- "role_id": "string",
- "role_key": "string",
- "name": "string",
- "description": "string",
- "is_standard": true,
- "is_custom": true
}
]Create Tenant Role
Create one custom tenant role.
Authorizations:
Request Body schema: application/jsonrequired
| 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
- Payload
- cURL
- JavaScript / Node.js
- Python
- Java
- PHP
{- "role_key": "string",
- "name": "string",
- "description": "string"
}Response samples
- 201
- 422
- default
{- "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:
path Parameters
| role_key required | string (Role Key) |
Responses
Request samples
- cURL
- JavaScript / Node.js
- Python
- Java
- PHP
# 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
- 422
- default
{- "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:
query Parameters
| offset | integer (Offset) >= 0 Default: 0 |
| limit | integer (Limit) [ 1 .. 100 ] Default: 50 |
Responses
Request samples
- cURL
- JavaScript / Node.js
- Python
- Java
- PHP
# 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
- 200
- 422
- default
{- "items": [
- {
- "user_id": "string",
- "invitation_id": "string",
- "email": "user@example.com",
- "name": "string",
- "username": "string",
- "picture": "string",
- "status": "active",
- "created_at": "2019-08-24T14:15:22Z",
- "expires_at": "2019-08-24T14:15:22Z"
}
], - "offset": 0,
- "limit": 1,
- "next_offset": 0
}Invite Tenant User
Invite one user to the current tenant.
Authorizations:
Request Body schema: application/jsonrequired
| 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
- Payload
- cURL
- JavaScript / Node.js
- Python
- Java
- PHP
{- "email": "max.mustermann@example.com",
- "role_keys": [
- "wse_admin"
], - "inviter_name": "Max Mustermann",
- "ttl_sec": 604800,
- "send_invitation_email": true
}Response samples
- 201
- 422
- default
{- "email": "user@example.com",
- "role_keys": [
- "string"
], - "invitation_id": "string",
- "expires_at": "2019-08-24T14:15:22Z"
}Delete Tenant User
Remove one user from the current tenant.
Authorizations:
path Parameters
| user_id required | string (User Id) |
Responses
Request samples
- cURL
- JavaScript / Node.js
- Python
- Java
- PHP
# 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
- 422
- default
{- "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:
path Parameters
| invitation_id required | string (Invitation Id) |
Responses
Request samples
- cURL
- JavaScript / Node.js
- Python
- Java
- PHP
# 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
- 422
- default
{- "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:
path Parameters
| invitation_id required | string (Invitation Id) |
Responses
Request samples
- cURL
- JavaScript / Node.js
- Python
- Java
- PHP
# 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
- 200
- 422
- default
{- "email": "user@example.com",
- "role_keys": [
- "string"
], - "invitation_id": "string",
- "expires_at": "2019-08-24T14:15:22Z"
}Get Tenant User Roles
Return rich role assignments for one tenant user.
Authorizations:
path Parameters
| user_id required | string (User Id) |
Responses
Request samples
- cURL
- JavaScript / Node.js
- Python
- Java
- PHP
# 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
- 200
- 422
- default
{- "user_id": "string",
- "roles": [
- {
- "role_id": "string",
- "role_key": "string",
- "name": "string",
- "description": "string"
}
]
}Replace Tenant User Roles
Replace all managed roles on one tenant user.
Authorizations:
path Parameters
| user_id required | string (User Id) |
Request Body schema: application/jsonrequired
| role_keys required | Array of strings (Role Keys) [ 1 .. 50 ] items |
Responses
Request samples
- Payload
- cURL
- JavaScript / Node.js
- Python
- Java
- PHP
{- "role_keys": [
- "string"
]
}Response samples
- 200
- 422
- default
{- "user_id": "string",
- "role_keys": [
- "string"
]
}Patch Tenant User Roles
Atomically add and remove roles for one tenant user.
Authorizations:
path Parameters
| user_id required | string (User Id) |
Request Body schema: application/jsonrequired
| 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
- Payload
- cURL
- JavaScript / Node.js
- Python
- Java
- PHP
{- "add_role_keys": [
- "string"
], - "remove_role_keys": [
- "string"
]
}Response samples
- 200
- 422
- default
{- "user_id": "string",
- "role_keys": [
- "string"
]
}Create Support Ticket
Create one tenant-scoped support ticket through WAS.
Authorizations:
Request Body schema: application/jsonrequired
| 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 | |
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
- Payload
- cURL
- JavaScript / Node.js
- Python
- Java
- PHP
{- "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
- 201
- 422
- default
{- "ticket_id": 0,
- "ticket_number": "string",
- "organization_found": true,
- "internal_note_created": true,
- "warning": "organization_missing_note_failed"
}