openapi: 3.0.3 info: title: Paypal Subscriptions Authorizations Webhooks API description: You can use billing plans and subscriptions to create subscriptions that process recurring PayPal payments for physical or digital goods, or services. A plan includes pricing and billing cycle information that defines the amount and frequency of charge for a subscription. You can also define a fixed plan, such as a $5 basic plan or a volume- or graduated-based plan with pricing tiers based on the quantity purchased. For more information, see Subscriptions Overview. version: '1.6' contact: {} servers: - url: https://api-m.sandbox.paypal.com description: PayPal Sandbox Environment - url: https://api-m.paypal.com description: PayPal Live Environment tags: - name: Webhooks description: Use the `/webhooks` resource to subscribe your webhook listener to events, list webhooks for an app, show details for, update, delete, and list event subscriptions for webhooks. paths: /v1/notifications/webhooks: post: summary: Paypal Create webhook description: Subscribes your webhook listener to events. operationId: webhooks.post responses: '201': description: A successful request returns the HTTP `201 Created` status code and a JSON response body with a [`webhook`](/docs/api/webhooks/v1/#definition-webhook) object that includes the webhook ID for later use. content: application/json: schema: $ref: '#/components/schemas/webhook' default: description: The error response. content: application/json: schema: $ref: '#/components/schemas/error' requestBody: content: application/json: schema: $ref: '#/components/schemas/webhook' examples: webhook: value: url: https://example.com/example_webhook event_types: - name: PAYMENT.AUTHORIZATION.CREATED - name: PAYMENT.AUTHORIZATION.VOIDED security: - Oauth2: - https://uri.paypal.com/services/applications/webhooks tags: - Webhooks get: summary: Paypal List webhooks description: Lists webhooks for an app. operationId: webhooks.list responses: '200': description: A successful request returns the HTTP `200 OK` status code and a JSON response body that lists webhooks with webhook details. content: application/json: schema: $ref: '#/components/schemas/WebhookList' default: description: The error response. content: application/json: schema: $ref: '#/components/schemas/error' parameters: - $ref: '#/components/parameters/anchor_type' security: - Oauth2: - https://uri.paypal.com/services/applications/webhooks tags: - Webhooks /v1/notifications/webhooks/{webhook_id}: get: summary: Paypal Show webhook details description: Shows details for a webhook, by ID. operationId: webhooks.get responses: '200': description: A successful request returns the HTTP `200 OK` status code and a JSON response body that shows webhook details. content: application/json: schema: $ref: '#/components/schemas/webhook' default: description: The error response. content: application/json: schema: $ref: '#/components/schemas/error' parameters: - $ref: '#/components/parameters/webhook_id' security: - Oauth2: - https://uri.paypal.com/services/applications/webhooks tags: - Webhooks patch: summary: Paypal Update webhook description: Updates a webhook to replace webhook fields with new values. Supports only the `replace` operation. Pass a `json_patch` object with `replace` operation and `path`, which is `/url` for a URL or `/event_types` for events. The `value` is either the URL or a list of events. operationId: webhooks.update responses: '200': description: A successful request returns the HTTP `200 OK` status code and a JSON response body that shows webhook details. content: application/json: schema: $ref: '#/components/schemas/webhook' default: description: The error response. content: application/json: schema: $ref: '#/components/schemas/error' parameters: - $ref: '#/components/parameters/webhook_id' requestBody: content: application/json: schema: $ref: '#/components/schemas/patch_request' security: - Oauth2: - https://uri.paypal.com/services/applications/webhooks tags: - Webhooks delete: summary: Paypal Delete webhook description: Deletes a webhook, by ID. operationId: webhooks.delete responses: '204': description: A successful request returns the HTTP `204 No Content` status code with no JSON response body. default: description: The error response. content: application/json: schema: $ref: '#/components/schemas/error' parameters: - $ref: '#/components/parameters/webhook_id' security: - Oauth2: - https://uri.paypal.com/services/applications/webhooks tags: - Webhooks /v1/notifications/webhooks/{webhook_id}/event-types: get: summary: Paypal List event subscriptions for webhook description: Lists event subscriptions for a webhook, by ID. operationId: event-types.list responses: '200': description: A successful request returns the HTTP `200 OK` status code and a JSON response body that lists event subscriptions for a webhook. content: application/json: schema: $ref: '#/components/schemas/EventTypeList' default: description: The error response. content: application/json: schema: $ref: '#/components/schemas/error' parameters: - $ref: '#/components/parameters/webhook_id' security: - Oauth2: - https://uri.paypal.com/services/applications/webhooks tags: - Webhooks components: schemas: error: type: object title: Error description: The error details. properties: name: type: string description: The human-readable, unique name of the error. message: type: string description: The message that describes the error. debug_id: type: string description: The PayPal internal ID. Used for correlation purposes. information_link: type: string description: The information link, or URI, that shows detailed information about this error for the developer. readOnly: true details: type: array description: An array of additional details about the error. items: $ref: '#/components/schemas/error_details-2' links: type: array description: An array of request-related [HATEOAS links](/docs/api/reference/api-responses/#hateoas-links). readOnly: true items: $ref: '#/components/schemas/link_description' readOnly: true required: - name - message - debug_id link_description: type: object title: Link Description description: The request-related [HATEOAS link](/docs/api/reference/api-responses/#hateoas-links) information. required: - href - rel properties: href: type: string description: The complete target URL. To make the related call, combine the method with this [URI Template-formatted](https://tools.ietf.org/html/rfc6570) link. For pre-processing, include the `$`, `(`, and `)` characters. The `href` is the key HATEOAS component that links a completed call with a subsequent call. rel: type: string description: The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which serves as an ID for a link that unambiguously describes the semantics of the link. See [Link Relations](https://www.iana.org/assignments/link-relations/link-relations.xhtml). method: type: string description: The HTTP method required to make the related call. enum: - GET - POST - PUT - DELETE - HEAD - CONNECT - OPTIONS - PATCH event_type: type: object title: Event Type description: An event type. properties: name: type: string description: The unique event name.
Note: To subscribe to all events, including events as they are added, specify an `*` as the value to represent a wildcard.readOnly: false description: type: string description: A human-readable description of the event. readOnly: true status: type: string description: The status of a webhook event. readOnly: true resource_versions: type: array description: 'Identifier for the event type example: 1.0/2.0 etc.' readOnly: true items: type: string description: The ID for an event type. For example, `1.0` or `2.0`. required: - name patch: type: object title: Patch description: The JSON patch object to apply partial updates to resources. properties: op: type: string description: The operation. enum: - add - remove - replace - move - copy - test path: type: string description: The JSON Pointer to the target document location at which to complete the operation. value: title: Patch Value description: The value to apply. The
remove operation does not require a value.
from:
type: string
description: The JSON Pointer to the target document location from which to move the value. Required for the move operation.
required:
- op
EventTypeList:
type: object
title: Event Type List
description: A list of webhook events.
properties:
event_types:
type: array
description: An array of webhook events.
items:
$ref: '#/components/schemas/event_type'
webhook:
type: object
title: Webhook
description: One or more webhook objects.
properties:
id:
type: string
description: The ID of the webhook.
readOnly: true
url:
type: string
format: uri
description: The URL that is configured to listen on `localhost` for incoming `POST` notification messages that contain event information.
readOnly: false
maxLength: 2048
event_types:
type: array
maxItems: 500
description: An array of events to which to subscribe your webhook. To subscribe to all events, including events as they are added, specify the asterisk wild card. To replace the `event_types` array, specify the asterisk wild card. To list all supported events, list available events.
readOnly: false
items:
$ref: '#/components/schemas/event_type'
links:
type: array
description: An array of request-related [HATEOAS links](/docs/api/reference/api-responses/#hateoas-links/).
readOnly: true
items:
$ref: '#/components/schemas/link_description'
readOnly: true
required:
- url
- event_types
WebhookList:
type: object
title: Webhook List
description: A list of webhooks.
properties:
webhooks:
type: array
description: An array of webhooks.
items:
$ref: '#/components/schemas/webhook'
patch_request:
type: array
title: Patch Request
description: An array of JSON patch objects to apply partial updates to resources.
items:
$ref: '#/components/schemas/patch'
error_details-2:
title: Error Details
type: object
description: The error details. Required for client-side `4XX` errors.
properties:
field:
type: string
description: The field that caused the error. If this field is in the body, set this value to the field's JSON pointer value. Required for client-side errors.
value:
type: string
description: The value of the field that caused the error.
location:
type: string
description: The location of the field that caused the error. Value is `body`, `path`, or `query`.
default: body
issue:
type: string
description: The unique, fine-grained application-level error code.
description:
type: string
description: The human-readable description for an issue. The description can change over the lifetime of an API, so clients must not depend on this value.
required:
- issue
parameters:
anchor_type:
name: anchor_type
in: query
description: Filters the webhooks in the response by an `anchor_id` entity type.
schema:
type: string
enum:
- APPLICATION
- ACCOUNT
default: APPLICATION
webhook_id:
name: webhook_id
in: path
description: The ID of the webhook for which to list subscriptions.
required: true
schema:
type: string
securitySchemes:
Oauth2:
type: oauth2
description: Oauth 2.0 authentication
flows:
clientCredentials:
tokenUrl: /v1/oauth2/token
scopes:
https://uri.paypal.com/services/subscriptions: Manage plan & subscription
externalDocs:
url: https://developer.paypal.com/docs/api/subscriptions/v1/