---
openapi: "3.0.0"
info:
title: "Notification API"
description: "The eBay Notification API enables management of the entire end-to-end\
\ eBay notification experience by allowing users to:
- Browse for supported\
\ notification topics and retrieve topic details
- Create, configure, and\
\ manage notification destination endpoints
- Configure, manage, and test\
\ notification subscriptions
- Process eBay notifications and verify the\
\ integrity of the message payload
"
contact:
name: "eBay Inc,"
license:
name: "eBay API License Agreement"
url: "https://developer.ebay.com/join/api-license-agreement"
version: "v1.6.7"
servers:
- url: "https://api.ebay.com{basePath}"
description: "Production"
variables:
basePath:
default: "/commerce/notification/v1"
paths:
/config:
get:
tags:
- "config"
description: "This method allows applications to retrieve a previously created\
\ configuration."
operationId: "getConfig"
responses:
"200":
description: "OK"
content:
application/json:
schema:
$ref: "#/components/schemas/Config"
"500":
description: "Internal Server Error"
x-response-codes:
errors:
195000:
domain: "API_NOTIFICATION"
category: "APPLICATION"
description: "There was a problem with an eBay internal system or\
\ process. Contact eBay developer support for assistance."
"404":
description: "Not Found"
x-response-codes:
errors:
195026:
domain: "API_NOTIFICATION"
category: "APPLICATION"
description: "Configuration Not Found."
security:
- api_auth:
- "https://api.ebay.com/oauth/api_scope"
put:
tags:
- "config"
description: "This method allows applications to create a new configuration\
\ or update an existing configuration. This app-level configuration allows\
\ developers to set up alerts."
operationId: "updateConfig"
parameters:
- name: "Content-Type"
in: "header"
description: "This header indicates the format of the request body provided\
\ by the client. Its value should be set to application/json.
\
\ For more information, refer to HTTP request headers."
required: true
schema:
type: "string"
requestBody:
description: "The configurations for this application."
content:
application/json:
schema:
description: "The configurations for this application."
$ref: "#/components/schemas/Config"
required: false
responses:
"400":
description: "Bad Request"
x-response-codes:
errors:
195025:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Invalid or missing email."
"500":
description: "Internal Server Error"
x-response-codes:
errors:
195000:
domain: "API_NOTIFICATION"
category: "APPLICATION"
description: "There was a problem with an eBay internal system or\
\ process. Contact eBay developer support for assistance."
"204":
description: "No Content"
security:
- api_auth:
- "https://api.ebay.com/oauth/api_scope"
/destination:
get:
tags:
- "destination"
description: "This method allows applications to retrieve a paginated collection\
\ of destination resources and related details. The details include the destination\
\ names, statuses, and configurations, including the endpoints and verification\
\ tokens."
operationId: "getDestinations"
parameters:
- name: "continuation_token"
in: "query"
description: "This string value can be used to return the next page in the\
\ result set. The string to use here is returned in the next field\
\ of the current page of results."
required: false
schema:
type: "string"
- name: "limit"
in: "query"
description: "The maximum number of destinations to return per page from the\
\ result set.
Min: 10
Max: 100
Default:\
\ 20"
required: false
schema:
type: "string"
responses:
"200":
description: "OK"
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationSearchResponse"
"400":
description: "Bad Request"
x-response-codes:
errors:
195004:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Invalid limit. Supported ranges 10 - 100."
195005:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Invalid continuation token."
"500":
description: "Internal Server Error"
x-response-codes:
errors:
195000:
domain: "API_NOTIFICATION"
category: "APPLICATION"
description: "There was a problem with an eBay internal system or\
\ process. Contact eBay developer support for assistance."
security:
- api_auth:
- "https://api.ebay.com/oauth/api_scope"
post:
tags:
- "destination"
description: "This method allows applications to create a destination. A destination\
\ is an endpoint that receives HTTP push notifications.
A single destination\
\ for all topics is valid, as is individual destinations for each topic.
To\
\ update a destination, use the updateDestination call.
The\
\ destination created will need to be referenced while creating or updating\
\ a subscription to a topic.
Note:\
\ The destination should be created and ready to respond with the expected\
\ challengeResponse for the endpoint to be registered successfully.\
\ Refer to the Notification\
\ API overview for more information."
operationId: "createDestination"
parameters:
- name: "Content-Type"
in: "header"
description: "This header indicates the format of the request body provided\
\ by the client. Its value should be set to application/json.
\
\ For more information, refer to HTTP request headers."
required: true
schema:
type: "string"
requestBody:
description: "The create destination request."
content:
application/json:
schema:
description: "The create destination request."
$ref: "#/components/schemas/DestinationRequest"
required: false
responses:
"201":
description: "Created"
headers:
Location:
schema:
type: "string"
description: "The destination resource created."
content:
application/json:
schema:
type: "object"
"400":
description: "Bad Request"
x-response-codes:
errors:
195018:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Invalid or missing destination status. Supported values:[ENABLED,DISABLED]"
195019:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Invalid or missing verification token for this endpoint."
195016:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Invalid name. Markups or lengths greater than 64 not\
\ supported"
195017:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Invalid or missing endpoint."
"500":
description: "Internal Server Error"
x-response-codes:
errors:
195000:
domain: "API_NOTIFICATION"
category: "APPLICATION"
description: "There was a problem with an eBay internal system or\
\ process. Contact eBay developer support for assistance."
"409":
description: "Conflict"
x-response-codes:
errors:
195003:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Please provide configurations required for notifications.\
\ Refer to /config"
195020:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Challenge verification failed for requested endpoint"
195021:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Destination exists for this endpoint"
security:
- api_auth:
- "https://api.ebay.com/oauth/api_scope"
/destination/{destination_id}:
get:
tags:
- "destination"
description: "This method allows applications to fetch the details for a destination.\
\ The details include the destination name, status, and configuration, including\
\ the endpoint and verification token."
operationId: "getDestination"
parameters:
- name: "destination_id"
in: "path"
description: "The unique identifier of the destination to retrieve. Use getDestinations\
\ to retrieve destination IDs."
required: true
schema:
type: "string"
responses:
"200":
description: "OK"
content:
application/json:
schema:
$ref: "#/components/schemas/Destination"
"400":
description: "Bad Request"
"500":
description: "Internal Server Error"
x-response-codes:
errors:
195000:
domain: "API_NOTIFICATION"
category: "APPLICATION"
description: "There was a problem with an eBay internal system or\
\ process. Contact eBay developer support for assistance."
"404":
description: "Not Found"
x-response-codes:
errors:
195022:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Invalid or missing destination id."
security:
- api_auth:
- "https://api.ebay.com/oauth/api_scope"
put:
tags:
- "destination"
description: "This method allows applications to update a destination.
Note: The destination should be created and ready\
\ to respond with the expected challengeResponse for the endpoint to\
\ be registered successfully. Refer to the Notification API overview for more information."
operationId: "updateDestination"
parameters:
- name: "Content-Type"
in: "header"
description: "This header indicates the format of the request body provided\
\ by the client. Its value should be set to application/json.
\
\ For more information, refer to HTTP request headers."
required: true
schema:
type: "string"
- name: "destination_id"
in: "path"
description: "The unique identifier for the destination."
required: true
schema:
type: "string"
requestBody:
description: "The create subscription request."
content:
application/json:
schema:
description: "The create subscription request."
$ref: "#/components/schemas/DestinationRequest"
required: false
responses:
"400":
description: "Bad Request"
x-response-codes:
errors:
195018:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Invalid or missing destination status. Supported values:[ENABLED,DISABLED]"
195019:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Invalid or missing verification token for this endpoint."
195016:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Invalid name. Markups or lengths greater than 64 not\
\ supported"
195017:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Invalid or missing endpoint."
"500":
description: "Internal Server Error"
x-response-codes:
errors:
195000:
domain: "API_NOTIFICATION"
category: "APPLICATION"
description: "There was a problem with an eBay internal system or\
\ process. Contact eBay developer support for assistance."
"204":
description: "No Content"
"404":
description: "Not Found"
x-response-codes:
errors:
195022:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Invalid or missing destination id."
"409":
description: "Conflict"
x-response-codes:
errors:
195020:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Challenge verification failed for requested endpoint"
195021:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Destination exists for this endpoint"
security:
- api_auth:
- "https://api.ebay.com/oauth/api_scope"
delete:
tags:
- "destination"
description: "This method provides applications a way to delete a destination.
The\
\ same destination ID can be used by many destinations.
Trying to delete\
\ an active destination results in an error. You can disable a subscription,\
\ and when the destination is no longer in use, you can delete it."
operationId: "deleteDestination"
parameters:
- name: "destination_id"
in: "path"
description: "The unique identifier of the destination to delete. Only disabled\
\ or marked down destinations can be deleted, and enabled destinations cannot\
\ be deleted. Use getDestination or getDestinations to see\
\ the current status of a destination. "
required: true
schema:
type: "string"
responses:
"400":
description: "Bad Request"
"500":
description: "Internal Server Error"
x-response-codes:
errors:
195000:
domain: "API_NOTIFICATION"
category: "APPLICATION"
description: "There was a problem with an eBay internal system or\
\ process. Contact eBay developer support for assistance."
"204":
description: "No Content"
"404":
description: "Not Found"
x-response-codes:
errors:
195022:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Invalid or missing destination id."
"409":
description: "Conflict"
x-response-codes:
errors:
195024:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Destination is in use and cannot be deleted."
security:
- api_auth:
- "https://api.ebay.com/oauth/api_scope"
/public_key/{public_key_id}:
get:
tags:
- "public_key"
description: "This method allows users to retrieve a public key using a specified\
\ key ID. The public key that is returned in the response payload is used\
\ to process and validate eBay notifications.
The public key ID, which\
\ is a required request parameter for this method, is retrieved from the Base64-encoded\
\ X-EBAY-SIGNATURE header that is included in the eBay notification.
Important!\
\ The retrieved public key value should be cached for a temporary — but reasonable\
\ — amount of time (e.g., one-hour is recommended.) This key should not be\
\ requested for every notification since doing so can result in exceeding\
\ API call limits\
\ if a large number of notification requests is received.
Note: For more details about how to process eBay\
\ push notifications and validate notification message payloads, see the Notification API\
\ overview."
operationId: "getPublicKey"
parameters:
- name: "public_key_id"
in: "path"
description: "The unique key ID that is used to retrieve the public key.
Note: This is retrieved from the X-EBAY-SIGNATURE\
\ header that is included with the push notification."
required: true
schema:
type: "string"
responses:
"200":
description: "OK"
content:
application/json:
schema:
$ref: "#/components/schemas/PublicKey"
"400":
description: "Bad Request"
"500":
description: "Internal Server Error"
x-response-codes:
errors:
195000:
domain: "API_NOTIFICATION"
category: "APPLICATION"
description: "There was a problem with an eBay internal system or\
\ process. Contact eBay developer support for assistance."
"404":
description: "Not Found"
x-response-codes:
errors:
195001:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "The specified key id is invalid."
security:
- api_auth:
- "https://api.ebay.com/oauth/api_scope"
/subscription:
get:
tags:
- "subscription"
description: "This method allows applications to retrieve a list of all subscriptions.\
\ The list returned is a paginated collection of subscription resources.
Subscriptions\
\ allow applications to express interest in notifications and keep receiving\
\ the information relevant to their business."
operationId: "getSubscriptions"
parameters:
- name: "continuation_token"
in: "query"
description: "This string value can be used to return the next page in the\
\ result set. The string to use here is returned in the next field of the\
\ current page of results."
required: false
schema:
type: "string"
- name: "limit"
in: "query"
description: "The maximum number of subscriptions to return per page from\
\ the result set.
Min: 10
Max: 100
Default:\
\ 20"
required: false
schema:
type: "string"
responses:
"200":
description: "OK"
content:
application/json:
schema:
$ref: "#/components/schemas/SubscriptionSearchResponse"
"400":
description: "Bad Request"
x-response-codes:
errors:
195004:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Invalid limit. Supported ranges 10 - 100."
195005:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Invalid continuation token."
"500":
description: "Internal Server Error"
x-response-codes:
errors:
195000:
domain: "API_NOTIFICATION"
category: "APPLICATION"
description: "There was a problem with an eBay internal system or\
\ process. Contact eBay developer support for assistance."
security:
- api_auth:
- "https://api.ebay.com/oauth/api_scope"
- "https://api.ebay.com/oauth/api_scope/commerce.notification.subscription.readonly"
- "https://api.ebay.com/oauth/api_scope/commerce.notification.subscription"
post:
tags:
- "subscription"
description: "This method allows applications to create a subscription for a\
\ topic and supported schema version. Subscriptions allow applications to\
\ express interest in notifications and keep receiving the information relevant\
\ to their business.
Each application and topic-schema pairing to a\
\ subscription should have a 1:1 cardinality.
You can create the subscription\
\ in disabled mode, test it (see the test method), and when everything\
\ is ready, you can enable the subscription (see the enableSubscription\
\ method).
Note: If an application\
\ is not authorized to subscribe to a topic, for example, if your authorization\
\ does not include the list of scopes required for the topic, an error code\
\ of 195011 is returned."
operationId: "createSubscription"
parameters:
- name: "Content-Type"
in: "header"
description: "This header indicates the format of the request body provided\
\ by the client. Its value should be set to application/json.
\
\ For more information, refer to HTTP request headers."
required: true
schema:
type: "string"
requestBody:
description: "The create subscription request."
content:
application/json:
schema:
description: "The create subscription request."
$ref: "#/components/schemas/CreateSubscriptionRequest"
required: false
responses:
"201":
description: "Created"
headers:
Location:
schema:
type: "string"
description: "The subscription resource created."
content:
application/json:
schema:
type: "object"
"400":
description: "Bad Request"
x-response-codes:
errors:
195010:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Invalid or missing protocol"
195027:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Invalid or missing topic id."
195008:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Invalid or missing schema version. Please refer to /topic/{topic_id}\
\ for supported schema versions."
195009:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Specified format is not supported for the topic."
195006:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Invalid or missing subscription status."
195007:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Invalid or missing destination id."
"500":
description: "Internal Server Error"
x-response-codes:
errors:
195000:
domain: "API_NOTIFICATION"
category: "APPLICATION"
description: "There was a problem with an eBay internal system or\
\ process. Contact eBay developer support for assistance."
"403":
description: "Forbidden"
x-response-codes:
errors:
195011:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Not authorized for this topic."
"409":
description: "Conflict"
x-response-codes:
errors:
195015:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "The subscription cannot be enabled since the destination\
\ is not enabled."
195012:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Subscription already exists"
195003:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Please provide configurations required for notifications.\
\ Refer to /config"
security:
- api_auth:
- "https://api.ebay.com/oauth/api_scope"
- "https://api.ebay.com/oauth/api_scope/commerce.notification.subscription"
/subscription/{subscription_id}/filter:
post:
tags:
- "subscription"
description: "This method allows applications to create a filter for a subscription.\
\ Filters allow applications to only be sent notifications that match a provided\
\ criteria. Notifications that do not match this criteria will not be sent\
\ to the destination.
The filterSchema value must\
\ be a valid JSON Schema\
\ Core document (version 2020-12 or later). The filterSchema\
\ provided must describe the subscription's notification payload such that\
\ it supplies valid criteria to filter the subscription's notifications. The\
\ user does not need to provide $schema and $id\
\ definitions.
When a filter is first created, it is not immediately\
\ active on the subscription. If the request has a valid JSON body, the successful\
\ call returns the HTTP status code 201 Created. Newly created\
\ filters are in PENDING status until they are reviewed. If a\
\ filter is valid, it will move from PENDING status to ENABLED\
\ status. You can find the status of a filter using the getSubscriptionFilter method. See Creating a subscription filter for a topic for additional\
\ information.
Note: Only one filter\
\ can be in ENABLED (which means active) status on a subscription\
\ at a time. If an ENABLED filter is overwritten by a new\
\ call to CREATE a filter for the subscription, it stays\
\ in ENABLED status until the new PENDING\
\ filter becomes the ENABLED filter, and the existing filter\
\ then becomes DISABLED."
operationId: "createSubscriptionFilter"
parameters:
- name: "Content-Type"
in: "header"
description: "This header indicates the format of the request body provided\
\ by the client. Its value should be set to application/json.
\
\ For more information, refer to HTTP request headers."
required: true
schema:
type: "string"
- name: "subscription_id"
in: "path"
description: "The unique identifier of the subscription for which a filter\
\ will be created."
required: true
schema:
type: "string"
requestBody:
description: "The create subscription filter request."
content:
application/json:
schema:
description: "The create subscription filter request."
$ref: "#/components/schemas/CreateSubscriptionFilterRequest"
required: false
responses:
"201":
description: "Created"
headers:
Location:
schema:
type: "string"
description: "The location where the subscription filter resource\
\ was created."
content:
application/json:
schema:
type: "object"
"400":
description: "Bad Request"
x-response-codes:
errors:
195032:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "The specified subscription topic is not filterable."
195033:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "The specified 'filterSchema' value is invalid."
"500":
description: "Internal Server Error"
x-response-codes:
errors:
195000:
domain: "API_NOTIFICATION"
category: "APPLICATION"
description: "There was a problem with an eBay internal system or\
\ process. Contact eBay developer support for assistance."
"403":
description: "Forbidden"
x-response-codes:
errors:
195028:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "The application is not authorized to access the specified\
\ subscription."
"404":
description: "Not Found"
x-response-codes:
errors:
195013:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "The subscription id does not exist."
security:
- api_auth:
- "https://api.ebay.com/oauth/api_scope"
- "https://api.ebay.com/oauth/api_scope/commerce.notification.subscription"
/subscription/{subscription_id}:
get:
tags:
- "subscription"
description: "This method allows applications to retrieve subscription details\
\ for the specified subscription.
Specify the subscription to retrieve\
\ using the subscription_id. Use the getSubscriptions\
\ method to browse all subscriptions if you do not know the subscription_id.
Subscriptions\
\ allow applications to express interest in notifications and keep receiving\
\ the information relevant to their business."
operationId: "getSubscription"
parameters:
- name: "subscription_id"
in: "path"
description: "The unique identifier of the subscription to retrieve. Use getSubscriptions\
\ to retrieve subscription IDs."
required: true
schema:
type: "string"
responses:
"200":
description: "OK"
content:
application/json:
schema:
$ref: "#/components/schemas/Subscription"
"400":
description: "Bad Request"
"500":
description: "Internal Server Error"
x-response-codes:
errors:
195000:
domain: "API_NOTIFICATION"
category: "APPLICATION"
description: "There was a problem with an eBay internal system or\
\ process. Contact eBay developer support for assistance."
"404":
description: "Not Found"
x-response-codes:
errors:
195013:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "The subscription id does not exist."
security:
- api_auth:
- "https://api.ebay.com/oauth/api_scope"
- "https://api.ebay.com/oauth/api_scope/commerce.notification.subscription.readonly"
- "https://api.ebay.com/oauth/api_scope/commerce.notification.subscription"
put:
tags:
- "subscription"
description: "This method allows applications to update a subscription. Subscriptions\
\ allow applications to express interest in notifications and keep receiving\
\ the information relevant to their business.
Note: This call returns an error if an application is not authorized\
\ to subscribe to a topic.
You can pause and restart a subscription.\
\ See the disableSubscription and enableSubscription methods."
operationId: "updateSubscription"
parameters:
- name: "Content-Type"
in: "header"
description: "This header indicates the format of the request body provided\
\ by the client. Its value should be set to application/json.
\
\ For more information, refer to HTTP request headers."
required: true
schema:
type: "string"
- name: "subscription_id"
in: "path"
description: "The unique identifier for the subscription to update. Use getSubscriptions\
\ to retrieve subscription IDs."
required: true
schema:
type: "string"
requestBody:
description: "The create subscription request."
content:
application/json:
schema:
description: "The create subscription request."
$ref: "#/components/schemas/UpdateSubscriptionRequest"
required: false
responses:
"400":
description: "Bad Request"
x-response-codes:
errors:
195010:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Invalid or missing protocol"
195008:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Invalid or missing schema version. Please refer to /topic/{topic_id}\
\ for supported schema versions."
195009:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Specified format is not supported for the topic."
195006:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Invalid or missing subscription status."
195007:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Invalid or missing destination id."
"500":
description: "Internal Server Error"
x-response-codes:
errors:
195000:
domain: "API_NOTIFICATION"
category: "APPLICATION"
description: "There was a problem with an eBay internal system or\
\ process. Contact eBay developer support for assistance."
"204":
description: "No Content"
"404":
description: "Not Found"
x-response-codes:
errors:
195013:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "The subscription id does not exist."
"409":
description: "Conflict"
x-response-codes:
errors:
195014:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "The subscription cannot be enabled since the topic or\
\ payload is no longer supported."
195015:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "The subscription cannot be enabled since the destination\
\ is not enabled."
195012:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Subscription already exists"
security:
- api_auth:
- "https://api.ebay.com/oauth/api_scope"
- "https://api.ebay.com/oauth/api_scope/commerce.notification.subscription"
delete:
tags:
- "subscription"
description: "This method allows applications to delete a subscription. Subscriptions\
\ can be deleted regardless of status."
operationId: "deleteSubscription"
parameters:
- name: "subscription_id"
in: "path"
description: "The unique identifier of the subscription to delete. Use getSubscriptions\
\ to retrieve subscription IDs."
required: true
schema:
type: "string"
responses:
"400":
description: "Bad Request"
"500":
description: "Internal Server Error"
x-response-codes:
errors:
195000:
domain: "API_NOTIFICATION"
category: "APPLICATION"
description: "There was a problem with an eBay internal system or\
\ process. Contact eBay developer support for assistance."
"204":
description: "No Content"
"404":
description: "Not Found"
x-response-codes:
errors:
195013:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: " The subscription id does not exist."
security:
- api_auth:
- "https://api.ebay.com/oauth/api_scope"
- "https://api.ebay.com/oauth/api_scope/commerce.notification.subscription"
/subscription/{subscription_id}/filter/{filter_id}:
get:
tags:
- "subscription"
description: "This method allows applications to retrieve the filter details\
\ for the specified subscription filter.
Specify the subscription filter\
\ to retrieve by using the subscription_id and the filter_id\
\ associated with the subscription filter. The filter_id\
\ can be found in the response body for the getSubscription\
\ method, if there is a filter applied on the subscription.
Filters\
\ allow applications to only be sent notifications that match a provided criteria.\
\ Notifications that do not match this criteria will not be sent to the destination."
operationId: "getSubscriptionFilter"
parameters:
- name: "filter_id"
in: "path"
description: "The unique identifier of the subscription filter. Filter ID\
\ values, if configured for a subscription, will be shown in the subscriptions.filterId\
\ field in getSubscription and getSubscription responses.\
\ The filter ID value is also returned in the Location response header when\
\ a filter is created with createSubscriptionFilter."
required: true
schema:
type: "string"
- name: "subscription_id"
in: "path"
description: "The unique identifier of the subscription associated with the\
\ filter. Use getSubscriptions to retrieve subscription IDs."
required: true
schema:
type: "string"
responses:
"200":
description: "OK"
content:
application/json:
schema:
$ref: "#/components/schemas/SubscriptionFilter"
"400":
description: "Bad Request"
x-response-codes:
errors:
195031:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "The specified subscription id does not match the specified\
\ filter id."
"500":
description: "Internal Server Error"
x-response-codes:
errors:
195000:
domain: "API_NOTIFICATION"
category: "APPLICATION"
description: "There was a problem with an eBay internal system or\
\ process. Contact eBay developer support for assistance."
"403":
description: "Forbidden"
x-response-codes:
errors:
195028:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "The application is not authorized to access the specified\
\ subscription."
"404":
description: "Not Found"
x-response-codes:
errors:
195013:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "The subscription id does not exist."
195029:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Invalid subscription filter id."
security:
- api_auth:
- "https://api.ebay.com/oauth/api_scope"
- "https://api.ebay.com/oauth/api_scope/commerce.notification.subscription.readonly"
- "https://api.ebay.com/oauth/api_scope/commerce.notification.subscription"
delete:
tags:
- "subscription"
description: "This method allows applications to disable the active filter on\
\ a subscription, so that a new subscription filter may be added.
Note: Subscription filters in PENDING\
\ status can not be disabled. However, a new filter can be created instead\
\ with the createSubscriptionFilter method and this new filter\
\ will override the PENDING filter."
operationId: "deleteSubscriptionFilter"
parameters:
- name: "filter_id"
in: "path"
description: "The unique identifier of the subscription filter to delete.\
\ Filter ID values, if configured for a subscription, will be shown in\
\ the subscriptions.filterId field in getSubscription and\
\ getSubscription responses. The filter ID value is also returned\
\ in the Location response header when a filter is created with createSubscriptionFilter."
required: true
schema:
type: "string"
- name: "subscription_id"
in: "path"
description: "The unique identifier of the subscription associated with the\
\ filter to delete. Use getSubscriptions to retrieve subscription\
\ IDs."
required: true
schema:
type: "string"
responses:
"400":
description: "Bad Request"
x-response-codes:
errors:
195031:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "The specified subscription id does not match the specified\
\ filter id."
"500":
description: "Internal Server Error"
x-response-codes:
errors:
195000:
domain: "API_NOTIFICATION"
category: "APPLICATION"
description: "There was a problem with an eBay internal system or\
\ process. Contact eBay developer support for assistance."
"204":
description: "No Content"
"403":
description: "Forbidden"
x-response-codes:
errors:
195028:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "The application is not authorized to access the specified\
\ subscription."
"404":
description: "Not Found"
x-response-codes:
errors:
195013:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "The subscription id does not exist."
195029:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Invalid subscription filter id."
security:
- api_auth:
- "https://api.ebay.com/oauth/api_scope"
- "https://api.ebay.com/oauth/api_scope/commerce.notification.subscription"
/subscription/{subscription_id}/disable:
post:
tags:
- "subscription"
description: "This method disables a subscription, which prevents the subscription\
\ from providing notifications. To restart a subscription, call enableSubscription."
operationId: "disableSubscription"
parameters:
- name: "subscription_id"
in: "path"
description: "The unique identifier of an enabled subscription that will be\
\ disabled. Use getSubscriptions to retrieve subscription IDs."
required: true
schema:
type: "string"
responses:
"400":
description: "Bad Request"
"500":
description: "Internal Server Error"
x-response-codes:
errors:
195000:
domain: "API_NOTIFICATION"
category: "APPLICATION"
description: "There was a problem with an eBay internal system or\
\ process. Contact eBay developer support for assistance."
"204":
description: "No Content"
"404":
description: "Not Found"
x-response-codes:
errors:
195013:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "The subscription id does not exist."
security:
- api_auth:
- "https://api.ebay.com/oauth/api_scope"
- "https://api.ebay.com/oauth/api_scope/commerce.notification.subscription"
/subscription/{subscription_id}/enable:
post:
tags:
- "subscription"
description: "This method allows applications to enable a disabled subscription.\
\ To pause (or disable) an enabled subscription, call disableSubscription."
operationId: "enableSubscription"
parameters:
- name: "subscription_id"
in: "path"
description: "The unique identifier of a disabled subscription that will be\
\ enabled. Use getSubscriptions to retrieve subscription IDs."
required: true
schema:
type: "string"
responses:
"400":
description: "Bad Request"
"500":
description: "Internal Server Error"
x-response-codes:
errors:
195000:
domain: "API_NOTIFICATION"
category: "APPLICATION"
description: "There was a problem with an eBay internal system or\
\ process. Contact eBay developer support for assistance."
"204":
description: "No Content"
"404":
description: "Not Found"
x-response-codes:
errors:
195013:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "The subscription id does not exist."
"409":
description: "Conflict"
x-response-codes:
errors:
195014:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "The subscription cannot be enabled since the topic or\
\ payload is no longer supported."
195015:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "The subscription cannot be enabled since the destination\
\ is not enabled."
security:
- api_auth:
- "https://api.ebay.com/oauth/api_scope"
- "https://api.ebay.com/oauth/api_scope/commerce.notification.subscription"
/subscription/{subscription_id}/test:
post:
tags:
- "subscription"
description: "This method triggers a mocked test payload that includes a notification\
\ ID, publish date, and so on. Use this method to test your subscription end-to-end.
You\
\ can create the subscription in disabled mode, test it using this method,\
\ and when everything is ready, you can enable the subscription (see the enableSubscription\
\ method).
Note: Use the notificationId\
\ to tell the difference between a test payload and a real payload."
operationId: "testSubscription"
parameters:
- name: "subscription_id"
in: "path"
description: "The unique identifier of the subscription to test. Use getSubscriptions\
\ to retrieve subscription IDs."
required: true
schema:
type: "string"
responses:
"202":
description: "Accepted"
"400":
description: "Bad Request"
"500":
description: "Internal Server Error"
x-response-codes:
errors:
195000:
domain: "API_NOTIFICATION"
category: "APPLICATION"
description: "There was a problem with an eBay internal system or\
\ process. Contact eBay developer support for assistance."
"404":
description: "Not Found"
x-response-codes:
errors:
195013:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: " The subscription id does not exist."
security:
- api_auth:
- "https://api.ebay.com/oauth/api_scope"
- "https://api.ebay.com/oauth/api_scope/commerce.notification.subscription"
/topic/{topic_id}:
get:
tags:
- "topic"
description: "This method allows applications to retrieve details for the specified\
\ topic. This information includes supported schema versions, formats, and\
\ other metadata for the topic.
Applications can subscribe to any of\
\ the topics for a supported schema version and format, limited by the authorization\
\ scopes required to subscribe to the topic.
A topic specifies the\
\ type of information to be received and the data types associated with an\
\ event. An event occurs in the eBay system, such as when a user requests\
\ deletion or revokes access for an application. An event is an instance of\
\ an event type (topic).
Specify the topic to retrieve using the topic_id\
\ URI parameter.
Note: Use the getTopics method to find a topic if you do not know the topic ID."
operationId: "getTopic"
parameters:
- name: "topic_id"
in: "path"
description: "The unique identifier of the notification topic for which the\
\ details are retrieved. Use getTopics to retrieve the topic ID."
required: true
schema:
type: "string"
responses:
"200":
description: "OK"
content:
application/json:
schema:
$ref: "#/components/schemas/Topic"
"400":
description: "Bad Request"
"500":
description: "Internal Server Error"
x-response-codes:
errors:
195000:
domain: "API_NOTIFICATION"
category: "APPLICATION"
description: "There was a problem with an eBay internal system or\
\ process. Contact eBay developer support for assistance."
"404":
description: "Not Found"
x-response-codes:
errors:
195002:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Invalid or missing topic id."
security:
- api_auth:
- "https://api.ebay.com/oauth/api_scope"
/topic:
get:
tags:
- "topic"
description: "This method returns a paginated collection of all supported topics,\
\ along with the details for the topics. This information includes supported\
\ schema versions, formats, and other metadata for the topics.
Applications\
\ can subscribe to any of the topics for a supported schema version and format,\
\ limited by the authorization scopes required to subscribe to the topic.
A\
\ topic specifies the type of information to be received and the data types\
\ associated with an event. An event occurs in the eBay system, such as when\
\ a user requests deletion or revokes access for an application. An event\
\ is an instance of an event type (topic)."
operationId: "getTopics"
parameters:
- name: "continuation_token"
in: "query"
description: "This string value can be used to return the next page in the\
\ result set. The string to use here is returned in the next field\
\ of the current page of results."
required: false
schema:
type: "string"
- name: "limit"
in: "query"
description: "The maximum number of notification topics to return per page\
\ from the result set.
Min: 10
Max: 100
Default:\
\ 20"
required: false
schema:
type: "string"
responses:
"200":
description: "OK"
content:
application/json:
schema:
$ref: "#/components/schemas/TopicSearchResponse"
"400":
description: "Bad Request"
x-response-codes:
errors:
195004:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Invalid limit. Supported ranges 10 - 100."
195005:
domain: "API_NOTIFICATION"
category: "REQUEST"
description: "Invalid continuation token."
"500":
description: "Internal Server Error"
x-response-codes:
errors:
195000:
domain: "API_NOTIFICATION"
category: "APPLICATION"
description: "There was a problem with an eBay internal system or\
\ process. Contact eBay developer support for assistance."
security:
- api_auth:
- "https://api.ebay.com/oauth/api_scope"
components:
schemas:
Config:
type: "object"
properties:
alertEmail:
type: "string"
description: "This field is used to add or modify an email address that\
\ will be used for Notification API alerts associated with the application.\
\ getConfig can be used to get the email address currently being\
\ used for alerts."
description: "The type that defines the fields for the alertEmail field."
CreateSubscriptionFilterRequest:
type: "object"
properties:
filterSchema:
type: "object"
additionalProperties:
type: "object"
description: "The content of a subscription filter as a valid JSON Schema Core document\
\ (version 2020-12 or later). The filterSchema provided\
\ must describe the subscription's notification payload such that it supplies\
\ valid criteria to filter the subscription's notifications.
Note: Not all topics can have filters applied\
\ to them. Use getTopic and getTopics requests to determine if a specific topic is filterable.\
\ Filterable topics have the boolean filterable returned as true\
\ in the response.
Note: If\
\ the JSON supplied as a subscription filter specifies a field that does\
\ not exist in the notifications for a topic, or if the topic is not filterable,\
\ the filter will be rejected and become DISABLED. If\
\ it is valid, however, the filter will move from PENDING\
\ status to ENABLED status.
Initially, when\
\ the createSubscriptionFilter request has been made, if the request\
\ has a valid JSON body a 201 Created is returned. After that,\
\ the validation of the filterSchema happens. See Creating a subscription filter for a topic for\
\ additional information."
CreateSubscriptionRequest:
type: "object"
properties:
destinationId:
type: "string"
description: "The unique identifier of the destination endpoint that will\
\ receive notifications associated with this subscription. Use the getDestinations\
\ method to retrieve destination IDs."
payload:
description: "The payload associated with the notification topic. Use getTopics\
\ or getTopic to get the supported payload for the topic."
$ref: "#/components/schemas/SubscriptionPayloadDetail"
status:
type: "string"
description: "Set the status of the subscription to ENABLED\
\ or DISABLED. For implementation help, refer to eBay\
\ API documentation"
topicId:
type: "string"
description: "The unique identifier of the notification topic to subscribe\
\ to. Use getTopics to get topic IDs."
description: "This type contains information about a subscription request."
DeliveryConfig:
type: "object"
properties:
endpoint:
type: "string"
description: "The endpoint for this destination.
Note: The provided endpoint URL should use the HTTPS protocol,\
\ and it should not contain an internal IP address or localhost\
\ in its path."
verificationToken:
type: "string"
description: "The verification token associated with this endpoint.
Note: The provided verification token must\
\ be between 32 and 80 characters. Allowed characters include alphanumeric\
\ characters, underscores (_), and hyphens (-);\
\ no other characters are allowed."
description: "A type that contains information about the delivery configuration."
Destination:
type: "object"
properties:
deliveryConfig:
description: "The configuration associated with this destination."
$ref: "#/components/schemas/DeliveryConfig"
destinationId:
type: "string"
description: "The unique identifier for the destination."
name:
type: "string"
description: "The name associated with this destination."
status:
type: "string"
description: "The status for this destination.
Note: The MARKED_DOWN value is set by eBay systems and\
\ cannot be used in a create or update call by applications.
Valid\
\ values:ENABLEDDISABLEDMARKED_DOWN
\
\ For implementation help, refer to eBay\
\ API documentation"
description: "A type that contains information about the destination."
DestinationRequest:
type: "object"
properties:
deliveryConfig:
description: "This container is used to specify the destination endpoint\
\ and verification token associated with this endpoint."
$ref: "#/components/schemas/DeliveryConfig"
name:
type: "string"
description: "The seller-specified name for the destination endpoint."
status:
type: "string"
description: "This field sets the status for the destination endpoint as\
\ ENABLED or DISABLED.
Note: The MARKED_DOWN value is set by eBay systems\
\ and cannot be used in a create or update call by applications.\
\ For implementation help, refer to eBay\
\ API documentation"
description: "A type that contains information about the destination request."
DestinationSearchResponse:
type: "object"
properties:
destinations:
type: "array"
description: "An array that contains the destination details."
items:
$ref: "#/components/schemas/Destination"
href:
type: "string"
description: "The path to the call URI that produced the current page of\
\ results."
limit:
type: "integer"
description: "The number of records to show in the current response.
Default:\
\ 20"
format: "int32"
next:
type: "string"
description: "The URL to access the next set of results. This field includes\
\ a continuation_token. No prev field is returned,\
\ but this value is persistent during the session so that you can use\
\ it to return to the next page.
This field is not returned if\
\ fewer records than specified by the limit field are\
\ returned."
total:
type: "integer"
description: "The total number of matches for the search criteria."
format: "int32"
description: "A type that contains information about the destination search\
\ response."
Error:
type: "object"
properties:
category:
type: "string"
description: "Identifies the type of erro."
domain:
type: "string"
description: "Name for the primary system where the error occurred. This\
\ is relevant for application errors."
errorId:
type: "integer"
description: "A unique number to identify the error."
format: "int32"
inputRefIds:
type: "array"
description: "An array of request elements most closely associated to the\
\ error."
items:
type: "string"
longMessage:
type: "string"
description: "A more detailed explanation of the error."
message:
type: "string"
description: "Information on how to correct the problem, in the end user's\
\ terms and language where applicable."
outputRefIds:
type: "array"
description: "An array of request elements most closely associated to the\
\ error."
items:
type: "string"
parameters:
type: "array"
description: "An array of name/value pairs that describe details the error\
\ condition. These are useful when multiple errors are returned."
items:
$ref: "#/components/schemas/ErrorParameter"
subdomain:
type: "string"
description: "Further helps indicate which subsystem the error is coming\
\ from. System subcategories include: Initialization, Serialization, Security,\
\ Monitoring, Rate Limiting, etc."
description: "This type defines the fields that can be returned in an error."
ErrorParameter:
type: "object"
properties:
name:
type: "string"
description: "The object of the error."
value:
type: "string"
description: "The value of the object."
PayloadDetail:
type: "object"
properties:
deliveryProtocol:
type: "string"
description: "The supported delivery protocols. For implementation help,\
\ refer to eBay\
\ API documentation"
deprecated:
type: "boolean"
description: "A deprecation indicator."
format:
type: "array"
description: "The supported format. Presently, JSON is the\
\ only supported format."
items:
type: "string"
description: " For implementation help, refer to eBay\
\ API documentation"
schemaVersion:
type: "string"
description: "The supported schema version."
description: "A type that describes the details about a topic's payload."
PublicKey:
type: "object"
properties:
algorithm:
type: "string"
description: "The algorithm associated with the public key that is returned,\
\ such as Elliptic Curve Digital Signature Algorithm (ECDSA)."
digest:
type: "string"
description: "The digest associated with the public key that is returned,\
\ such as Secure Hash Algorithm 1 (SHA1)."
key:
type: "string"
description: "The public key that is returned for the specified key ID.
This\
\ value is used to validate the eBay push notification message payload."
description: "A type that defines the public key for a unique key ID."
Subscription:
type: "object"
properties:
creationDate:
type: "string"
description: "The creation date for this subscription."
destinationId:
type: "string"
description: "The unique identifier for the destination associated with\
\ this subscription."
filterId:
type: "string"
description: "The unique identifier for the filter associated with this\
\ subscription."
payload:
description: "The payload associated with this subscription."
$ref: "#/components/schemas/SubscriptionPayloadDetail"
status:
type: "string"
description: "The status of this subscription. For implementation help,\
\ refer to eBay\
\ API documentation"
subscriptionId:
type: "string"
description: "The unique identifier for the subscription."
topicId:
type: "string"
description: "The unique identifier for the topic associated with this subscription."
description: "A type that describes the subscription."
SubscriptionFilter:
type: "object"
properties:
creationDate:
type: "string"
description: "The creation date for this subscription filter."
filterId:
type: "string"
description: "The unique identifier for this subscription filter."
filterSchema:
type: "object"
additionalProperties:
type: "object"
description: "The content of this subscription filter as a valid JSON Schema Core document\
\ (version 2020-12 or later). The filterSchema provided\
\ must describe the subscription's notification payload such that it supplies\
\ valid criteria to filter the subscription's notifications."
filterStatus:
type: "string"
description: "The status of this subscription filter. For implementation\
\ help, refer to eBay\
\ API documentation"
subscriptionId:
type: "string"
description: "The unique identifier for the subscription."
SubscriptionPayloadDetail:
type: "object"
properties:
deliveryProtocol:
type: "string"
description: "The supported delivery protocol of the notification topic.
Note: HTTPS is currently the\
\ only supported delivery protocol of all notification topics. \
\ For implementation help, refer to eBay\
\ API documentation"
format:
type: "string"
description: "The supported data format of the payload.
Note: JSON is currently the only supported format for\
\ all notification topics. For implementation help, refer to eBay\
\ API documentation"
schemaVersion:
type: "string"
description: "The supported schema version for the notification topic. See\
\ the supportedPayloads.schemaVersion field for the topic in getTopics\
\ or getTopic response."
description: "A type that describes the details of the subscription payload."
SubscriptionSearchResponse:
type: "object"
properties:
href:
type: "string"
description: "The path to the call URI that produced the current page of\
\ results."
limit:
type: "integer"
description: "The value of the limit parameter submitted in the request,\
\ which is the maximum number of items to return per page, from the result\
\ set. A result set is the complete set of results returned by the method.
Note: Though this parameter is not required\
\ to be submitted in the request, the parameter defaults to 20\
\ if omitted.
Default: 20"
format: "int32"
next:
type: "string"
description: "The URL to access the next set of results. This field includes\
\ a continuation_token. No prev field is returned,\
\ but this value is persistent during the session so that you can use\
\ it to return to the next page.
This field is not returned if\
\ fewer records than specified by the limit field are\
\ returned."
subscriptions:
type: "array"
description: "The subscriptions that match the search criteria."
items:
$ref: "#/components/schemas/Subscription"
total:
type: "integer"
description: "The total number of matches for the search criteria."
format: "int32"
description: "A type that describes the details of the subscription search response."
Topic:
type: "object"
properties:
authorizationScopes:
type: "array"
description: "The authorization scopes required to subscribe to this topic."
items:
type: "string"
context:
type: "string"
description: "The business context associated with this topic. For implementation\
\ help, refer to eBay\
\ API documentation"
description:
type: "string"
description: "The description of the topic."
filterable:
type: "boolean"
description: "The indicator of whether this topic is filterable or not."
scope:
type: "string"
description: "The scope of this topic. For implementation help, refer to\
\ eBay\
\ API documentation"
status:
type: "string"
description: "The status of this topic. For implementation help, refer to\
\ eBay\
\ API documentation"
supportedPayloads:
type: "array"
description: "The supported payloads for this topic."
items:
$ref: "#/components/schemas/PayloadDetail"
topicId:
type: "string"
description: "The unique identifier for the topic."
description: "A type that describes the details of the topic."
TopicSearchResponse:
type: "object"
properties:
href:
type: "string"
description: "The path to the call URI that produced the current page of\
\ results."
limit:
type: "integer"
description: "The value of the limit parameter submitted in the request,\
\ which is the maximum number of items to return per page, from the result\
\ set. A result set is the complete set of results returned by the method.
Note: Though this parameter is not required\
\ to be submitted in the request, the parameter defaults to 20\
\ if omitted."
format: "int32"
next:
type: "string"
description: "The URL to access the next set of results. This field includes\
\ a continuation_token. No prev field is returned,\
\ but this value is persistent during the session so that you can use\
\ it to return to the next page.
This field is not returned if\
\ fewer records than specified by the limit field are\
\ returned."
topics:
type: "array"
description: "An array of topics that match the specified criteria."
items:
$ref: "#/components/schemas/Topic"
total:
type: "integer"
description: "The total number of matches for the search criteria."
format: "int32"
description: "A type that describes the details of the topic search response."
UpdateSubscriptionRequest:
type: "object"
properties:
destinationId:
type: "string"
description: "The unique identifier of the destination endpoint that will\
\ receive notifications associated with this subscription. Use getDestinations\
\ to retrieve destination IDs."
payload:
description: "The payload associated with this subscription."
$ref: "#/components/schemas/SubscriptionPayloadDetail"
status:
type: "string"
description: "Set the status of the subscription being updated to ENABLED\
\ or DISABLED. For implementation help, refer to eBay\
\ API documentation"
description: "A type that describes the details of the update subscription request."
securitySchemes:
api_auth:
type: "oauth2"
description: "The security definitions for this API. Please check individual\
\ operations for applicable scopes."
flows:
clientCredentials:
tokenUrl: "https://api.ebay.com/identity/v1/oauth2/token"
scopes:
https://api.ebay.com/oauth/api_scope: "View public data from eBay"
authorizationCode:
authorizationUrl: "https://auth.ebay.com/oauth2/authorize"
tokenUrl: "https://api.ebay.com/identity/v1/oauth2/token"
scopes:
https://api.ebay.com/oauth/api_scope/commerce.notification.subscription.readonly: "View\
\ your event notification subscriptions"
https://api.ebay.com/oauth/api_scope/commerce.notification.subscription: "View\
\ and manage your event notification subscriptions"