Event Destinations v2

Set up an event destination to receive events from Stripe across multiple destination types, including webhook endpoints, Amazon EventBridge, and Azure Event Grid. Event destinations support receiving thin events and snapshot events.

Create an Event Destination
POST/v2/core/event_destinations
Update an Event Destination
POST/v2/core/event_destinations/:id
Retrieve an Event Destination
GET/v2/core/event_destinations/:id
List Event Destinations
GET/v2/core/event_destinations
Delete an Event Destination
DELETE/v2/core/event_destinations/:id
Disable an Event Destination
POST/v2/core/event_destinations/:id/disable
Enable an Event Destination
POST/v2/core/event_destinations/:id/enable

The Event Destination object v2

Attributes

  • idstring

    Unique identifier for the object.

  • objectstring, value is "v2.core.event_destination"

    String representing the object’s type. Objects of the same type share the same value of the object field.

  • amazon_eventbridgenullable object

    Configuration for delivering events through an Amazon EventBridge partner event source.

  • azure_event_gridnullable object

    Configuration for delivering events through an Azure Event Grid partner topic.

  • createdtimestamp

    The time when the destination was created.

  • descriptionstring

    An optional user-defined description of the destination’s purpose.

  • enabled_eventsarray of strings

    The list of event types enabled for delivery to this destination.

  • event_payloadenum

    Whether to deliver as snapshot or thin events.

    Possible enum values
    snapshot

    Events that contain full resource objects in the delivered payload, rendered using a specified API version.

    thin

    A lightweight event notification with an unversioned payload. It identifies the related Stripe resource so you can retrieve the complete event or the resource’s current state. This reduces coupling to API-versioned object snapshots and makes event handlers easier to maintain.

  • events_fromnullable array of strings

    Specifies which accounts’ events route to this destination. @self: Receive events from the account that owns the event destination. @accounts: Receive events emitted from other accounts you manage which includes your v1 and v2 accounts. @organization_members: Receive events from accounts directly linked to the organization. @organization_members/@accounts: Receive events from all accounts connected to any platform accounts in the organization.

  • livemodeboolean

    Has the value true if the object exists in live mode or the value false if the object exists in test mode.

  • metadatanullable map

    User-defined key/value data for the destination; it has no effect on event matching or delivery.

  • namestring

    A user-defined label for identifying the destination in Stripe.

  • snapshot_api_versionnullable string

    For snapshot events only, the Stripe API version used to render event objects. You can’t change this value after you create the event destination. Thin events are not pinned to an API version.

  • statusenum

    Whether Stripe currently attempts delivery. Stripe attempts delivery to enabled destinations when their provider configuration is active; disabled destinations do not receive delivery attempts.

    Possible enum values
    disabled

    Event destination is disabled.

    enabled

    Event destination is enabled.

  • status_detailsnullable object

    Additional lifecycle context for the destination status, when available.

  • typeenum

    The delivery transport. Chosen when the destination is created and cannot be changed by update.

    Possible enum values
    amazon_eventbridge

    Deliver matching events through a Stripe partner event source in Amazon EventBridge.

    azure_event_grid

    Deliver matching events through a Stripe partner topic in Azure Event Grid.

    webhook_endpoint

    Deliver matching events to a webhook endpoint. Live mode requires HTTPS; sandbox mode also supports HTTP.

  • updatedtimestamp

    The time when the destination object was last updated.

  • webhook_endpointnullable object

    Configuration for delivering events to a webhook endpoint. Live mode requires HTTPS; sandbox mode also supports HTTP.

The Event Destination object
{
"id": "ed_test_61RM8ltWcTW4mbsxf16RJyfa2xSQLHJJh1sxm7H0KVT6",
"object": "v2.core.event_destination",
"created": "2024-10-22T16:20:09.931Z",
"description": "This is my event destination, I like it a lot",
"enabled_events": [
"v1.billing.meter.error_report_triggered"
],
"event_payload": "thin",
"events_from": [
"@self"
],
"livemode": false,
"metadata": {},
"name": "My Event Destination",
"snapshot_api_version": null,
"status": "enabled",
"status_details": null,
"type": "webhook_endpoint",
"updated": "2024-10-22T16:20:09.937Z",
"webhook_endpoint": {
"signing_secret": null,
"url": "https://example.com/my/webhook/endpoint"
}
}

Create an Event Destination v2

POST /v2/core/event_destinations

Create a new event destination.

Learn more about calling API v2 endpoints

Parameters

  • enabled_eventsarray of stringsRequired

    The list of event types enabled for delivery to this destination.

  • event_payloadenumRequired

    Whether to deliver as snapshot or thin events.

    Possible enum values
    snapshot

    Events that contain full resource objects in the delivered payload, rendered using a specified API version.

    thin

    A lightweight event notification with an unversioned payload. It identifies the related Stripe resource so you can retrieve the complete event or the resource’s current state. This reduces coupling to API-versioned object snapshots and makes event handlers easier to maintain.

  • namestringRequired

    A user-defined label for identifying the destination.

  • typeenumRequired

    The delivery transport. Chosen when the destination is created and cannot be changed by update.

    Possible enum values
    amazon_eventbridge

    Deliver matching events through a Stripe partner event source in Amazon EventBridge.

    azure_event_grid

    Deliver matching events through a Stripe partner topic in Azure Event Grid.

    webhook_endpoint

    Deliver matching events to a webhook endpoint. Live mode requires HTTPS; sandbox mode also supports HTTP.

  • amazon_eventbridgeobject

    AWS account and region where Stripe creates the EventBridge partner event source.

  • azure_event_gridobject

    Azure subscription, resource group, and region where Stripe creates the partner topic.

  • descriptionstring

    An optional user-defined description of the destination’s purpose.

  • events_fromarray of strings

    The account or organization scopes that can supply events. Use this with enabled_events to define the subscription. @self: Receive events from the account that owns the event destination. @accounts: Receive events emitted from other accounts you manage, including your v1 and v2 accounts. @organization_members: Receive events from accounts directly linked to the organization. @organization_members/@accounts: Receive events from all accounts connected to any platform accounts in the organization.

  • includearray of enums

    Include normally redacted webhook fields in the create response. Public API clients must include webhook_endpoint.signing_secret to receive the signing secret.

    Possible enum values
    webhook_endpoint.signing_secret

    Include webhook_endpoint.signing_secret in the create response. Public API clients cannot retrieve it later.

    webhook_endpoint.url

    Include the normally redacted webhook_endpoint.url in the create response.

  • metadatamap

    User-defined key/value data for the destination.

  • snapshot_api_versionstring

    For snapshot events only, the Stripe API version used to render event objects; do not provide this for thin events.

  • webhook_endpointobject

    Delivery target for the webhook endpoint. Live mode requires HTTPS; sandbox mode also supports HTTP.

Returns

Returns an Event Destination object.

400expired_azure_partner_authorization

Error returned when a user tries to create an event destination with an expired Azure partner authorization.

400invalid_azure_partner_authorization

Error returned when a user tries to create an event destination without an Azure partner authorization.

400invalid_azure_partner_configuration

Error returned when no valid partner configuration is found using the user provided Azure subscription ID and Azure resource group name.

409idempotency_error

An idempotent retry occurred with different request parameters.

curl -X POST https://api.stripe.com/v2/core/event_destinations \
-H "Authorization: Bearer sk_test_BQokikJOvBiI2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2" \
-H "Stripe-Version: 2026-09-30.endive" \
--json '{
"name": "My Event Destination",
"description": "This is my event destination, I like it a lot",
"enabled_events": [
"v1.billing.meter.error_report_triggered"
],
"type": "webhook_endpoint",
"webhook_endpoint": {
"url": "https://example.com/my/webhook/endpoint"
},
"event_payload": "thin",
"include": [
"webhook_endpoint.url"
]
}'
Response
{
"id": "ed_test_61RM8ltWcTW4mbsxf16RJyfa2xSQLHJJh1sxm7H0KVT6",
"object": "v2.core.event_destination",
"created": "2024-10-22T16:20:09.931Z",
"description": "This is my event destination, I like it a lot",
"enabled_events": [
"v1.billing.meter.error_report_triggered"
],
"event_payload": "thin",
"events_from": [
"@self"
],
"livemode": false,
"metadata": {},
"name": "My Event Destination",
"snapshot_api_version": null,
"status": "enabled",
"status_details": null,
"type": "webhook_endpoint",
"updated": "2024-10-22T16:20:09.937Z",
"webhook_endpoint": {
"signing_secret": null,
"url": "https://example.com/my/webhook/endpoint"
}
}