TransaktDocs
API referenceCredentials

Prove control of an Entra application

POST
/api/v1/client-credentials/verify

Activates a pending Entra application credential of an API client. Call it from the application with a client-credentials token for the Transakt API and the one-time challenge shown in the Admin Portal (valid 24 hours). The token must be issued in the tenant you recorded for the application.

Errors: auth.credentials_invalid, api_client.application_verification_failed, auth.forbidden, request.rate_limited.

Authorization

serviceBearer api://{apiAppId}/.default
headerAuthorizationBearer <token>

A Microsoft Entra client-credentials token for the Transakt API (scope api://{apiAppId}/.default), issued in the tenant recorded on the API client credential, with the app role matching the operation: Entitlement.Read.All, Catalogue.Read.All or Usage.Write.All.

Scope: api://{apiAppId}/.default

Request Body

application/json
  1. body
challenge*|
Length1 <= length <= 128

Response Body

OK

application/json
  1. response
applicationId*string
Formatuuid
apiClientId*string
Formatuuid
status*ApiClientApplicationStatus
Value in"PendingVerification""Active"
curl -X POST "https://example.com/api/v1/client-credentials/verify" \  -H "Content-Type: application/json" \  -d '{    "challenge": null  }'
{  "applicationId": "97ab27fa-30e2-43e3-92a3-160e80f4c0d5",  "apiClientId": "34546d72-e2cb-4d8f-b3ad-f1c8ed59a41a",  "status": "PendingVerification"}

Report metered usage POST

Report usage on the custom meter dimensions of flat-rate Microsoft Marketplace plans: 1 to 100 records, each for one tenant, product, dimension and UTC hour. Each record is checked and saved on its own; the answer has one result per record, in the order sent. An `Idempotency-Key` header is honoured but not required, because each hour of each dimension is reported once. Scope `usage:write` (app role `Usage.Write.All`). Errors: [`request.validation_failed`](/errors/request.validation_failed/), [`api_client.scope_not_allowed`](/errors/api_client.scope_not_allowed/), [`metering.window_not_ended`](/errors/metering.window_not_ended/), [`metering.subscription_not_found`](/errors/metering.subscription_not_found/), [`metering.subscription_ambiguous`](/errors/metering.subscription_ambiguous/), [`metering.window_already_reported`](/errors/metering.window_already_reported/), [`metering.subscription_not_active`](/errors/metering.subscription_not_active/), [`metering.marketplace_subscription_missing`](/errors/metering.marketplace_subscription_missing/), [`metering.not_metered`](/errors/metering.not_metered/), [`metering.unknown_dimension`](/errors/metering.unknown_dimension/), [`metering.window_too_old`](/errors/metering.window_too_old/), [`auth.credentials_invalid`](/errors/auth.credentials_invalid/), [`auth.forbidden`](/errors/auth.forbidden/), [`request.rate_limited`](/errors/request.rate_limited/).

Webhook events

The events Transakt sends to your endpoints, and their payloads.