Skip to main content
PATCH
TypeScript

Path Parameters

webhookOauthId
string<uuid>
required

The unique identifier of the OAuth credentials

Example:

"44fcead0-7053-4831-a53a-df7fb90d440f"

Body

application/json

A partial update. Every field is optional and an omitted field is left as it is, so { "clientSecret": "new-secret" } rotates the secret and changes nothing else. A rotation applies to every webhook referencing these credentials.

The three custom maps merge: a key with a value is upserted, a key with null is deleted, a key you leave out is untouched. Because null inside a map means delete, none of the three is nullable as a whole — customJwtClaims: null and friends are rejected with a 400. Clear a map by naming each key with a null value. mtlsClientSignedCert is a scalar, so null there does remove it.

name
string

A label for this credential set. Omit to leave it unchanged.

Required string length: 1 - 128
Example:

"Production treasury gateway"

clientId
string

OAuth client ID. Omit to leave it unchanged.

Required string length: 1 - 255
Example:

"my-client-id"

clientSecret
string

A new OAuth client secret. Limited to 480 bytes when UTF-8 encoded, so a secret using non-ASCII characters fits fewer than 480 of them. Write-only — never returned in any response. Send this on its own to rotate the secret without changing anything else. Omit to leave it unchanged.

Required string length: 1 - 480
Example:

"my-new-client-secret"

url
string

Token endpoint URL. HTTPS on port 443 only, and the host must resolve publicly. Omit to leave it unchanged.

Maximum string length: 2048
Pattern: ^https://
Example:

"https://auth.example.com/oauth/token"

authMethod
string

client_secret_basic, client_secret_post or client_secret_jwt. Omit to leave it unchanged — it does not revert to the default.

Example:

"client_secret_jwt"

customJwtClaims
object | null

A delta applied to the JWT assertion claims. A claim with a value is added or replaced, a claim with null is deleted, and a claim you leave out is untouched. So { "aud": "https://auth.example.com", "resource": null } sets aud, drops resource, and changes nothing else. Send customJwtClaims: null to clear every claim in one call. That does not collide with a null value on a name: one names the claim to delete, the other names the whole field. Same rules as on create: any JSON type except null, iss/sub/jti/iat/exp reserved, names case-sensitive, resulting set under 16 KB, values write-only.

Example:
customBodyParams
object | null

A delta applied to the token request body parameters. A parameter with a value is added or replaced, a parameter with null is deleted, and one you leave out is untouched. So { "scope": "payments.read", "audience": null } sets scope, drops audience, and changes nothing else. Send customBodyParams: null to clear every parameter in one call. That does not collide with a null value on a name: one names the parameter to delete, the other names the whole field. Same rules as on create: string values only, grant_type/client_id/client_secret/ client_assertion/client_assertion_type reserved, names case-sensitive, resulting set under 16 KB, values write-only.

Example:
customHeaders
object | null

A delta applied to the token request headers — not the webhook delivery headers. A header with a value is added or replaced, a header with null is deleted, and one you leave out is untouched. So { "X-Api-Key": "new-key", "X-Tenant": null } rotates X-Api-Key, drops X-Tenant, and changes nothing else. Send customHeaders: null to clear every header in one call. That does not collide with a null value on a name: one names the header to delete, the other names the whole field. Names are case-insensitive, so a null under one casing deletes a header stored under another, and names are stored and returned lowercased. Same rules as on create: string values only, Content-Type/Authorization/ Content-Length/Host reserved, resulting set under 16 KB, values write-only.

Example:
mtlsClientSignedCert
string | null

PEM-encoded client certificate for mTLS. Must be a valid X.509 certificate inside its validity window. Omit to leave it unchanged, or send null to remove it.

Example:

"-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----"

Response

Updated OAuth credentials object

A stored OAuth 2.0 client credential set, referenced by webhooks through their webhookOauthId. When a webhook references one, the dispatcher fetches a bearer token from url before each delivery and attaches it as Authorization: Bearer {token}. Secret material is never returned: clientSecret is absent from this schema entirely, and the customJwtClaims, customBodyParams and customHeaders fields are reduced to their names, without the configured values.

id
string<uuid>
required

The id of the OAuth credentials. Pass this as a webhook's webhookOauthId to attach them.

Example:

"123e4567-e89b-12d3-a456-426614174000"

name
string
required

The label given to this credential set.

Example:

"Production treasury gateway"

clientId
string
required

OAuth client ID used to authenticate with the token endpoint.

Example:

"my-client-id"

url
string
required

Token endpoint URL.

Example:

"https://auth.example.com/oauth/token"

authMethod
string
default:client_secret_basic
required

How the client credentials are presented to the token endpoint: client_secret_basic, client_secret_post or client_secret_jwt. Credentials created without this field report client_secret_basic, which is what they use.

Example:

"client_secret_basic"

createdAt
integer<int64>
required

The date and time the OAuth credentials were created, in milliseconds.

Example:

1625097600000

updatedAt
integer<int64>
required

The date and time the OAuth credentials were last updated, in milliseconds.

Example:

1625097600000

customJwtClaims
string[]

Names of the additional claims placed in the JWT assertion. Claim values are write-only and are never returned. Absent when no custom claims are configured.

Example:
customBodyParams
string[]

Names of the additional parameters added to the token request body. Parameter values are write-only and are never returned. Absent when no custom parameters are configured.

Example:
customHeaders
string[]

Names of the additional HTTP headers added to the token request sent to the authorization server — not to the webhook delivery, which has its own separate customHeaders. Header values are write-only and are never returned. Absent when no custom headers are configured.

Example:
mtlsClientSignedCert
string

PEM-encoded client certificate used for mTLS when fetching OAuth tokens.

Example:

"-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----"