openapi: 3.0.0 info: title: eBay Developer Registration API description: Note: The Client Registration API is not intended for use by developers who have previously registered for a Developer Account on the eBay platform.
The Client Registration API provides Dynamic Client Registration for regulated Third Party Providers (TPPs) who are, or will be, engaged in financial transactions on behalf of individuals domiciled in the EU/UK. This is required by the EU's Second Payment Services Directive (PSD2) which requires all regulated Account Servicing Payment Service Providers (ASPSPs) to provide secure APIs to access account and payment services on behalf of account holders.

A successful registration response returns a HTTP 201 Created status code with a JSON payload [RFC7519] that includes registration information. contact: name: eBay Inc, license: name: eBay API License Agreement url: https://go.developer.ebay.com/api-license-agreement version: v1.0.0 servers: - url: https://tppz.ebay.com{basePath} description: Production variables: basePath: default: /developer/registration/v1 paths: /client/register: post: tags: - Register description: 'Note: The Client Registration API is not intended for use by developers who have previously registered for a Developer Account on the eBay platform.
This call registers a new third party financial application with eBay.

Important! When calling the registerClient method, Third Party Providers (TPPs) are required to pass their valid eIDAS certificate to eBay via Mutual Transport Layer Security (MTLS) handshake Certificate Request messages.


A successful call returns an HTTP status code of 201 Created and the response payload.

Registering multiple applications

A regulated third party provider (identified by a unique organizationIdentifier) may register up to 15 different applications with eBay provided the unique software_id for each application is passed in at the time of registration.

Each registerClient call that passes in a unique software_id will generate new client_id and client_secret keypairs.

If a third party provider calls registerClient using a previously registered software_id, the existing client_id and client_secret keypairs are returned.

Note: For additional information about using an organizationIdentifier, refer to the following sections of ETSI Technical Specification 119 495' operationId: registerClient 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: This container stores information about the third party provider's financial application that is being registered. content: application/json: schema: description: This container stores information about the third party provider's financial application that is being registered. $ref: '#/components/schemas/ClientSettings' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/ClientDetails' '400': description: Bad Request '404': description: Not Found '500': description: Internal Server Error components: schemas: ClientDetails: type: object properties: client_id: type: string description: A unique, eBay-generated id assigned to the third party application at the time it was registered. client_id_issued_at: type: integer description: The UNIX timestamp when the client_id was issued. This time is represented as the number of seconds from "1970-01-01T00:00:00Z", as measured in UTC, until the date/time of issuance. Refer to RFC 7591 - OAuth 2.0 Dynamic Client Registration Protocol for complete information. format: int32 client_name: type: string description: User-friendly name for the third party financial application.

Note: Language tags are not supported. Therefore, client_name will be specified in English. client_secret: type: string description: A unique OAuth 2.0 secret string assigned by eBay to the third party application at the time it is registered. This value should be unique for multiple instances of a client using the same client_id. This value is used by confidential clients to authenticate to the token endpoint, as described in OAuth 2.0 [RFC6749], Section 2.3.1.

Note: client_secret is unique to the organization identifier of subject name which contains jurisdiction, NCA Id, and Authorization Number. client_secret_expires_at: type: integer description: The UNIX timestamp when the client_secret expires.

Note: When a client_secret has been provided, this field is REQUIRED.
A returned value of 0 indicates that the client_secret never expires.

This time is represented as the number of seconds from "1970-01-01T00:00:00Z", as measured in UTC, until the expiration date and time. Refer to RFC 7591 - OAuth 2.0 Dynamic Client Registration Protocol section 3.2.1 for complete information. format: int32 contacts: type: array description: This container stores an array of email addresses for representatives at the third party provider responsible for the application being registered. items: type: string grant_types: type: array description: 'An array of OAuth 2.0 grant type strings that the client software can use at the token endpoint. Supported grant type values are:
If the token endpoint is used in the grant type, the value of this parameter MUST be the same as the value of the grant_type parameter passed to the token endpoint defined in the grant type definition. Authorization servers may allow for other values as defined in the grant type extension process described in OAuth 2.0, Section 4.5. If omitted, the default behavior is that the client will use only the authorization_code Grant Type.' items: type: string policy_uri: type: string description: The URL string pointing to a human-readable privacy policy document that describes how the third party provider collects, uses, retains, and discloses personal data.

Note: Only HTTPS URLs are supported for policy_uri strings.
Note: This URL must not point to the eBay Privacy Policy.
The authorization server should display this secure URL to the end-user if it is provided. The value of this field must point to a valid and secure web page.

Note: Language tags are not supported. Therefore, policy_uri will be displayed in English. redirect_uris: type: array description: An eBay system-generated value assigned to the application. This value represents the redirect uri(s) submitted by the user either in the request payload (i.e., the redirect_uris field,) or the software_statement. items: type: string scope: type: string description: String containing a space-separated list of scope values (as described in Section 3.3 of OAuth 2.0 [RFC6749]) that the client can use when requesting access tokens. The semantics of values in this list are service specific. software_id: type: string description: A unique identifier string provided by the client developer or software publisher at the time of registration that identifies the client software being registered.

Unlike client_id which should change between instances, the software_id should be the same value for all instances of the client software. That is, the software_id should remain unchanged across multiple updates or versions of the same piece of software. software_statement: type: string description: The Software Statement Assertion (SSA), a JSON Web Token (JWT), that has been issued by the OpenBanking identifier. Refer to RFC 7591 - OAuth 2.0 Dynamic Client Registration Protocol for complete information. description: This container stores information about the third party provider's financial application that has been registered with eBay. ClientSettings: type: object properties: client_name: type: string description: User-friendly name for the third party financial application.

Note: Language tags are not supported. Therefore, client_name must be specified in English. contacts: type: array description: This container stores an array of email addresses that can be used to contact the registrant.

Note: When more than one email address is provided, the first email in the array will be used as the developer account's email address. All other email addresses will be used as general contact information. items: type: string policy_uri: type: string description: The URL string pointing to a human-readable privacy policy document that describes how the third party provider collects, uses, retains, and discloses personal data.

Note: Only HTTPS URLs are supported for policy_uri strings.
Note: This URL must not point to the eBay Privacy Policy.
The value of this field must point to a valid and secure web page.

Note: Language tags are not supported. Therefore, policy_uri will be displayed in English. redirect_uris: type: array description: An array of redirection URI strings for use in redirect-based flows such as the authorization code and implicit flows.

Note: Only the first URI string from the list will be used.Note: Each redirection URI must be an absolute URI as defined by [RFC3986] Section 4.3. items: type: string software_id: type: string description: A unique identifier string assigned by the client developer or software publisher to identify the client software being registered.

Unlike client_id which should change between instances, the software_id should be the same value for all instances of the client software. That is, the software_id should remain unchanged across multiple updates or versions of the same piece of software. The value of this field is not intended to be human readable and is usually opaque to the client and authorization server. software_statement: type: string description: The Software Statement Assertion (SSA) that has been issued by the OpenBanking identifier.

Note: This value must be Base64 encoded and not plain JSON.Refer to RFC 7591 - OAuth 2.0 Dynamic Client Registration Protocol for complete information. description: This container stores application-specific information that is provided at the time of registration. 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. 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 tags: - name: Register