Platform Notification Service

Platform Notification Service

Platform Notification Service (PNS) enables server-to-server communication by allowing the Platform to send messages, known as Notices, to Tools outside the scope of an active user session. Tools can register a "webhook" or handler endpoint using PNS to receive specific types of Notices, facilitating seamless integration and automation.

See also endpoint-level documentation and Official (1EdTech) documentation.

Tool Configuration

Make sure the tool has the required https://purl.imsglobal.org/spec/lti/scope/noticehandlers scope.

Dynamic Registration

Dynamic Registration Scopes

Manual Registration

Manual Registration Scopes

Registering Notice Handlers

To register a Notice Handler (webhook), the tool has to call the platform notification service endpoint. The endpoint URL is advertised in every LTI launch in the https://purl.imsglobal.org/spec/lti/claim/platformnotificationservice claim:

...
 "https://purl.imsglobal.org/spec/lti/claim/platformnotificationservice": {
    "service_versions": [
      "1.0"
    ],
    "platform_notification_service_url": "http://canvas-web.inseng.test/api/lti/notice-handlers/106",
    "scope": [
      "https://purl.imsglobal.org/spec/lti/scope/noticehandlers"
    ],
    "notice_types_supported": [
      "LtiHelloWorldNotice",
      "LtiAssetProcessorSubmissionNotice",
      "LtiContextCopyNotice"
    ]
  },
...

Register the notice handler:

Response:

Get registered notice handlers:

Response:

Notes:

  • Use LTI Advantage token for authentication.

  • You can have only one notice handler for a given notice type.

  • You can remove the notice handler by setting "" as a handler.

  • Notice handler endpoint must be public, without any authentication.

  • Notice handler domain must match the domain of the tool.

  • Canvas does not retry delivery of a notice if the notice handler is unavailable.

Receiving Notices

Canvas sends notices with POST to the registered handlers. The body contains an array of notices. Every notice is a signed JWT. Example body:

LtiContextCopyNotice

LtiContextCopyNotice is sent to registered notice handlers when course content is imported to a new or existing course.

Example notice content:

Claims

context: metadata about the new LTI Context (Course)

origin_contexts: array with 1 element: LTI Context id of the source course


This documentation is generated directly from the Canvas LMS source code, available on Github.

Last updated

Was this helpful?