Skip to content

Credentials Webhook

When a school administrator activates your platform application, the Untis Platform sends a credentials transfer webhook to your configured endpoint. This webhook delivers everything your application needs to authenticate against the Untis Platform APIs on behalf of that school.

Credential transfer via webhook is the recommended approach. The alternative — manual entry by the school administrator — is error-prone and does not scale.

eventTypeTrigger
CREATEDA school administrator activates your application for the first time
REACTIVATEDAn application that was previously deactivated is re-activated by the school
RESETA password reset was triggered on the platform — new credentials are issued

Your credentials webhook endpoint must:

  • Be reachable via HTTPS
  • Accept POST requests with Content-Type: application/json
  • Return a 2xx response to acknowledge receipt
  • Verify the request signature before processing — see Step 1 in Handling requirements below

The endpoint URL is configured in PAM when your platform application is set up.

The payload is a JSON object containing credentials and metadata for the activated tenant (Credentials API specification v2).

FieldTypeDescription
tenantIdstringUnique identifier for the school/tenant
clientIdstringThe OIDC client ID. Used as the client_id parameter in auth requests and as the Basic Auth username for Client Credentials token requests
secretstringThe OIDC client secret. Used as client_secret in the Authorization Code token exchange
passwordstringThe platform-generated password. Used as the Basic Auth password for Client Credentials token requests (not the OIDC secret)
hoststringThe Untis Platform host for this school (e.g. localhost, or the school’s assigned subdomain)
countrystringCountry of the school (e.g. AT, DE)
regionstringRegion/state of the school (e.g. AT-3)
languagestringPrimary language of the school (e.g. de)
eventTypestringThe reason for this delivery: CREATED, REACTIVATED, or RESET
activatorEmailstringEmail address of the school administrator who activated the application
activatorUsernamestringUsername of the school administrator who activated the application
schoolEmailstringContact email address of the school
schoolPhoneNumberstringContact phone number of the school

Example payload:

{
"tenantId": "12345",
"clientId": "BestApp-tenant-12345",
"secret": "test-secret",
"password": "test-password",
"host": "localhost",
"country": "AT",
"region": "AT-3",
"language": "de",
"eventType": "CREATED",
"activatorEmail": "jane@doe.com",
"activatorUsername": "Jane Doe",
"schoolEmail": "school@entenhausen.com",
"schoolPhoneNumber": "555 / 123 456 789"
}
  1. Verify the signature first — before reading any field. See Verifying the Untis Platform Identity.

  2. Store credentials per tenant — use tenantId as the key. Never share credentials across tenants. Every school activation delivers a separate set of credentials.

  3. Store securely — use a secrets manager or encrypted storage. Never log or store credentials in plain text.

  4. Overwrite on redelivery — for REACTIVATED and RESET events, overwrite the stored credentials for the matching tenantId with the newly delivered values. The previous credentials are no longer valid.

  5. Respond 2xx promptly — acknowledge receipt quickly. Perform storage asynchronously if necessary to avoid timeout retries from the platform.

  6. Use metadata for routingcountry, region, and language are informational. Use them for routing requests to regional infrastructure or for localisation if your application requires it.

If your endpoint was temporarily unavailable, the school administrator can re-trigger delivery or manually copy the credentials into your application’s UI. Build a manual credential entry fallback for resilience, even if webhook delivery is your primary path.