Webhooks V2

Create an mTLS configuration

Stores a certificate signed against the CSR from GET /v1/webhooks_settings/mtls_csr and returns its id, which is then set as webhookMtlsId on a webhook or on OAuth credentials. The private key the certificate was issued for is derived from the certificate, so it is never named by the caller.

Re-uploading a certificate already stored returns the existing id rather than creating a second configuration, so several webhooks and OAuth credentials can share one certificate.

A certificate that was not issued for a private key this workspace holds is rejected with a 400.

Endpoint Permissions: Owner, Admin, Non-Signing Admin.

post/webhooks_settings/mtls

Request

Headers

Idempotency-Keystring

A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.

Request body

namestring

A label for this mTLS configuration, to tell several certificates apart. Letters, digits and spaces only.

signedCertstring required

Signed client certificate PEM, issued for the CSR from GET /v1/webhooks_settings/mtls_csr. The private key it belongs to is derived from the certificate itself.

Example request

{
  "name": "Production gateway 2026",
  "signedCert": "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----"
}

Response

The stored mTLS configuration

idstring uuid required

The unique identifier of the mTLS configuration, to be set as webhookMtlsId on a webhook or on OAuth credentials.

namestring

The label given to this mTLS configuration.

signedCertstring required

The signed client certificate PEM.

expiresAtinteger required

When the certificate itself expires, in milliseconds since the epoch.

createdAtinteger required

When the certificate was uploaded, in milliseconds since the epoch.

updatedAtinteger required

When this configuration was last changed, in milliseconds since the epoch. Differs from createdAt once the certificate has been replaced or the configuration renamed.

Example response

{
  "id": "44fcead0-7053-4831-a53a-df7fb90d440f",
  "name": "Production gateway 2026",
  "signedCert": "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----",
  "expiresAt": 1726108200000,
  "createdAt": 1694572200000,
  "updatedAt": 1726108200000
}

Changes

No recorded changes to this operation across all 1 revision of this API.