You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: specification/api/components/documentation/APIDescription.md
+59-23Lines changed: 59 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,38 +1,52 @@
1
1
## Overview
2
2
3
-
API for letter suppliers to integrate with NHS Notify.
3
+
Use this API to retrieve letters to be printed.
4
4
5
5
This API lets you:
6
6
7
-
*Get lists of letters allocated to you
8
-
*Download letter PDFs and metadata
9
-
*Update and manage letter statuses
10
-
*Submit and retrieve management information (MI)
7
+
*get lists of letters allocated to you
8
+
*download letter PDFs and metadata
9
+
*update and manage letter statuses
10
+
*submit and retrieve management information (MI)
11
11
12
12
This specification represents the in-development 'next' version of the API schema
13
-
and should be treated as unstable
14
-
15
-
Use this API to retrieve letters to be printed
13
+
and should be treated as unstable.
16
14
17
15
## Who can use this API
18
16
19
-
The NHS Notify Supplier API is designed for approved print service suppliers who support the delivery of physical letters through the [NHS Notify](https://digital.nhs.uk/services/nhs-notify) platform.
17
+
The NHS Notify Supplier API is designed for approved print service suppliers who support the delivery of physical letters through the [NHS Notify](https://digital.nhs.uk/services/nhs-notify) platform.
20
18
21
-
## Related APIs
19
+
## Access Modes
22
20
23
-
The [NHS Notify API](https://digital.nhs.uk/developer/api-catalogue/nhs-notify) is used to send messages to citizens via NHS App, email, text message or letter.
21
+
This API has one access mode. It is:
22
+
23
+
* restricted access
24
+
25
+
### Restricted access
26
+
27
+
This access mode is [application-restricted](https://digital.nhs.uk/developer/guides-and-documentation/security-and-authorisation#application-restricted-apis), meaning we authenticate and authorise the calling application but not the end user.
28
+
29
+
Authentication and authorisation of end users is the responsibility of your application.
30
+
31
+
To use this access mode, use this security pattern:
32
+
33
+
*[Application-restricted RESTful API - signed JWT authentication](https://digital.nhs.uk/developer/guides-and-documentation/security-and-authorisation/application-restricted-restful-apis-signed-jwt-authentication)
24
34
25
35
## API status and roadmap
26
36
27
37
This API is [in production, beta](https://digital.nhs.uk/developer/guides-and-documentation/reference-guide#statuses). We are onboarding partners to use it.
28
38
29
39
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.
30
40
31
-
## Service Level
41
+
## Service level
32
42
33
43
This service is a [silver](https://digital.nhs.uk/services/reference-guide#service-levels) 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.
34
44
For more details, see [service levels](https://digital.nhs.uk/developer/guides-and-documentation/reference-guide#service-levels).
35
45
46
+
## Rate limits
47
+
48
+
The default rate limit is 300TPS (Transactions Per Second), per app. If you require a higher rate limit please [contact us](https://digital.nhs.uk/developer/help-and-support). or raise this during the onboarding process.
49
+
36
50
## Technology
37
51
38
52
This API is a [REST-based](https://digital.nhs.uk/developer/guides-and-documentation/our-api-technologies#basic-rest) API.
@@ -62,15 +76,25 @@ This API is available on the internet and, indirectly on the [Health and Social
62
76
63
77
For more details see [Network access for APIs](https://digital.nhs.uk/developer/guides-and-documentation/network-access-for-apis).
64
78
65
-
## Security and authorisation
79
+
## Errors
66
80
67
-
This API is [application-restricted](https://digital.nhs.uk/developer/guides-and-documentation/security-and-authorisation#application-restricted-apis), meaning we authenticate the calling application but not the end user.
81
+
We use standard HTTP status codes to show whether an API request succeeded or not. They are usually in the range:
68
82
69
-
Authentication and authorisation of end users is the responsibility of your application.
83
+
* 200 to 299 if it succeeded, including code 202 if it was accepted by an API that needs to wait for further action
84
+
* 400 to 499 if it failed because of a client error by your application
85
+
* 500 to 599 if it failed because of an error on our server
70
86
71
-
To access this API, use the following security pattern:
87
+
Errors specific to each API are shown in the Endpoints section, under Response. See our [reference guide](https://digital.nhs.uk/developer/guides-and-documentation/reference-guide#http-status-codes) for more on errors.
72
88
73
-
*[Application-restricted RESTful API - signed JWT authentication](https://digital.nhs.uk/developer/guides-and-documentation/security-and-authorisation/application-restricted-restful-apis-signed-jwt-authentication)
89
+
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](https://digital.nhs.uk/developer/guides-and-documentation/reference-guide#error-handling) for more information about error handling.
90
+
91
+
## Open source
92
+
93
+
You might find the following [open source](https://digital.nhs.uk/developer/guides-and-documentation/reference-guide#open-source) resources useful:
For details of sandbox test scenarios, or to try out sandbox using our 'Try this API' feature, see the documentation for each endpoint.
93
117
94
-
Alternatively, you can try out the sandbox using our Postman collection
118
+
Alternatively, you can try out the sandbox using our Postman collection.
95
119
96
120
You can find our postman collection source in our [public repository on github](https://github.com/NHSDigital/nhs-notify-supplier-api/tree/main/postman).
97
121
@@ -105,16 +129,28 @@ Our integration test environment:
105
129
106
130
You need to get your software approved by us before it can go live with this API.
107
131
108
-
You will also need to follow our steps to - TBD
109
-
110
132
### Production smoke testing
111
133
112
134
Before go-live, you must complete a smoke test in the NHS Notify production environment.
113
135
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.
114
-
You will retrieve and print one or more live test letters through the production API, send the printed output to the address provided, and submit a Management Information (MI) update for verification.
136
+
137
+
The process is as follows:
138
+
139
+
* retrieve and print one or more live test letters through the production API.
140
+
* send the printed output to the address provided.
141
+
* submit a Management Information (MI) update for verification.
142
+
115
143
The NHS Notify team will configure your production access, review your results, and confirm that your output meets NHS Notify print specifications.
116
144
117
-
###Onboarding
145
+
## Onboarding
118
146
119
147
You need to get your software approved by us before it can go live with this API.
120
-
You will also need to be an approved NHS letter supplier under the framework agreement (ADD link) and nominate your technical and operational contacts
148
+
You will also need to be an approved NHS letter supplier under the framework agreement and nominate your technical and operational contacts
149
+
150
+
## Related APIs
151
+
152
+
The [NHS Notify API](https://digital.nhs.uk/developer/api-catalogue/nhs-notify) is used to send messages to citizens via NHS App, email, text message or letter.
153
+
154
+
## Contact us
155
+
156
+
For help and support connecting to our APIs and to join our developer community, see [Help and support building healthcare software](https://digital.nhs.uk/developer/help-and-support).
Copy file name to clipboardExpand all lines: specification/api/components/documentation/createMI.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,10 @@
1
1
## Overview
2
2
3
-
Use this endpoint to send management or operational metrics relating to letter processing and print fulfilment
3
+
Use this endpoint to send management or operational metrics relating to letter processing and print fulfilment.
4
4
5
-
When you submit a create management information request, the endpoint will respond with a c201 (Created) response code along with the created data including a unique id for the record or an unsuccessful (4xx/5xx) response
5
+
When you submit a create management information request, the endpoint will respond with a 201 (Created) response code along with the created data including a unique id for the record or an unsuccessful (4xx/5xx) response.
6
6
7
-
Rate limiting applies. On excess requests, you may receive **429 Too Many Requests** (example error code(s): `NOTIFY_QUOTA`). Back off and retry later
7
+
Rate limiting applies. On excess requests, you may receive **429 Too Many Requests** (example error code(s): `NOTIFY_QUOTA`). Back off and retry later.
Copy file name to clipboardExpand all lines: specification/api/components/documentation/getDataId.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,13 +2,13 @@
2
2
3
3
Use this endpoint to get letter data, including downloading the letter's print-ready PDF file.
4
4
5
-
Rate limiting applies. On excess requests, you may receive **429 Too Many Requests** (example error code(s): `NOTIFY_QUOTA`). Back off and retry later
5
+
Rate limiting applies. On excess requests, you may receive **429 Too Many Requests** (example error code(s): `NOTIFY_QUOTA`). Back off and retry later.
6
6
7
7
## Sandbox test scenarios
8
8
9
9
You can test the following scenarios in our sandbox environment.
10
10
11
11
|Scenario|Request ID|Response|
12
12
|--------|-------|--------|
13
-
|Success | 2AL5eYSWGzCHlGmzNxuqVusPxDg | Returns 303 (See Other) and URL to [http://example.com](http://example.com) in the Location header |
14
-
|Not Found|2WL5eYSWGzCHlGmzNxuqVusPxDg | Returns 404 Not found and error details in the response |
13
+
|Success | 2AL5eYSWGzCHlGmzNxuqVusPxDg | Returns 303 (See Other) and URL to an example PDF in the Location header |
14
+
|Not found|2WL5eYSWGzCHlGmzNxuqVusPxDg | Returns 404 Not found and error details in the response |
Copy file name to clipboardExpand all lines: specification/api/components/documentation/getLetterStatus.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
Use this endpoint to get the current status of a single letter by its ID.
4
4
5
-
Rate limiting applies. On excess requests, you may receive **429 Too Many Requests** (example error code(s): `NOTIFY_QUOTA`). Back off and retry later
5
+
Rate limiting applies. On excess requests, you may receive **429 Too Many Requests** (example error code(s): `NOTIFY_QUOTA`). Back off and retry later.
Copy file name to clipboardExpand all lines: specification/api/components/documentation/listLetters.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,4 +5,4 @@ Use this endpoint to poll letters which are ready to be printed.
5
5
Returns letters whose `status` is **PENDING**.
6
6
Use `limit` to control list size (max 2500).
7
7
8
-
Rate limiting applies. On excess requests, you may receive **429 Too Many Requests** (example error code(s): `NOTIFY_QUOTA`). Back off and retry later
8
+
Rate limiting applies. On excess requests, you may receive **429 Too Many Requests** (example error code(s): `NOTIFY_QUOTA`). Back off and retry later.
0 commit comments