Skip to content

NHSDigital/nhs-notify-digital-letters

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NHS Notify Digital Letters

CI/CD Pull Request Quality Gate Status

This repository contains the infrastructure and code required to deliver letters digitally that would traditionally be printed and posted.

NHS Trusts currently generate a high volume of letters for patients and other care providers, most of which are still sent in printed form. This project enables those letters to be delivered through the NHS App in digital form, with a fallback to printed letter.

Table of Contents

Schema generation

Located in src directory.

Setup

Clone the repository

git clone https://github.com/NHSDigital/nhs-notify-digital-letters.git
cd nhs-notify-digital-letters
code project.code-workspace

Reopen with container

make debug

Prerequisites

The following software packages, or their equivalents, are expected to be installed and configured:

Note

The version of GNU make available by default on macOS is earlier than 3.82. You will need to upgrade it or certain make tasks will fail. On macOS, you will need Homebrew installed, then to install make, like so:

brew install make

You will then see instructions to fix your $PATH variable to make the newly installed version available. If you are using dotfiles, this is all done for you.

  • GNU sed and GNU grep are required for the scripted command-line output processing,
  • GNU coreutils and GNU binutils may be required to build dependencies like Python, which may need to be compiled during installation,

Note

For macOS users, installation of the GNU toolchain has been scripted and automated as part of the dotfiles project. Please see this script for details.

  • Python required to run Git hooks,
  • jq a lightweight and flexible command-line JSON processor.

Configuration

Installation and configuration of the toolchain dependencies

make config

Note that the make config command will also build the flattened event schemas and auto-generate a Typescript type and JS validator code for each event. See the typescript-schema-generator package for more details.

Usage

Testing

There are make tasks for you to configure to run your tests. Run make test to see how they work. You should be able to use the same entry points for local development as in your CI pipeline.

CloudEvents Schemas

This section contains automatically generated documentation for CloudEvents schemas.

Common Schemas (Shared Across All Domains)

No common schemas defined yet.

Digital Letters Domain

Purpose: Production domain for digital letters events

Version: 2025-10-draft

Schema Type Source (YAML) Published Schema Documentation
Core.request.submitted Data.v1 src/digital-letters/2025-10-draft/data/core.request.submitted-data.v1.schema.yaml schemas/digital-letters/2025-10-draft/data/core.request.submitted-data.v1.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/data/core.request.submitted-data.v1.schema.md
Digital Letter Base Data src/digital-letters/2025-10-draft/data/digital-letter-base-data.schema.yaml schemas/digital-letters/2025-10-draft/data/digital-letter-base-data.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/data/digital-letter-base-data.schema.md
Digital Letters Digital Letter Read Data src/digital-letters/2025-10-draft/data/digital-letters-digital-letter-read-data.schema.yaml schemas/digital-letters/2025-10-draft/data/digital-letters-digital-letter-read-data.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/data/digital-letters-digital-letter-read-data.schema.md
Digital Letters Mesh Inbox Message Acknowledged Data src/digital-letters/2025-10-draft/data/digital-letters-mesh-inbox-message-acknowledged-data.schema.yaml schemas/digital-letters/2025-10-draft/data/digital-letters-mesh-inbox-message-acknowledged-data.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/data/digital-letters-mesh-inbox-message-acknowledged-data.schema.md
Digital Letters Mesh Inbox Message Downloaded Data src/digital-letters/2025-10-draft/data/digital-letters-mesh-inbox-message-downloaded-data.schema.yaml schemas/digital-letters/2025-10-draft/data/digital-letters-mesh-inbox-message-downloaded-data.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/data/digital-letters-mesh-inbox-message-downloaded-data.schema.md
Digital Letters Mesh Inbox Message Received Data src/digital-letters/2025-10-draft/data/digital-letters-mesh-inbox-message-received-data.schema.yaml schemas/digital-letters/2025-10-draft/data/digital-letters-mesh-inbox-message-received-data.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/data/digital-letters-mesh-inbox-message-received-data.schema.md
Digital Letters Message Request Rejected Data src/digital-letters/2025-10-draft/data/digital-letters-message-request-rejected-data.schema.yaml schemas/digital-letters/2025-10-draft/data/digital-letters-message-request-rejected-data.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/data/digital-letters-message-request-rejected-data.schema.md
Digital Letters Message Request Skipped Data src/digital-letters/2025-10-draft/data/digital-letters-message-request-skipped-data.schema.yaml schemas/digital-letters/2025-10-draft/data/digital-letters-message-request-skipped-data.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/data/digital-letters-message-request-skipped-data.schema.md
Digital Letters Message Request Submitted Data src/digital-letters/2025-10-draft/data/digital-letters-message-request-submitted-data.schema.yaml schemas/digital-letters/2025-10-draft/data/digital-letters-message-request-submitted-data.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/data/digital-letters-message-request-submitted-data.schema.md
Digital Letters Pdm Resource Available Data src/digital-letters/2025-10-draft/data/digital-letters-pdm-resource-available-data.schema.yaml schemas/digital-letters/2025-10-draft/data/digital-letters-pdm-resource-available-data.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/data/digital-letters-pdm-resource-available-data.schema.md
Digital Letters Pdm Resource Retries Exceeded Data src/digital-letters/2025-10-draft/data/digital-letters-pdm-resource-retries-exceeded-data.schema.yaml schemas/digital-letters/2025-10-draft/data/digital-letters-pdm-resource-retries-exceeded-data.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/data/digital-letters-pdm-resource-retries-exceeded-data.schema.md
Digital Letters Pdm Resource Submission Rejected Data src/digital-letters/2025-10-draft/data/digital-letters-pdm-resource-submission-rejected-data.schema.yaml schemas/digital-letters/2025-10-draft/data/digital-letters-pdm-resource-submission-rejected-data.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/data/digital-letters-pdm-resource-submission-rejected-data.schema.md
Digital Letters Pdm Resource Submitted Data src/digital-letters/2025-10-draft/data/digital-letters-pdm-resource-submitted-data.schema.yaml schemas/digital-letters/2025-10-draft/data/digital-letters-pdm-resource-submitted-data.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/data/digital-letters-pdm-resource-submitted-data.schema.md
Digital Letters Pdm Resource Unavailable Data src/digital-letters/2025-10-draft/data/digital-letters-pdm-resource-unavailable-data.schema.yaml schemas/digital-letters/2025-10-draft/data/digital-letters-pdm-resource-unavailable-data.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/data/digital-letters-pdm-resource-unavailable-data.schema.md
Digital Letters Print Letter Transitioned Data src/digital-letters/2025-10-draft/data/digital-letters-print-letter-transitioned-data.schema.yaml schemas/digital-letters/2025-10-draft/data/digital-letters-print-letter-transitioned-data.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/data/digital-letters-print-letter-transitioned-data.schema.md
Digital Letters Queue Item Dequeued Data src/digital-letters/2025-10-draft/data/digital-letters-queue-item-dequeued-data.schema.yaml schemas/digital-letters/2025-10-draft/data/digital-letters-queue-item-dequeued-data.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/data/digital-letters-queue-item-dequeued-data.schema.md
Digital Letters Queue Item Enqueued Data src/digital-letters/2025-10-draft/data/digital-letters-queue-item-enqueued-data.schema.yaml schemas/digital-letters/2025-10-draft/data/digital-letters-queue-item-enqueued-data.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/data/digital-letters-queue-item-enqueued-data.schema.md
Digital Letters Queue Item Removed Data src/digital-letters/2025-10-draft/data/digital-letters-queue-item-removed-data.schema.yaml schemas/digital-letters/2025-10-draft/data/digital-letters-queue-item-removed-data.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/data/digital-letters-queue-item-removed-data.schema.md
Digital Letters Reporting Generate Report Data src/digital-letters/2025-10-draft/data/digital-letters-reporting-generate-report-data.schema.yaml schemas/digital-letters/2025-10-draft/data/digital-letters-reporting-generate-report-data.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/data/digital-letters-reporting-generate-report-data.schema.md
Digital Letters Reporting Report Generated Data src/digital-letters/2025-10-draft/data/digital-letters-reporting-report-generated-data.schema.yaml schemas/digital-letters/2025-10-draft/data/digital-letters-reporting-report-generated-data.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/data/digital-letters-reporting-report-generated-data.schema.md
Digital Letters Reporting Report Sent Data src/digital-letters/2025-10-draft/data/digital-letters-reporting-report-sent-data.schema.yaml schemas/digital-letters/2025-10-draft/data/digital-letters-reporting-report-sent-data.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/data/digital-letters-reporting-report-sent-data.schema.md
Core src/digital-letters/2025-10-draft/defs/core.schema.yaml schemas/digital-letters/2025-10-draft/defs/core.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/defs/core.schema.md
Mesh src/digital-letters/2025-10-draft/defs/mesh.schema.yaml schemas/digital-letters/2025-10-draft/defs/mesh.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/defs/mesh.schema.md
Message Id src/digital-letters/2025-10-draft/defs/message-id.schema.yaml schemas/digital-letters/2025-10-draft/defs/message-id.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/defs/message-id.schema.md
Message Status src/digital-letters/2025-10-draft/defs/message-status.schema.yaml schemas/digital-letters/2025-10-draft/defs/message-status.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/defs/message-status.schema.md
Pdm src/digital-letters/2025-10-draft/defs/pdm.schema.yaml schemas/digital-letters/2025-10-draft/defs/pdm.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/defs/pdm.schema.md
Print src/digital-letters/2025-10-draft/defs/print.schema.yaml schemas/digital-letters/2025-10-draft/defs/print.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/defs/print.schema.md
Reporting src/digital-letters/2025-10-draft/defs/reporting.schema.yaml schemas/digital-letters/2025-10-draft/defs/reporting.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/defs/reporting.schema.md
Requests src/digital-letters/2025-10-draft/defs/requests.schema.yaml schemas/digital-letters/2025-10-draft/defs/requests.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/defs/requests.schema.md
Some.object src/digital-letters/2025-10-draft/defs/some.object.schema.yaml schemas/digital-letters/2025-10-draft/defs/some.object.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/defs/some.object.schema.md
Profile src/digital-letters/2025-10-draft/digital-letters-event-bus-profile.schema.yaml schemas/digital-letters/2025-10-draft/digital-letters-event-bus-profile.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/digital-letters-event-bus-profile.schema.md
Profile src/digital-letters/2025-10-draft/digital-letters-fhir-profile.schema.yaml schemas/digital-letters/2025-10-draft/digital-letters-fhir-profile.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/digital-letters-fhir-profile.schema.md
Profile src/digital-letters/2025-10-draft/digital-letters-letter-profile.schema.yaml schemas/digital-letters/2025-10-draft/digital-letters-letter-profile.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/digital-letters-letter-profile.schema.md
Profile src/digital-letters/2025-10-draft/digital-letters-mesh-profile.schema.yaml schemas/digital-letters/2025-10-draft/digital-letters-mesh-profile.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/digital-letters-mesh-profile.schema.md
Profile src/digital-letters/2025-10-draft/digital-letters-messages-profile.schema.yaml schemas/digital-letters/2025-10-draft/digital-letters-messages-profile.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/digital-letters-messages-profile.schema.md
Profile src/digital-letters/2025-10-draft/digital-letters-pdm-profile.schema.yaml schemas/digital-letters/2025-10-draft/digital-letters-pdm-profile.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/digital-letters-pdm-profile.schema.md
Profile src/digital-letters/2025-10-draft/digital-letters-print-profile.schema.yaml schemas/digital-letters/2025-10-draft/digital-letters-print-profile.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/digital-letters-print-profile.schema.md
Profile src/digital-letters/2025-10-draft/digital-letters-profile.schema.yaml schemas/digital-letters/2025-10-draft/digital-letters-profile.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/digital-letters-profile.schema.md
Profile src/digital-letters/2025-10-draft/digital-letters-queue-profile.schema.yaml schemas/digital-letters/2025-10-draft/digital-letters-queue-profile.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/digital-letters-queue-profile.schema.md
Profile src/digital-letters/2025-10-draft/digital-letters-reporting-profile.schema.yaml schemas/digital-letters/2025-10-draft/digital-letters-reporting-profile.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/digital-letters-reporting-profile.schema.md
Profile src/digital-letters/2025-10-draft/digital-letters-viewer-profile.schema.yaml schemas/digital-letters/2025-10-draft/digital-letters-viewer-profile.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/digital-letters-viewer-profile.schema.md
uk.nhs.notify.digital.letters.letter.available.v1 src/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.letter.available.v1.schema.yaml schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.letter.available.v1.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.letter.available.v1.schema.md
uk.nhs.notify.digital.letters.mesh.inbox.message.acknowledged.v1 src/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.mesh.inbox.message.acknowledged.v1.schema.yaml schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.mesh.inbox.message.acknowledged.v1.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.mesh.inbox.message.acknowledged.v1.schema.md
uk.nhs.notify.digital.letters.mesh.inbox.message.downloaded.v1 src/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.mesh.inbox.message.downloaded.v1.schema.yaml schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.mesh.inbox.message.downloaded.v1.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.mesh.inbox.message.downloaded.v1.schema.md
uk.nhs.notify.digital.letters.mesh.inbox.message.received.v1 src/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.mesh.inbox.message.received.v1.schema.yaml schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.mesh.inbox.message.received.v1.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.mesh.inbox.message.received.v1.schema.md
uk.nhs.notify.digital.letters.mesh.report.sent.v1 src/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.mesh.report.sent.v1.schema.yaml schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.mesh.report.sent.v1.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.mesh.report.sent.v1.schema.md
uk.nhs.notify.digital.letters.messages.request.rejected.v1 src/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.messages.request.rejected.v1.schema.yaml schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.messages.request.rejected.v1.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.messages.request.rejected.v1.schema.md
uk.nhs.notify.digital.letters.messages.request.skipped.v1 src/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.messages.request.skipped.v1.schema.yaml schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.messages.request.skipped.v1.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.messages.request.skipped.v1.schema.md
uk.nhs.notify.digital.letters.messages.request.submitted.v1 src/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.messages.request.submitted.v1.schema.yaml schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.messages.request.submitted.v1.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.messages.request.submitted.v1.schema.md
uk.nhs.notify.digital.letters.pdm.resource.available.v1 src/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.pdm.resource.available.v1.schema.yaml schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.pdm.resource.available.v1.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.pdm.resource.available.v1.schema.md
uk.nhs.notify.digital.letters.pdm.resource.retries.exceeded.v1 src/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.pdm.resource.retries.exceeded.v1.schema.yaml schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.pdm.resource.retries.exceeded.v1.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.pdm.resource.retries.exceeded.v1.schema.md
uk.nhs.notify.digital.letters.pdm.resource.submission.rejected.v1 src/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.pdm.resource.submission.rejected.v1.schema.yaml schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.pdm.resource.submission.rejected.v1.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.pdm.resource.submission.rejected.v1.schema.md
uk.nhs.notify.digital.letters.pdm.resource.submitted.v1 src/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.pdm.resource.submitted.v1.schema.yaml schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.pdm.resource.submitted.v1.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.pdm.resource.submitted.v1.schema.md
uk.nhs.notify.digital.letters.pdm.resource.unavailable.v1 src/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.pdm.resource.unavailable.v1.schema.yaml schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.pdm.resource.unavailable.v1.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.pdm.resource.unavailable.v1.schema.md
uk.nhs.notify.digital.letters.print.letter.transitioned.v1 src/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.print.letter.transitioned.v1.schema.yaml schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.print.letter.transitioned.v1.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.print.letter.transitioned.v1.schema.md
uk.nhs.notify.digital.letters.print.printed.v1 src/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.print.printed.v1.schema.yaml schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.print.printed.v1.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.print.printed.v1.schema.md
uk.nhs.notify.digital.letters.queue.item.dequeued.v1 src/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.queue.item.dequeued.v1.schema.yaml schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.queue.item.dequeued.v1.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.queue.item.dequeued.v1.schema.md
uk.nhs.notify.digital.letters.queue.item.enqueued.v1 src/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.queue.item.enqueued.v1.schema.yaml schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.queue.item.enqueued.v1.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.queue.item.enqueued.v1.schema.md
uk.nhs.notify.digital.letters.queue.item.removed.v1 src/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.queue.item.removed.v1.schema.yaml schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.queue.item.removed.v1.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.queue.item.removed.v1.schema.md
uk.nhs.notify.digital.letters.reporting.generate.report.v1 src/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.reporting.generate.report.v1.schema.yaml schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.reporting.generate.report.v1.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.reporting.generate.report.v1.schema.md
uk.nhs.notify.digital.letters.reporting.report.generated.v1 src/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.reporting.report.generated.v1.schema.yaml schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.reporting.report.generated.v1.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.reporting.report.generated.v1.schema.md
uk.nhs.notify.digital.letters.reporting.report.sent.v1 src/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.reporting.report.sent.v1.schema.yaml schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.reporting.report.sent.v1.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.reporting.report.sent.v1.schema.md
uk.nhs.notify.digital.letters.viewer.digital.letter.read.v1 src/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.viewer.digital.letter.read.v1.schema.yaml schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.viewer.digital.letter.read.v1.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.viewer.digital.letter.read.v1.schema.md
uk.nhs.notify.supplierapi.letter.printed.v1 src/digital-letters/2025-10-draft/events/uk.nhs.notify.supplierapi.letter.printed.v1.schema.yaml schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.supplierapi.letter.printed.v1.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/events/uk.nhs.notify.supplierapi.letter.printed.v1.schema.md
Nhs Notify Document Reference src/digital-letters/2025-10-draft/nhs-notify-document-reference.schema.yaml schemas/digital-letters/2025-10-draft/nhs-notify-document-reference.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/nhs-notify-document-reference.schema.md
Profile src/digital-letters/2025-10-draft/supplierapi-profile.schema.yaml schemas/digital-letters/2025-10-draft/supplierapi-profile.schema.json ../../docs/cloudevents/digital-letters/2025-10-draft/supplierapi-profile.schema.md

Example Events

Event Name Event Instance Documentation
Uk.nhs.notify.digital.letters.letter.available.v1 ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.letter.available.v1-event.json ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.letter.available.v1-event.md
Uk.nhs.notify.digital.letters.mesh.inbox.message.acknowledged.v1 ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.mesh.inbox.message.acknowledged.v1-event.json ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.mesh.inbox.message.acknowledged.v1-event.md
Uk.nhs.notify.digital.letters.mesh.inbox.message.downloaded.v1 ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.mesh.inbox.message.downloaded.v1-event.json ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.mesh.inbox.message.downloaded.v1-event.md
Uk.nhs.notify.digital.letters.mesh.inbox.message.received.v1 ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.mesh.inbox.message.received.v1-event.json ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.mesh.inbox.message.received.v1-event.md
Uk.nhs.notify.digital.letters.mesh.report.sent.v1 ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.mesh.report.sent.v1-event.json ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.mesh.report.sent.v1-event.md
Uk.nhs.notify.digital.letters.messages.request.rejected.v1 ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.messages.request.rejected.v1-event.json ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.messages.request.rejected.v1-event.md
Uk.nhs.notify.digital.letters.messages.request.skipped.v1 ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.messages.request.skipped.v1-event.json ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.messages.request.skipped.v1-event.md
Uk.nhs.notify.digital.letters.messages.request.submitted.v1 ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.messages.request.submitted.v1-event.json ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.messages.request.submitted.v1-event.md
Uk.nhs.notify.digital.letters.pdm.resource.available.v1 ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.pdm.resource.available.v1-event.json ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.pdm.resource.available.v1-event.md
Uk.nhs.notify.digital.letters.pdm.resource.retries.exceeded.v1 ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.pdm.resource.retries.exceeded.v1-event.json ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.pdm.resource.retries.exceeded.v1-event.md
Uk.nhs.notify.digital.letters.pdm.resource.submission.rejected.v1 ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.pdm.resource.submission.rejected.v1-event.json ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.pdm.resource.submission.rejected.v1-event.md
Uk.nhs.notify.digital.letters.pdm.resource.submitted.v1 ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.pdm.resource.submitted.v1-event.json ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.pdm.resource.submitted.v1-event.md
Uk.nhs.notify.digital.letters.pdm.resource.unavailable.v1 ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.pdm.resource.unavailable.v1-event.json ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.pdm.resource.unavailable.v1-event.md
Uk.nhs.notify.digital.letters.print.letter.transitioned.v1 ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.print.letter.transitioned.v1-event.json ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.print.letter.transitioned.v1-event.md
Uk.nhs.notify.digital.letters.print.printed.v1 ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.print.printed.v1-event.json ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.print.printed.v1-event.md
Uk.nhs.notify.digital.letters.queue.item.dequeued.v1 ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.queue.item.dequeued.v1-event.json ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.queue.item.dequeued.v1-event.md
Uk.nhs.notify.digital.letters.queue.item.enqueued.v1 ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.queue.item.enqueued.v1-event.json ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.queue.item.enqueued.v1-event.md
Uk.nhs.notify.digital.letters.queue.item.removed.v1 ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.queue.item.removed.v1-event.json ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.queue.item.removed.v1-event.md
Uk.nhs.notify.digital.letters.reporting.generate.report.v1 ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.reporting.generate.report.v1-event.json ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.reporting.generate.report.v1-event.md
Uk.nhs.notify.digital.letters.reporting.report.generated.v1 ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.reporting.report.generated.v1-event.json ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.reporting.report.generated.v1-event.md
Uk.nhs.notify.digital.letters.reporting.report.sent.v1 ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.reporting.report.sent.v1-event.json ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.reporting.report.sent.v1-event.md
Uk.nhs.notify.digital.letters.viewer.digital.letter.read.v1 ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.viewer.digital.letter.read.v1-event.json ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.digital.letters.viewer.digital.letter.read.v1-event.md
Uk.nhs.notify.supplierapi.letter.printed.v1 ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.supplierapi.letter.printed.v1-event.json ../../docs/cloudevents/digital-letters/2025-10-draft/example-events/uk.nhs.notify.supplierapi.letter.printed.v1-event.md

Design

Diagrams

Digital Letters Process

Contacts

NHS Notify Team

Ross Buggins - ross.buggins@nhs.net

Thomas D'Roza - tom.droza2@nhs.net

Licence

The source code for the repository's documentation can be found under /docs and is deployed by the CD pipeline to NHS Notify Digital Letters.