APG PayAPG Paydocs

Identity

Create OIDC providers

POST/oidc-providers

Register a provider.

Permissions

Required permission
oidcIdps:create

Requires the `create` action on `oidcIdps` for the supplied runtime context

Request body

This body is a tagged shape: type is always "OidcidpCmdCreate". Send it; more variants can be added, and a caller that switches on it keeps working when they are.

Discriminated by type
type = "OidcidpCmdCreate"
displayNamestringrequired

Example Ada Lovelace

issuerstringrequired
clientIdstringrequired
clientSecretRefstringrequired

Secret Manager reference to the client secret. The secret itself never travels through this API.

discoveryUristring

The provider's OIDC discovery document. Defaults to {issuer}/.well-known/openid-configuration.

Example https://example.com/callback

scopesarray of string

Scopes to request in the authorisation request. Defaults to openid, email and profile.

statusOidcidpStatus

Register the provider disabled, to be enabled later. Defaults to Enabled.

EnabledDisabledUnknown
curl -X POST https://api.tst.au.apgpay.dev/oidc-providers \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "type": "OidcidpCmdCreate",
  "displayName": "Ada Lovelace",
  "issuer": "string",
  "clientId": "string",
  "clientSecretRef": "string",
  "discoveryUri": "https://example.com/callback",
  "scopes": [
    "string"
  ],
  "status": "Enabled"
}'

Responses

The response is a tagged shape: type is always "OidcidpCreateRspAttributes". Switch on it; subtypes can be added, and a client that already reads it will not break.

Discriminated by type
type = "OidcidpCreateRspAttributes"

The resource that was created.

Example
{
  "type": "OidcidpCreateRspAttributes",
  "created": {
    "type": "OidcidpViewAttributes",
    "oidcProviderId": "oidcidp_9f2Kd8QpLzXw",
    "displayName": "Ada Lovelace",
    "issuer": "string",
    "clientId": "string",
    "clientSecretRef": "string",
    "discoveryUri": "https://example.com/callback",
    "scopes": [
      "string"
    ],
    "status": "Enabled",
    "createdAt": "2026-08-19T04:21:07Z",
    "updatedAt": "2026-08-19T04:21:07Z"
  }
}

Error responses