Skip to content

Commit f91f23e

Browse files
authored
mesh-1116: design changes iteration 2
Content changes based on the last round of user research. Approved on the 6th of Feb.
1 parent 82304bc commit f91f23e

1 file changed

Lines changed: 126 additions & 73 deletions

File tree

specification/mesh-api.yaml

Lines changed: 126 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -5,136 +5,183 @@ info:
55
description: |
66
## Overview
77
8-
Use this API to securely transfer healthcare data between organisations using the Message Exchange for Social Care and Health (MESH). You interact with MESH via a virtual mailbox, only accessible to your organisation, by making calls to this API from your application.
8+
You interact with MESH by making calls to this API from your application.
99
1010
With the API, you can:
1111
1212
- check the number of messages in your inbox
13-
- get the messageIds of messages in your inbox that are ready for download
13+
- send a message, or a larger message as series of chunks
1414
- download a message, or a larger message which was sent to you as a series of chunks
1515
- acknowledge the successful download of a message, which removes it from your inbox
16-
- look up the mailbox of an organisation you want to send data to
17-
- send a message, or a larger message as series of chunks
16+
- get the messageIds of messages in your inbox that are ready for download
1817
- track the status of messages that you sent from your outbox
18+
- look up the mailbox of an organisation you want to send data to
1919
- validate your mailbox every 24 hours to let Spine know it's still active
2020
21-
This API can only be used where there is a legal basis to do so.
22-
23-
The onboarding process for the API is longer than other MESH options. This is because we need to know that the product you’re developing meets our security standards. The length of time it takes to onboard is heavily dependent on the resources your organisation puts into the process in developing your software and completing the application form. Expect the process to take a month or more.
24-
25-
### Get started
21+
## Who can use this API
2622
27-
You will need:
28-
- a developer account to access the digital onboarding service
29-
- a MESH mailbox (with a unique ID and password)
30-
- a client Transport Layer Security (TLS) certificate
31-
- an environment shared secret to include it within the [MESH authorization header](#api-description__mesh-authorization-header)
23+
This API can only be used where there is a legal basis to do so. We’ll ask you to demonstrate this as part of the digital onboarding process before your software goes live.
3224
33-
We will provide these at different stages of your onboarding process.
25+
## Requirements for using this API
26+
There are 2 parts to getting the MESH API, these are:
27+
28+
1. developing and integrating your software
29+
2. getting your software approved to go live
3430
35-
## Onboarding
36-
You need to get your software approved by us before it can go live with this API. This assurance process is managed by the [digital onboarding service](https://digital.nhs.uk/developer/guides-and-documentation/digital-onboarding). The steps below outline the full onboarding journey.
31+
### 1. Developing and integrating your software
3732
38-
### 1. Create a developer account
33+
You’ll need some things at different stages of your development to integrate with the MESH API.
34+
For each environment you use, you'll need a:
35+
- MESH mailbox ID and password
36+
- Transport Layer Security (TLS) certificate
37+
- shared secret to include in the MESH authorization header
38+
39+
### 2. Getting your software approved to go live
40+
41+
This is also called digital onboarding. You’ll need to submit information that demonstrates:
42+
- you have a valid use case
43+
- you can manage risks
44+
- your software conforms technically with the requirements for this API
3945
40-
You will need to create a developer account to access the [digital onboarding service](https://digital.nhs.uk/developer/guides-and-documentation/digital-onboarding) where you will start and manage your MESH API application.
46+
## End-to-end process to integrate with MESH API
4147
42-
Make sure no one else in your organisation has started a MESH API application, as we cannot merge the applications.
48+
The length of time it takes to get your software live depends on the resources your organisation puts into:
49+
- developing your software
50+
- getting things you need for your integration like TLS certificates
51+
- completing onboarding processes and waiting for approval
52+
53+
You can do some things while you wait, but expect the end-to-end integration process to take 1 month or more.
4354
44-
[Sign in or create a developer account](https://onboarding.prod.api.platform.nhs.uk)
55+
### Get started
56+
57+
To get started, sign in or create a developer account for digital onboarding, complete the 'Setup and eligibility' section and submit it.
4558
46-
### 2. Start your MESH application
59+
If you’re new to digital onboarding, add your product and select ‘MESH’ from the ‘APIs to be used’ list.
60+
Submitting this information shows us that you have a legal basis to use the MESH API. We’ll review the information you submit and respond within 5 to 10 working days.
4761
48-
Once you’ve activated your developer account and logged into it for the first time, you’ll need to:
49-
- tell us your organisation name
50-
- tell us the name of your product
51-
- select MESH from the ‘APIs to be used’ list
62+
If we approve your request to use the MESH API, we’ll also email you a supplier pack within 10 working days. Read through this as it contains the testing requirements you’ll need to fulfil later on.
5263
53-
### 3. Tell us how you’ll use the MESH API
54-
You must show you have an appropriate reason to use the MESH API. You do this by completing and submitting the ‘Setup and eligibility section’ of your developer account which will be reviewed by a member of our team.
64+
You should get your use case approved before you go too far with development. You can choose to proceed with your integration while you wait for approval, but you’ll be doing this at your own risk.
65+
66+
[Sign in or create a developer account for digital onboarding](https://onboarding.prod.api.platform.nhs.uk)
67+
5568
5669
You will receive a response within 10 working days.
5770
5871
If you have been approved to use the MESH API, our assurance team will contact you via email with a supplier pack containing the testing requirements you will need to fulfill. You will work alongside this team to get your solution assured.
5972
60-
### 4. Get your mailbox for the Path to live - integration environment
61-
62-
Once we have approved your request, apply for a MESH mailbox to be used in a Path to live - integration environment.
73+
### Request a mailbox
6374
64-
You interact with MESH via a virtual mailbox by making calls to this API from your software. Your MESH mailbox can only be accessed by your organisation.
75+
Once we’ve approved your request to use the MESH API, you’ll need to request a MESH Mailbox to use in a 'Path to Live integration environment'. This is how you’ll interact with the MESH API. A MESH Mailbox is secure and only your organisation can access it.
6576
66-
Messages must have a:
67-
- sender mailbox ID
68-
- receiver mailbox ID
69-
- workflow ID
77+
To request a MESH Mailbox, you’ll need to fill in an online form. It takes 5 to 10 minutes to complete.
7078
71-
The workflow ID identifies what type of data the message contains, so the receiving organisation knows how to process it. For example, the receiver might process X-ray image data differently from blood test results.
79+
You’ll need to know:
80+
- your [ODS code](https://odsportal.digital.nhs.uk/)
81+
- the [workflow groups or IDs](https://digital.nhs.uk/services/message-exchange-for-social-care-and-health-mesh/workflow-groups-and-workflow-ids) for the files you plan to send or receive
82+
- the contact details of the person who will be managing the mailbox in your organisation
83+
84+
[Request a 'Path to Live integration' MESH Mailbox](https://digital.nhs.uk/services/message-exchange-for-social-care-and-health-mesh/messaging-exchange-for-social-care-and-health-apply-for-a-mailbox)
85+
86+
### Receive your credentials for the ‘Path to Live integration’ environment
7287
73-
To apply for a MESH mailbox, you need to provide information about:
74-
- your organisation
75-
- the people responsible for managing your MESH mailbox
76-
- the [workflow groups and IDs](https://digital.nhs.uk/services/message-exchange-for-social-care-and-health-mesh/workflow-groups-and-workflow-ids) associated with the messages you're sending
88+
Once you’ve requested a MESH Mailbox, we’ll send you an email containing your Mailbox ID and password within 5 working days. Keep these details safe as we’ll also ask you for this if you need help from our support teams.
7789
78-
[Apply for a MESH mailbox](https://digital.nhs.uk/services/message-exchange-for-social-care-and-health-mesh/messaging-exchange-for-social-care-and-health-apply-for-a-mailbox)
90+
You will also receive the shared secret. You’ll need to include this in the [MESH authorization header](https://digital.nhs.uk/developer/api-catalogue/message-exchange-for-social-care-and-health-api#api-description__mesh-authorization-header) when you develop this part of your software.
91+
92+
### Get a TLS certificate
7993
80-
### 5. Receive your credentials for the Path to live - integration environment
94+
You’ll need a TLS certificate to establish a secure connection to MESH.
95+
96+
How to get a TLS certificate
97+
98+
1. Generate a private key using your preferred method, with the naming convention cn=mailboxid.odscode.api.mesh-client.nhs.uk
99+
2. Generate a certificate signing request (CSR) based on the private key and your Mailbox ID.
100+
3. Email the CSR to [itoc.supportdesk@nhs.net](mailto:itoc.supportdesk@nhs.net) - this needs to contain the common name from your CSR 'Subject' using the format local_id.ods_code.api.mesh-client.nhs.uk
81101
82-
Once you have applied, we will email you your mailbox ID and password. Keep this safe as they will be required to access your MESH mailbox. We’ll ask you for this if you need help from our support teams.
102+
The local_id is a local identifier such as a server name and ods_code is your ODS code, for example, SERVER001.X26.api.mesh-client.nhs.uk.
83103
84-
You will receive the shared secret. You’ll need to include this in the [MESH authorization header](#api-description__mesh-authorization-header) when you develop this part of your software.
104+
Once we receive your CSR, we’ll send you a TLS certificate within 5 working days.
85105
86-
### 6. Get a Transport Layer Security (TLS) certificate
106+
Depending on how you implement MESH API, you may also need to [download a RootCA and SubCA certificate](https://digital.nhs.uk/services/path-to-live-environments/integration-environment#rootca-and-subca-certificates). These are also required to establish a secure connection.
87107
88-
The MESH API requires a certificate to connect to the MESH server to send and receive messages. This ensures communication is safe and secure.
108+
### Develop and test your software
109+
110+
Now that you have a MESH Mailbox for a 'Path to Live integration' environment and a TLS certificate, start developing your software using the MESH API.
111+
112+
When you’re ready to go live, you’ll need to:
113+
- request a TLS certificate for the production environment
114+
- request a MESH mailbox for the production environment
115+
- get a conformance certificate
116+
- sign a connection agreement
117+
118+
### Submit non-functional requirements
119+
120+
Once you've developed your software, you'll need to answer some questions in digital onboarding about the processes you use for:
121+
- handling data securely
122+
- managing clinical risk
123+
- using our production environment
124+
125+
This shows that your software meets our non-functional requirements.
126+
127+
[Sign into digital onboarding to answer questions on 'non-functional'requirements](https://identity.prod.api.platform.nhs.uk/auth/realms/developer-identity/login-actions/authenticate?client_id=digital-onboarding-service&tab_id=YTe9EqJeUCc)
89128
90-
[Find out how to get a certificate](https://digital.nhs.uk/services/message-exchange-for-social-care-and-health-mesh/mesh-guidance-hub/certificate-guidance)
129+
### Demonstrate technical conformance
91130
92-
### 7. Develop and test your software with the MESH API
131+
Before you can go live, in digital onboarding, you’ll need to:
132+
- answer some questions to show you conform to the technical requirements of our APIs
133+
- upload a conformance certificate
93134
94-
Now that you have a MESH mailbox for a path to live - integration environment, start developing your software using the MESH API.
135+
To get a technical conformance certificate, you’ll need to complete the testing requirements in the supplier pack we sent to you.
95136
96-
### 8. Get a technical conformance certificate
137+
Some of these tests have to be witnessed by us. To arrange a witness test, reply to the email that contains the supplier pack. The witness testing takes 2 to 3 hours.
97138
98-
A technical conformance certificate is proof that your software has been developed to our standards.
139+
In some cases, we may ask you to prepare test data a few days before the day of the witness testing.
99140
100-
To get a conformance certificate, you will need to:
101-
- show that your software meets non-functional requirements
102-
- show that your software meets technical conformation
103-
- complete a witness test
141+
When you’ve completed a witness test, we’ll email a technical conformance certificate to you within 5 working days. You can then upload it to digital onboarding.
142+
143+
[Sign into digital onboarding to upload a technical conformance certificate](https://identity.prod.api.platform.nhs.uk/auth/realms/developer-identity/login-actions/authenticate?client_id=digital-onboarding-service&tab_id=vYrgcflr9fs)
104144
105-
In the Digital Onboarding Service there are specific sections to be completed to show your solution meets our non-functional requirements and technical conformance.
145+
### Get a MESH Mailbox for your live software
106146
107-
You will need to organise a date with the assurance team for the witness testing to take place. The witness testing should take half a day. In some cases you will be asked to prepare test data a few days before the day of the witness testing.
147+
When you’re ready to send or receive real data, you’ll need a MESH Mailbox in the production environment. We’ll ask to see the conformance certificate for your software before we issue this.
108148
109-
Once the witness test is complete, you will be issued with a technical conformance certificate.
149+
MESH Mailboxes are specific to environments, this means you’ll need a different MESH Mailbox ID for each environment you use.
110150
111-
[Sign in to the digital onboarding service](https://onboarding.prod.api.platform.nhs.uk)
151+
To request a MESH Mailbox, you’ll need to fill in an online form. It takes 5 to 10 minutes to complete.
112152
113-
### 9. Sign connection agreement
153+
You’ll need to know:
154+
- your [ODS code](https://odsportal.digital.nhs.uk/)
155+
- the [workflow groups or IDs](https://digital.nhs.uk/services/message-exchange-for-social-care-and-health-mesh/workflow-groups-and-workflow-ids) for the files you plan to send or receive
156+
- the contact details of the person who will be managing the mailbox in your organisation
114157
115-
Now that we know that your software is safe and secure, you will need to sign a connection agreement.
158+
[Request a ‘Live’ MESH Mailbox](https://digital.nhs.uk/services/message-exchange-for-social-care-and-health-mesh/messaging-exchange-for-social-care-and-health-apply-for-a-mailbox)
159+
160+
### Get a TLS certificate for the production environment
116161
117-
We will send you a customised connection agreement to sign.
162+
Once you have a Mailbox ID, you’ll need to get a TLS certificate. This allows you to establish a secure connection to MESH in the production environment.
118163
119-
Once you’ve signed the connection agreement, you need to upload it to your developer account in the ‘Legal agreement’ section.
164+
How to get a TLS certificate
165+
1. Generate a private key using your preferred method, with the naming convention cn=mailboxid.odscode.api.mesh-client.nhs.uk
166+
2. Generate a CSR based on the private key and your Mailbox ID
167+
3. Email the CSR and technical conformance certificate to [ssd.nationalservicedesk@nhs.uk](mailto:ssd.nationalservicedesk@nhs.uk) - this needs to contain the common name from your CSR 'Subject' using the format local_id.ods_code.api.mesh-client.nhs.uk
120168
121-
[Sign in to the digital onboarding service](https://onboarding.prod.api.platform.nhs.uk)
169+
The local_id is a local identifier such as a server name and ods_code is your ODS code, for example, SERVER001.X26.api.mesh-client.nhs.uk.
122170
123-
### 10. Get a mailbox for your live software
171+
Once we receive your CSR and technical conformance certificate, we’ll send you a TLS certificate for the production environment within 5 working days.
124172
125-
When you’ve tested your software and need to send or receive real data, apply for a mailbox in the production environment.
173+
Depending on how you implement MESH API, you may also need to [download a RootCA and SubCA certificate](https://digital.nhs.uk/services/path-to-live-environments/integration-environment#rootca-and-subca-certificates). These are also required to establish a secure connection.
126174
127-
[Apply for a MESH mailbox](https://digital.nhs.uk/services/message-exchange-for-social-care-and-health-mesh/messaging-exchange-for-social-care-and-health-apply-for-a-mailbox)
128175
129-
### 11. Get a Transport Layer Security (TLS) certificate for the production environment
176+
### Sign connection agreement
130177
131-
You will now need to get a certificate to send and receive messages from a MESH mailbox in the production environment.
178+
You’ll need to sign a connection agreement before your software can go live. Once you’ve signed it, you need to upload it to the ‘Legal agreement’ section in digital onboarding. We’ll email your connection agreement to you within 5 working days of completing your witness test.
132179
133-
[Find out how to get a certificate](https://digital.nhs.uk/services/message-exchange-for-social-care-and-health-mesh/mesh-guidance-hub/certificate-guidance)
180+
[Sign into digital onboarding to upload your connection agreement](https://identity.prod.api.platform.nhs.uk/auth/realms/developer-identity/login-actions/authenticate?client_id=digital-onboarding-service&tab_id=p19cQckpJso)
134181
135-
### 12. Deploy
182+
### Go live with your software
136183
137-
You have now completed onboarding and can use the MESH API with your software.
184+
You have now completed all integration and onboarding steps. This means you can use the MESH API with your live software.
138185
139186
## Related APIs
140187
A number of our APIs are messaging APIs that use MESH as the transport layer. For a full list, see [our API catalogue, filtered on MESH APIs](https://digital.nhs.uk/developer/api-catalogue?filter=mesh).
@@ -333,6 +380,12 @@ info:
333380
### Message expiration
334381
Messages that are not downloaded and acknowledged within five days of delivery are removed from your inbox. The sending organisation receives an error report explaining that the receiver did not collect the message. Uncollected messages are completely deleted from the MESH server 30 days after the initial delivery. If the sending organisation cannot re-send the message within the intervening time, it may contact the [NHS Digital national service desk](https://digital.nhs.uk/developer/help-and-support) with the error report details and ask for the message to be placed in your inbox again.
335382
383+
## Onboarding
384+
385+
You need to get your software approved by us before it can go live with this API. We call this onboarding. The onboarding process can sometimes be quite long, so it’s worth planning well ahead.
386+
387+
To get started with the MESH API you will need to create a developer account. This is where you can demonstrate that you can manage risks and that your software conforms technically with the requirements for this API. You can also manage onboarding for other APIs in your account.
388+
336389
## Errors
337390
We use standard HTTP status codes to show whether an API request succeeded or not. They are usually in the range:
338391

0 commit comments

Comments
 (0)