Use this API to retrieve letters to be printed.
This API lets you:
- get lists of letters allocated to you
- download letter PDFs and metadata
- update and manage letter statuses
- submit and retrieve management information (MI)
This specification represents the in-development 'next' version of the API schema and should be treated as unstable.
The NHS Notify Supplier API is designed for approved print service suppliers who support the delivery of physical letters through the NHS Notify platform.
This API has one access mode. It is:
- restricted access
This access mode is application-restricted, meaning we authenticate and authorise the calling application but not the end user.
Authentication and authorisation of end users is the responsibility of your application.
To use this access mode, use this security pattern:
This API is in production, beta. We are onboarding partners to use it.
We may make additive non-breaking changes to the API without notice, for example the addition of fields to a response or callback, or new optional fields to a request.
This service is a silver service, meaning it is available 24 hours a day, 365 days a year and supported from 8am to 6pm, Monday to Friday excluding bank holidays. For more details, see service levels.
The default rate limit is 300TPS (Transactions Per Second), per app. If you require a higher rate limit please contact us. or raise this during the onboarding process.
This API is a REST-based API.
We follow the JSON:API standard for our request and response schemas.
This API can generate responses in the following format:
application/vnd.api+json- see JSON:API specification
This API will accept request payloads of the following types:
application/vnd.api+json- see JSON:API specificationapplication/json
The Content-Type header may optionally include a charset attribute. If included, it must be set to charset=utf-8 Any other charset value will result in a 406 error response. If omitted then utf-8 is assumed.
If you attempt to send a payload without the Content-Type header set to either of these values then the API will respond with a 415 Unsupported Media Type response.
This API is available on the internet and, indirectly on the Health and Social Care Network (HSCN).
For more details see Network access for APIs.
We use standard HTTP status codes to show whether an API request succeeded or not. They are usually in the range:
- 200 to 299 if it succeeded, including code 202 if it was accepted by an API that needs to wait for further action
- 400 to 499 if it failed because of a client error by your application
- 500 to 599 if it failed because of an error on our server
Errors specific to each API are shown in the Endpoints section, under Response. See our reference guide for more on errors.
Your API-calling application should have a mechanism to automatically try again, for example by giving status information to your end user, before giving up. See our reference guide for more information about error handling.
You might find the following open source resources useful:
| Resource | Description | Links |
|---|---|---|
| Notify Supplier API | Source code for the API proxy, sandbox and specification. | GitHub repo |
| Environment | Base URL |
|---|---|
| Sandbox | https://sandbox.api.service.nhs.uk/nhs-notify-supplier |
| Integration test | https://int.api.service.nhs.uk/nhs-notify-supplier |
| Production | https://api.service.nhs.uk/nhs-notify-supplier |
Our sandbox environment:
- is for early developer testing
- only covers a limited set of scenarios
- is stateless, so does not actually persist any updates
- is open access, so does not allow you to test authorisation
For details of sandbox test scenarios, or to try out sandbox using our 'Try this API' feature, see the documentation for each endpoint.
Alternatively, you can try out the sandbox using our Postman collection.
You can find our postman collection source in our public repository on github.
Our integration test environment:
- is for formal integration sandbox-testing
- is stateful, so persists updates
- includes authorisation via signed JWT authentication
You need to get your software approved by us before it can go live with this API.
Before go-live, you must complete a smoke test in the NHS Notify production environment. The smoke test confirms that your live credentials, connectivity, and print workflow operate correctly end-to-end. It will be carried out in coordination with the NHS Notify Supplier API team.
The process is as follows:
- retrieve and print one or more live test letters through the production API.
- send the printed output to the address provided.
- submit a Management Information (MI) update for verification.
The process is as follows:
- retrieve and print one or more live test letters through the production API.
- send the printed output to the address provided.
- submit a Management Information (MI) update for verification.
The NHS Notify team will configure your production access, review your results, and confirm that your output meets NHS Notify print specifications.
You need to get your software approved by us before it can go live with this API. You will also need to be an approved NHS letter supplier under the framework agreement and nominate your technical and operational contacts.
The NHS Notify API is used to send messages to citizens via NHS App, email, text message or letter.
For help and support connecting to our APIs and to join our developer community, see Help and support building healthcare software.