openapi: 3.2.0 info: title: Notification Service [$] API description: 'The Push Notifications Service handles delivering notifications via webhook to subscribers and manages the registration of subscribers for specific events. This API caters to various functions including updating, deleting, and creating registration details, as well as rotating the shared secret for secure communication.

Pricing:
This API is a premium API service and usage of the API is billed. Please contact the API support team [here](mailto:apisupport@pexa.com.au) for more information.

This API uses the OAuth 2.0 protocol for authentication and authorization. It supports the following OAuth 2.0 flow:
- Client Credentials

Scopes are used to grant an application different levels of access to data. Each API endpoint will require specific scopes.
The scopes are listed against each API endpoint.

For more information, see the following guides:
- [PEXA Webhooks Guide](../../docs/definitions/webhooks/)
- [Authentication](../../../Exchange/docs/documentation/) ' version: 1.0.0 contact: email: apisupport@pexa.com.au servers: - url: https://api.pexa.com.au description: Production server - url: https://api-tst.pexalabs.com.au description: Non-Prod server tags: - name: Notification Service [$] paths: {} webhooks: SubscriberNotification: post: description: Subscriber notification payload operationId: SubscriberNotification requestBody: content: application/json: schema: $ref: '#/components/schemas/SubscriberNotificationPayload' responses: '200': description: Callback successfully processed content: application/json: schema: type: object properties: status: type: string example: '200' message: type: - string - 'null' example: Callback successfully processed data: type: - string - 'null' example: Some data '400': description: Bad Request content: application/json: schema: type: object properties: status: type: string example: '400' message: type: - string - 'null' example: Bad Request data: type: - string - 'null' example: Some data '404': description: Not Found content: application/json: schema: type: object properties: status: type: string example: '404' message: type: - string - 'null' example: Not Found data: type: - string - 'null' example: Some data '408': description: Request Timeout content: application/json: schema: type: object properties: status: type: string example: '408' message: type: - string - 'null' example: Request Timeout data: type: - string - 'null' example: Some data '418': description: I'm a teapot content: application/json: schema: type: object properties: status: type: string example: '418' message: type: - string - 'null' example: I'm a teapot data: type: - string - 'null' example: Some data '429': description: Too Many Requests content: application/json: schema: type: object properties: status: type: string example: '429' message: type: - string - 'null' example: Too Many Requests data: type: - string - 'null' example: Some data '500': description: Internal Server Error content: application/json: schema: type: object properties: status: type: string example: '500' message: type: - string - 'null' example: Internal Server Error data: type: - string - 'null' example: Some data '502': description: Bad Gateway content: application/json: schema: type: object properties: status: type: string example: '502' message: type: - string - 'null' example: Bad Gateway data: type: - string - 'null' example: Some data '503': description: Service Unavailable content: application/json: schema: type: object properties: status: type: string example: '503' message: type: - string - 'null' example: Service Unavailable data: type: - string - 'null' example: Some data '504': description: Gateway Timeout content: application/json: schema: type: object properties: status: type: string example: '504' message: type: - string - 'null' example: Gateway Timeout data: type: - string - 'null' example: Some data tags: - Notification Service [$] NonSubscriberNotification: post: description: Non-subscriber notification payload operationId: nonSubscriberNotification requestBody: content: application/json: schema: $ref: '#/components/schemas/NonSubscriberNotificationPayload' responses: '200': description: Callback successfully processed content: application/json: schema: type: object properties: status: type: string example: '200' message: type: - string - 'null' example: Callback successfully processed data: type: - string - 'null' example: Some data '400': description: Bad Request content: application/json: schema: type: object properties: status: type: string example: '400' message: type: - string - 'null' example: Bad Request data: type: - string - 'null' example: Some data '404': description: Not Found content: application/json: schema: type: object properties: status: type: string example: '404' message: type: - string - 'null' example: Not Found data: type: - string - 'null' example: Some data '408': description: Request Timeout content: application/json: schema: type: object properties: status: type: string example: '408' message: type: - string - 'null' example: Request Timeout data: type: - string - 'null' example: Some data '418': description: I'm a teapot content: application/json: schema: type: object properties: status: type: string example: '418' message: type: - string - 'null' example: I'm a teapot data: type: - string - 'null' example: Some data '429': description: Too Many Requests content: application/json: schema: type: object properties: status: type: string example: '429' message: type: - string - 'null' example: Too Many Requests data: type: - string - 'null' example: Some data '500': description: Internal Server Error content: application/json: schema: type: object properties: status: type: string example: '500' message: type: - string - 'null' example: Internal Server Error data: type: - string - 'null' example: Some data '502': description: Bad Gateway content: application/json: schema: type: object properties: status: type: string example: '502' message: type: - string - 'null' example: Bad Gateway data: type: - string - 'null' example: Some data '503': description: Service Unavailable content: application/json: schema: type: object properties: status: type: string example: '503' message: type: - string - 'null' example: Service Unavailable data: type: - string - 'null' example: Some data '504': description: Gateway Timeout content: application/json: schema: type: object properties: status: type: string example: '504' message: type: - string - 'null' example: Gateway Timeout data: type: - string - 'null' example: Some data tags: - Notification Service [$] components: schemas: SubscriberNotificationPayload: type: object properties: timestamp: type: string format: date-time description: The date and time the event occurred example: '2024-06-04T03:18:58Z' type: type: string description: Specifies the category and the event type and follows the format of . example: Workspace.CHECKLIST_CHECKED data: type: object description: An object containing the details of the events that triggered the notification properties: workspaceId: type: string description: The PEXA Workspace Identifier example: PEXA000000000 subscriberId: type: string description: The ID of the subscriber example: '100' subscriberReferences: type: array description: An array of subscriber references that are relevant to the event. items: type: object description: Subscriber reference or identifier provided by third parties like financial institutions. Used to link a PEXA Workspace to an integrators system properties: subscriberReference: type: string description: The subscriber reference example: '100' workspaceRole: type: string description: The role of the subscriber in the workspace example: Incoming Mortgagee additionalReferences: type: array description: An array of additional references that are relevant to the event. For subscriber notifications, this will contain a single reference items: type: object description: Additional reference or identifier provided by third parties like financial institutions. Used to link a PEXA Workspace to an integrators system properties: identifier: type: string description: The identifier example: '51' type: type: string description: The type of reference. example: CHECKLIST_ITEM_ID NonSubscriberNotificationPayload: type: object properties: timestamp: type: string format: date-time description: The date and time the event occurred example: '2024-06-04T03:18:58Z' type: type: string description: Specifies the category and the event type and follows the format of . example: Workspace.CHECKLIST_CHECKED data: type: object description: An object containing the details of the events that triggered the notification properties: workspaceId: type: string description: The PEXA Workspace Identifier example: PEXA000000000 additionalReferences: type: array description: An array of additional references that are relevant to the event. For non-subscriber notifications, this will contain a single reference items: type: object description: Additional references. properties: identifier: type: string description: The identifier example: '51' type: type: string description: The type of reference. example: CHECKLIST_ITEM_ID links: type: array description: A list of links to get further information about the workspace that triggered the notification items: type: object description: A link to get further information about the workspace that triggered the notification. Each link follows the HATEOAS standard properties: href: type: string description: The URL to get the workspace details example: https://example.com/workspace123 rel: type: string description: Provides context to the type of information that can be received from the href example: self type: type: string description: The type of HTTP request to be used for the href example: GET securitySchemes: oauth2: type: oauth2 flows: clientCredentials: tokenUrl: https://auth.pexa.com.au/oauth/token scopes: view:notification_registrations: View registrations create:notification_registrations: Create registrations edit:notification_registrations: Edit registrations delete:notification_registrations: Delete registrations create:notification_registrations_secret_rotation: Rotate shared secret