Skip to main content
Create a Webhook Endpoint V2
Use this endpoint to register a URL that SpherePay delivers events to, together with the list of events it should receive. Subscribe with exact event names from the event catalog, or with a wildcard — * for everything, or a resource wildcard such as customer.*. A new endpoint is enabled immediately and starts receiving matching events.
The signing secret (prefixed whsec_) is returned exactly once, in this response. No GET returns it and it cannot be retrieved later. Store it securely — you need it to verify the signature on every delivery.
Each application may hold at most six active endpoints, counting the enabled, disabled, and errored states. Exceeding that returns 409. There is no update operation, so changing a URL or a subscription means creating a replacement and deleting the old endpoint — see managing endpoints for the zero-gap sequence.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
apiVersion
string
required

API version date string provided by the client.

Example:

"2026-04-01"

subscribedEvents
string[]
required

List of event types this endpoint should receive.

Minimum array length: 1
Example:
url
string<uri>
required

The HTTPS URL to deliver webhook events to.

Maximum string length: 2048
Example:

"https://example.com/webhooks/sphere"

description
string

Human-readable description of this webhook endpoint.

Maximum string length: 500
Example:

"Production payment events handler"

metadata
object

Arbitrary key-value metadata to attach to this endpoint.

Example:

Response

The created webhook endpoint, including the signing secret. The secret is returned only here and cannot be retrieved again.

apiVersion
string | null
required

API version date string this endpoint was configured with, or null if not set.

Example:

"2026-04-01"

createdAt
string
required

ISO 8601 timestamp when the endpoint was created.

Example:

"2026-01-01T00:00:00.000Z"

description
string | null
required

Human-readable description of this webhook endpoint, or null if not set.

Example:

"Production payment events handler"

id
string
required

The unique identifier of the webhook endpoint.

Example:

"webhook_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"

metadata
any | null
required

Arbitrary key-value metadata attached to this endpoint, or null if not set.

Example:
secret
string
required

Signing secret for this endpoint. Returned only on creation and never retrievable afterwards.

Example:

"whsec_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"

status
enum<string>
required

The current state of this endpoint.

Available options:
enabled,
errored,
disabled,
deleted
Example:

"enabled"

subscribedEvents
enum<string>[]
required

List of event types this endpoint receives.

Available options:
*,
customer.*,
transfer.*,
document.*,
service.*,
customer.created,
customer.pending,
customer.approved,
customer.rejected,
transfer.created,
transfer.pendingFunding,
transfer.pendingReview,
transfer.fundsReceived,
transfer.processing,
transfer.succeeded,
transfer.returned,
transfer.pendingRefundInformation,
transfer.failed,
transfer.canceled,
transfer.refunded,
transfer.unexpectedError,
transfer.failedPrecondition,
transfer.expired,
transfer.unfunded,
document.pending,
document.processing,
document.verified,
document.rejected,
service.pending,
service.processing,
service.succeeded,
service.failed,
service.cancelled
Example:
updatedAt
string
required

ISO 8601 timestamp when the endpoint was last updated.

Example:

"2026-01-01T00:00:00.000Z"

url
string
required

The HTTPS URL events are delivered to.

Example:

"https://example.com/webhooks/sphere"

Last modified on August 27, 2026