{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/amazon-seller-central/main/json-schema/amazon-seller-central-create-subscription-response-schema.json", "title": "CreateSubscriptionResponse", "description": "The response schema for the `createSubscription` operation.", "x-generated": "2026-09-24", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/amazon-seller-central-notifications-api-openapi.yml#/components/schemas/CreateSubscriptionResponse", "type": "object", "properties": { "payload": { "description": "The payload for the `createSubscription` operation.", "$ref": "#/$defs/Subscription" }, "errors": { "description": "One or more unexpected errors occurred during the `createSubscription` operation.", "$ref": "#/$defs/ErrorList" } }, "$defs": { "AggregationFilter": { "type": "object", "properties": { "aggregationSettings": { "$ref": "#/$defs/AggregationSettings" } }, "description": "A filter you can use to select the aggregation time period at which to send notifications (for example, limit to one notification every five minutes for high frequency notifications)." }, "AggregationSettings": { "type": "object", "description": "A container that holds all of the necessary properties to configure the aggregation of notifications.", "properties": { "aggregationTimePeriod": { "$ref": "#/$defs/AggregationTimePeriod", "description": "The supported time period to use to perform marketplace-ASIN level aggregation." } }, "required": [ "aggregationTimePeriod" ] }, "AggregationTimePeriod": { "description": "The supported aggregation time periods. For example, if FiveMinutes is the value chosen, and 50 price updates occur for an ASIN within 5 minutes, Amazon will send only two notifications; one for the first event, and then a subsequent notification 5 minutes later with the final end state of the data. The 48 interim events will be dropped.", "type": "string", "enum": [ "FiveMinutes", "TenMinutes" ], "x-docgen-enum-table-extension": [ { "value": "FiveMinutes", "description": "An aggregated notification will be sent every five minutes." }, { "value": "TenMinutes", "description": "An aggregated notification will be sent every ten minutes." } ] }, "Error": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "type": "string", "description": "An error code that identifies the type of error that occurred." }, "message": { "type": "string", "description": "A message that describes the error condition." }, "details": { "type": "string", "description": "Additional details that can help the caller understand or fix the issue." } }, "description": "An error response returned when the request is unsuccessful." }, "ErrorList": { "type": "array", "description": "A list of error responses returned when a request is unsuccessful.", "items": { "$ref": "#/$defs/Error" } }, "EventFilter": { "description": "A `notificationType` filter. This object contains all of the available filters and properties that you can use to define a `notificationType` specific filter.", "allOf": [ { "$ref": "#/$defs/AggregationFilter" }, { "$ref": "#/$defs/MarketplaceFilter" }, { "$ref": "#/$defs/OrderChangeTypeFilter" }, { "$ref": "#/$defs/TrackingFilter" }, { "type": "object", "properties": { "eventFilterType": { "type": "string", "enum": [ "ANY_OFFER_CHANGED", "ORDER_CHANGE", "SHIPMENT_TRACKING_MILESTONE_CHANGED" ], "description": "An `eventFilterType` value that the `notificationType` supports. The subscription service uses the `eventFilterType` to determine the type of event filter. To determine if a specific `notificationType` supports an `eventFilterType`, refer to [Notification Type Values]( https://developer-docs.amazon.com/sp-api/docs/notification-type-values)." } }, "required": [ "eventFilterType" ] } ] }, "MarketplaceFilter": { "description": "An event filter you can use to customize your subscription to send notifications for specific `marketplaceId`s.", "type": "object", "properties": { "marketplaceIds": { "$ref": "#/$defs/MarketplaceIds" } } }, "MarketplaceIds": { "type": "array", "items": { "type": "string" }, "description": "A list of marketplace identifiers you can subscribe to (for example, `ATVPDKIKX0DER`). To receive notifications in every marketplace, do not provide this list." }, "OrderChangeTypeEnum": { "type": "string", "enum": [ "BuyerRequestedChange", "DeliveryTipChange", "OrderStatusChange" ], "description": "The supported order change type of ORDER_CHANGE notification." }, "OrderChangeTypeFilter": { "description": "An event filter you can use to customize your subscription to send notifications for a specific `orderChangeType`.", "type": "object", "properties": { "orderChangeTypes": { "$ref": "#/$defs/OrderChangeTypes" } } }, "OrderChangeTypes": { "type": "array", "items": { "$ref": "#/$defs/OrderChangeTypeEnum" }, "description": "A list of order change types you can subscribe to (for example, `BuyerRequestedChange`). To receive notifications of all change types, do not provide this list." }, "ProcessingDirective": { "description": "Additional information passed to the subscription to control the processing of notifications. For example, you can use an `eventFilter` to customize your subscription to send notifications for only the `marketplaceId`s that you specify, or select the aggregation time period at which to send notifications (for example, you can set a limit of one notification every five minutes for high frequency notifications). You can also use `filterExpression` to filter events based on notification payload. The specific features available can vary by the `notificationType`.", "type": "object", "properties": { "eventFilter": { "description": "A `notificationType` filter. Note: eventFilter and filterExpression are mutually exclusive, meaning if eventFilter is provided, filterExpression field cannot be used.", "$ref": "#/$defs/EventFilter" }, "filterExpression": { "description": "An expression for filtering events before delivery to destination based on the notification payload (example: FulfillmentOrderStatusNotification.FulfillmentOrderStatus == `SHIPPED` ). The `filterExpression` is a string that follows the CEL expression syntax (https://github.com/google/cel-spec) excluding arithmetic operators (+, -, *, /, %) and list/map indexing ([]). Refer to Notification Type Values to determine if filter Expression is supported for a Notification Type. Refer to CEL Operators (https://developer-docs.amazon.com/sp-api/docs/filter-notification-subscriptions) to see if a CEL operator is supported. \n Note: eventFilter and filterExpression are mutually exclusive. You can use filterExpression to replace existing eventFilter configurations.", "type": "string", "maxLength": 256, "minLength": 1 } } }, "Subscription": { "type": "object", "required": [ "destinationId", "payloadVersion", "subscriptionId" ], "properties": { "subscriptionId": { "type": "string", "description": "The subscription identifier generated when the subscription is created." }, "payloadVersion": { "type": "string", "description": "The version of the payload object to be used in the notification." }, "destinationId": { "type": "string", "description": "The identifier for the destination where notifications will be delivered." }, "processingDirective": { "$ref": "#/$defs/ProcessingDirective" } }, "description": "Information about the subscription." }, "TrackingFilter": { "description": "An event filter you can use to customize your subscription to receive shipment tracking milestone notifications for a specific tracking identifier.", "type": "object", "properties": { "trackingIdentifier": { "$ref": "#/$defs/TrackingIdentifier" } } }, "TrackingIdentifier": { "description": "Specifies the tracking identifier used to filter your subscription notifications. Provide exactly one identifier field. Providing multiple identifier fields in a single request is not supported.", "type": "object", "properties": { "id": { "type": "string", "description": "Amazon unique tracking identifier." }, "acsin": { "type": "string", "description": "Air Cargo Shipment Identification Number." }, "aftn": { "type": "string", "description": "Amazon Fulfillment Tracking Number." }, "containerNumber": { "type": "string", "description": "Container number provided by the Logistics Service Provider." }, "houseBillOfLadingNumber": { "type": "string", "description": "House Bill of Lading number." }, "carrierTracking": { "type": "object", "description": "Carrier-provided tracking identifier.", "properties": { "trackingNumber": { "type": "string", "description": "Carrier tracking number" }, "carrierCode": { "type": "string", "description": "Carrier code" } }, "required": [ "trackingNumber" ] } } } } }